]> git.ipfire.org Git - thirdparty/u-boot.git/blame - Bindings/pinctrl/xlnx,zynq-pinctrl.yaml
Squashed 'dts/upstream/' changes from aaba2d45dc2a..b35b9bd1d4ee
[thirdparty/u-boot.git] / Bindings / pinctrl / xlnx,zynq-pinctrl.yaml
CommitLineData
53633a89
TR
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 <sai.krishna.potthuri@amd.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:
93743d24 42 '^(.*-)?(default|gpio-grp)$':
53633a89
TR
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...