# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/xlnx,zynq-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Xilinx Zynq Pinctrl

maintainers:
  - Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>

description: |
  Please refer to pinctrl-bindings.txt in this directory for details of the
  common pinctrl bindings used by client devices, including the meaning of the
  phrase "pin configuration node".

  Zynq's pin configuration nodes act as a container for an arbitrary number of
  subnodes. Each of these subnodes represents some desired configuration for a
  pin, a group, or a list of pins or groups. This configuration can include the
  mux function to select on those pin(s)/group(s), and various pin configuration
  parameters, such as pull-up, slew rate, etc.

  Each configuration node can consist of multiple nodes describing the pinmux and
  pinconf options. Those nodes can be pinmux nodes or pinconf nodes.

  The name of each subnode is not important; all subnodes should be enumerated
  and processed purely based on their content.

properties:
  compatible:
    const: xlnx,zynq-pinctrl

  reg:
    description: Specifies the base address and size of the SLCR space.
    maxItems: 1

  syscon:
    description:
      phandle to the SLCR.

patternProperties:
  '^(.*-)?(default|gpio)$':
    type: object
    patternProperties:
      '^mux':
        type: object
        description:
          Pinctrl node's client devices use subnodes for pin muxes,
          which in turn use below standard properties.
        $ref: pinmux-node.yaml#

        properties:
          groups:
            description:
              List of groups to select (either this or "pins" must be
              specified), available groups for this subnode.
            items:
              enum: [ethernet0_0_grp, ethernet1_0_grp, mdio0_0_grp,
                     mdio1_0_grp, qspi0_0_grp, qspi1_0_grp, qspi_fbclk,
                     qspi_cs1_grp, spi0_0_grp, spi0_1_grp, spi0_2_grp,
                     spi0_0_ss0, spi0_0_ss1, spi0_0_ss2, spi0_1_ss0,
                     spi0_1_ss1, spi0_1_ss2, spi0_2_ss0, spi0_2_ss1,
                     spi0_2_ss2, spi1_0_grp, spi1_1_grp, spi1_2_grp,
                     spi1_3_grp, spi1_0_ss0, spi1_0_ss1, spi1_0_ss2,
                     spi1_1_ss0, spi1_1_ss1, spi1_1_ss2, spi1_2_ss0,
                     spi1_2_ss1, spi1_2_ss2, spi1_3_ss0, spi1_3_ss1,
                     spi1_3_ss2, sdio0_0_grp, sdio0_1_grp, sdio0_2_grp,
                     sdio1_0_grp, sdio1_1_grp, sdio1_2_grp, sdio1_3_grp,
                     sdio0_emio_wp, sdio0_emio_cd, sdio1_emio_wp,
                     sdio1_emio_cd, smc0_nor, smc0_nor_cs1_grp,
                     smc0_nor_addr25_grp, smc0_nand, can0_0_grp, can0_1_grp,
                     can0_2_grp, can0_3_grp, can0_4_grp, can0_5_grp,
                     can0_6_grp, can0_7_grp, can0_8_grp, can0_9_grp,
                     can0_10_grp, can1_0_grp, can1_1_grp, can1_2_grp,
                     can1_3_grp, can1_4_grp, can1_5_grp, can1_6_grp,
                     can1_7_grp, can1_8_grp, can1_9_grp, can1_10_grp,
                     can1_11_grp, uart0_0_grp, uart0_1_grp, uart0_2_grp,
                     uart0_3_grp, uart0_4_grp, uart0_5_grp, uart0_6_grp,
                     uart0_7_grp, uart0_8_grp, uart0_9_grp, uart0_10_grp,
                     uart1_0_grp, uart1_1_grp, uart1_2_grp, uart1_3_grp,
                     uart1_4_grp, uart1_5_grp, uart1_6_grp, uart1_7_grp,
                     uart1_8_grp, uart1_9_grp, uart1_10_grp, uart1_11_grp,
                     i2c0_0_grp, i2c0_1_grp, i2c0_2_grp, i2c0_3_grp,
                     i2c0_4_grp, i2c0_5_grp, i2c0_6_grp, i2c0_7_grp,
                     i2c0_8_grp, i2c0_9_grp, i2c0_10_grp, i2c1_0_grp,
                     i2c1_1_grp, i2c1_2_grp, i2c1_3_grp, i2c1_4_grp,
                     i2c1_5_grp, i2c1_6_grp, i2c1_7_grp, i2c1_8_grp,
                     i2c1_9_grp, i2c1_10_grp, ttc0_0_grp, ttc0_1_grp,
                     ttc0_2_grp, ttc1_0_grp, ttc1_1_grp, ttc1_2_grp,
                     swdt0_0_grp, swdt0_1_grp, swdt0_2_grp, swdt0_3_grp,
                     swdt0_4_grp, gpio0_0_grp, gpio0_1_grp, gpio0_2_grp,
                     gpio0_3_grp, gpio0_4_grp, gpio0_5_grp, gpio0_6_grp,
                     gpio0_7_grp, gpio0_8_grp, gpio0_9_grp, gpio0_10_grp,
                     gpio0_11_grp, gpio0_12_grp, gpio0_13_grp, gpio0_14_grp,
                     gpio0_15_grp, gpio0_16_grp, gpio0_17_grp, gpio0_18_grp,
                     gpio0_19_grp, gpio0_20_grp, gpio0_21_grp, gpio0_22_grp,
                     gpio0_23_grp, gpio0_24_grp, gpio0_25_grp, gpio0_26_grp,
                     gpio0_27_grp, gpio0_28_grp, gpio0_29_grp, gpio0_30_grp,
                     gpio0_31_grp, gpio0_32_grp, gpio0_33_grp, gpio0_34_grp,
                     gpio0_35_grp, gpio0_36_grp, gpio0_37_grp, gpio0_38_grp,
                     gpio0_39_grp, gpio0_40_grp, gpio0_41_grp, gpio0_42_grp,
                     gpio0_43_grp, gpio0_44_grp, gpio0_45_grp, gpio0_46_grp,
                     gpio0_47_grp, gpio0_48_grp, gpio0_49_grp, gpio0_50_grp,
                     gpio0_51_grp, gpio0_52_grp, gpio0_53_grp, usb0_0_grp,
                     usb1_0_grp]
            maxItems: 54

          function:
            description:
              Specify the alternative function to be configured for the
              given pin groups.
            enum: [ethernet0, ethernet1, mdio0, mdio1, qspi0, qspi1, qspi_fbclk,
                   qspi_cs1, spi0, spi0_ss, spi1, spi1_ss, sdio0, sdio0_pc,
                   sdio0_cd, sdio0_wp, sdio1, sdio1_pc, sdio1_cd, sdio1_wp,
                   smc0_nor, smc0_nor_cs1, smc0_nor_addr25, smc0_nand, can0,
                   can1, uart0, uart1, i2c0, i2c1, ttc0, ttc1, swdt0, gpio0,
                   usb0, usb1]

        required:
          - groups
          - function

        additionalProperties: false

      '^conf':
        type: object
        description:
          Pinctrl node's client devices use subnodes for pin configurations,
          which in turn use the standard properties below.
        $ref: pincfg-node.yaml#

        properties:
          groups:
            description:
              List of pin groups as mentioned above.

          pins:
            description:
              List of pin names to select in this subnode.
            items:
              pattern: '^MIO([0-9]|[1-4][0-9]|5[0-3])$'
            maxItems: 54

          bias-pull-up: true

          bias-pull-down: true

          bias-disable: true

          bias-high-impedance: true

          low-power-enable: true

          low-power-disable: true

          slew-rate:
            enum: [0, 1]

          power-source:
            enum: [1, 2, 3, 4]

        oneOf:
          - required: [ groups ]
          - required: [ pins ]

        additionalProperties: false

    additionalProperties: false

required:
  - compatible
  - reg
  - syscon

additionalProperties: false

examples:
  - |
    #include <dt-bindings/pinctrl/pinctrl-zynq.h>
    pinctrl0: pinctrl@700 {
       compatible = "xlnx,zynq-pinctrl";
       reg = <0x700 0x200>;
       syscon = <&slcr>;

       pinctrl_uart1_default: uart1-default {
           mux {
               groups = "uart1_10_grp";
               function = "uart1";
           };

           conf {
               groups = "uart1_10_grp";
               slew-rate = <0>;
               power-source = <IO_STANDARD_LVCMOS18>;
           };

           conf-rx {
               pins = "MIO49";
               bias-high-impedance;
           };

           conf-tx {
               pins = "MIO48";
               bias-disable;
           };
       };
    };

    uart1 {
         pinctrl-names = "default";
         pinctrl-0 = <&pinctrl_uart1_default>;
    };

...
