1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/pinctrl/xlnx,zynq-pinctrl.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Xilinx Zynq Pinctrl 8 9maintainers: 10 - Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com> 11 12description: | 13 Please refer to pinctrl-bindings.txt in this directory for details of the 14 common pinctrl bindings used by client devices, including the meaning of the 15 phrase "pin configuration node". 16 17 Zynq's pin configuration nodes act as a container for an arbitrary number of 18 subnodes. Each of these subnodes represents some desired configuration for a 19 pin, a group, or a list of pins or groups. This configuration can include the 20 mux function to select on those pin(s)/group(s), and various pin configuration 21 parameters, such as pull-up, slew rate, etc. 22 23 Each configuration node can consist of multiple nodes describing the pinmux and 24 pinconf options. Those nodes can be pinmux nodes or pinconf nodes. 25 26 The name of each subnode is not important; all subnodes should be enumerated 27 and processed purely based on their content. 28 29properties: 30 compatible: 31 const: xlnx,zynq-pinctrl 32 33 reg: 34 description: Specifies the base address and size of the SLCR space. 35 maxItems: 1 36 37 syscon: 38 description: 39 phandle to the SLCR. 40 41patternProperties: 42 '^(.*-)?(default|gpio)$': 43 type: object 44 patternProperties: 45 '^mux': 46 type: object 47 description: 48 Pinctrl node's client devices use subnodes for pin muxes, 49 which in turn use below standard properties. 50 $ref: pinmux-node.yaml# 51 52 properties: 53 groups: 54 description: 55 List of groups to select (either this or "pins" must be 56 specified), available groups for this subnode. 57 items: 58 enum: [ethernet0_0_grp, ethernet1_0_grp, mdio0_0_grp, 59 mdio1_0_grp, qspi0_0_grp, qspi1_0_grp, qspi_fbclk, 60 qspi_cs1_grp, spi0_0_grp, spi0_1_grp, spi0_2_grp, 61 spi0_0_ss0, spi0_0_ss1, spi0_0_ss2, spi0_1_ss0, 62 spi0_1_ss1, spi0_1_ss2, spi0_2_ss0, spi0_2_ss1, 63 spi0_2_ss2, spi1_0_grp, spi1_1_grp, spi1_2_grp, 64 spi1_3_grp, spi1_0_ss0, spi1_0_ss1, spi1_0_ss2, 65 spi1_1_ss0, spi1_1_ss1, spi1_1_ss2, spi1_2_ss0, 66 spi1_2_ss1, spi1_2_ss2, spi1_3_ss0, spi1_3_ss1, 67 spi1_3_ss2, sdio0_0_grp, sdio0_1_grp, sdio0_2_grp, 68 sdio1_0_grp, sdio1_1_grp, sdio1_2_grp, sdio1_3_grp, 69 sdio0_emio_wp, sdio0_emio_cd, sdio1_emio_wp, 70 sdio1_emio_cd, smc0_nor, smc0_nor_cs1_grp, 71 smc0_nor_addr25_grp, smc0_nand, can0_0_grp, can0_1_grp, 72 can0_2_grp, can0_3_grp, can0_4_grp, can0_5_grp, 73 can0_6_grp, can0_7_grp, can0_8_grp, can0_9_grp, 74 can0_10_grp, can1_0_grp, can1_1_grp, can1_2_grp, 75 can1_3_grp, can1_4_grp, can1_5_grp, can1_6_grp, 76 can1_7_grp, can1_8_grp, can1_9_grp, can1_10_grp, 77 can1_11_grp, uart0_0_grp, uart0_1_grp, uart0_2_grp, 78 uart0_3_grp, uart0_4_grp, uart0_5_grp, uart0_6_grp, 79 uart0_7_grp, uart0_8_grp, uart0_9_grp, uart0_10_grp, 80 uart1_0_grp, uart1_1_grp, uart1_2_grp, uart1_3_grp, 81 uart1_4_grp, uart1_5_grp, uart1_6_grp, uart1_7_grp, 82 uart1_8_grp, uart1_9_grp, uart1_10_grp, uart1_11_grp, 83 i2c0_0_grp, i2c0_1_grp, i2c0_2_grp, i2c0_3_grp, 84 i2c0_4_grp, i2c0_5_grp, i2c0_6_grp, i2c0_7_grp, 85 i2c0_8_grp, i2c0_9_grp, i2c0_10_grp, i2c1_0_grp, 86 i2c1_1_grp, i2c1_2_grp, i2c1_3_grp, i2c1_4_grp, 87 i2c1_5_grp, i2c1_6_grp, i2c1_7_grp, i2c1_8_grp, 88 i2c1_9_grp, i2c1_10_grp, ttc0_0_grp, ttc0_1_grp, 89 ttc0_2_grp, ttc1_0_grp, ttc1_1_grp, ttc1_2_grp, 90 swdt0_0_grp, swdt0_1_grp, swdt0_2_grp, swdt0_3_grp, 91 swdt0_4_grp, gpio0_0_grp, gpio0_1_grp, gpio0_2_grp, 92 gpio0_3_grp, gpio0_4_grp, gpio0_5_grp, gpio0_6_grp, 93 gpio0_7_grp, gpio0_8_grp, gpio0_9_grp, gpio0_10_grp, 94 gpio0_11_grp, gpio0_12_grp, gpio0_13_grp, gpio0_14_grp, 95 gpio0_15_grp, gpio0_16_grp, gpio0_17_grp, gpio0_18_grp, 96 gpio0_19_grp, gpio0_20_grp, gpio0_21_grp, gpio0_22_grp, 97 gpio0_23_grp, gpio0_24_grp, gpio0_25_grp, gpio0_26_grp, 98 gpio0_27_grp, gpio0_28_grp, gpio0_29_grp, gpio0_30_grp, 99 gpio0_31_grp, gpio0_32_grp, gpio0_33_grp, gpio0_34_grp, 100 gpio0_35_grp, gpio0_36_grp, gpio0_37_grp, gpio0_38_grp, 101 gpio0_39_grp, gpio0_40_grp, gpio0_41_grp, gpio0_42_grp, 102 gpio0_43_grp, gpio0_44_grp, gpio0_45_grp, gpio0_46_grp, 103 gpio0_47_grp, gpio0_48_grp, gpio0_49_grp, gpio0_50_grp, 104 gpio0_51_grp, gpio0_52_grp, gpio0_53_grp, usb0_0_grp, 105 usb1_0_grp] 106 maxItems: 54 107 108 function: 109 description: 110 Specify the alternative function to be configured for the 111 given pin groups. 112 enum: [ethernet0, ethernet1, mdio0, mdio1, qspi0, qspi1, qspi_fbclk, 113 qspi_cs1, spi0, spi0_ss, spi1, spi1_ss, sdio0, sdio0_pc, 114 sdio0_cd, sdio0_wp, sdio1, sdio1_pc, sdio1_cd, sdio1_wp, 115 smc0_nor, smc0_nor_cs1, smc0_nor_addr25, smc0_nand, can0, 116 can1, uart0, uart1, i2c0, i2c1, ttc0, ttc1, swdt0, gpio0, 117 usb0, usb1] 118 119 required: 120 - groups 121 - function 122 123 additionalProperties: false 124 125 '^conf': 126 type: object 127 description: 128 Pinctrl node's client devices use subnodes for pin configurations, 129 which in turn use the standard properties below. 130 $ref: pincfg-node.yaml# 131 132 properties: 133 groups: 134 description: 135 List of pin groups as mentioned above. 136 137 pins: 138 description: 139 List of pin names to select in this subnode. 140 items: 141 pattern: '^MIO([0-9]|[1-4][0-9]|5[0-3])$' 142 maxItems: 54 143 144 bias-pull-up: true 145 146 bias-pull-down: true 147 148 bias-disable: true 149 150 bias-high-impedance: true 151 152 low-power-enable: true 153 154 low-power-disable: true 155 156 slew-rate: 157 enum: [0, 1] 158 159 power-source: 160 enum: [1, 2, 3, 4] 161 162 oneOf: 163 - required: [ groups ] 164 - required: [ pins ] 165 166 additionalProperties: false 167 168 additionalProperties: false 169 170allOf: 171 - $ref: "pinctrl.yaml#" 172 173required: 174 - compatible 175 - reg 176 - syscon 177 178additionalProperties: false 179 180examples: 181 - | 182 #include <dt-bindings/pinctrl/pinctrl-zynq.h> 183 pinctrl0: pinctrl@700 { 184 compatible = "xlnx,zynq-pinctrl"; 185 reg = <0x700 0x200>; 186 syscon = <&slcr>; 187 188 pinctrl_uart1_default: uart1-default { 189 mux { 190 groups = "uart1_10_grp"; 191 function = "uart1"; 192 }; 193 194 conf { 195 groups = "uart1_10_grp"; 196 slew-rate = <0>; 197 power-source = <IO_STANDARD_LVCMOS18>; 198 }; 199 200 conf-rx { 201 pins = "MIO49"; 202 bias-high-impedance; 203 }; 204 205 conf-tx { 206 pins = "MIO48"; 207 bias-disable; 208 }; 209 }; 210 }; 211 212 uart1 { 213 pinctrl-names = "default"; 214 pinctrl-0 = <&pinctrl_uart1_default>; 215 }; 216 217... 218