1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pinctrl/ralink,rt3352-pinctrl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Ralink RT3352 Pin Controller
8
9maintainers:
10  - Arınç ÜNAL <arinc.unal@arinc9.com>
11  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
12
13description: |
14  Ralink RT3352 pin controller for RT3352 SoC.
15  The pin controller can only set the muxing of pin groups. Muxing individual
16  pins is not supported. There is no pinconf support.
17
18properties:
19  compatible:
20    const: ralink,rt3352-pinctrl
21
22patternProperties:
23  '-pins$':
24    type: object
25    additionalProperties: false
26
27    patternProperties:
28      '^(.*-)?pinmux$':
29        type: object
30        description: node for pinctrl.
31        $ref: pinmux-node.yaml#
32        additionalProperties: false
33
34        properties:
35          function:
36            description:
37              A string containing the name of the function to mux to the group.
38            enum: [gpio, gpio i2s, gpio uartf, i2c, i2s uartf, jtag, led, lna,
39                   mdio, pa, pcm gpio, pcm i2s, pcm uartf, rgmii, spi, spi_cs1,
40                   uartf, uartlite, wdg_cs1]
41
42          groups:
43            description:
44              An array of strings. Each string contains the name of a group.
45            maxItems: 1
46
47        required:
48          - groups
49          - function
50
51        allOf:
52          - if:
53              properties:
54                function:
55                  const: gpio
56            then:
57              properties:
58                groups:
59                  enum: [i2c, jtag, led, lna, mdio, pa, rgmii, spi, spi_cs1,
60                         uartf, uartlite]
61
62          - if:
63              properties:
64                function:
65                  const: gpio i2s
66            then:
67              properties:
68                groups:
69                  enum: [uartf]
70
71          - if:
72              properties:
73                function:
74                  const: gpio uartf
75            then:
76              properties:
77                groups:
78                  enum: [uartf]
79
80          - if:
81              properties:
82                function:
83                  const: i2c
84            then:
85              properties:
86                groups:
87                  enum: [i2c]
88
89          - if:
90              properties:
91                function:
92                  const: i2s uartf
93            then:
94              properties:
95                groups:
96                  enum: [uartf]
97
98          - if:
99              properties:
100                function:
101                  const: jtag
102            then:
103              properties:
104                groups:
105                  enum: [jtag]
106
107          - if:
108              properties:
109                function:
110                  const: led
111            then:
112              properties:
113                groups:
114                  enum: [led]
115
116          - if:
117              properties:
118                function:
119                  const: lna
120            then:
121              properties:
122                groups:
123                  enum: [lna]
124
125          - if:
126              properties:
127                function:
128                  const: mdio
129            then:
130              properties:
131                groups:
132                  enum: [mdio]
133
134          - if:
135              properties:
136                function:
137                  const: pa
138            then:
139              properties:
140                groups:
141                  enum: [pa]
142
143          - if:
144              properties:
145                function:
146                  const: pcm gpio
147            then:
148              properties:
149                groups:
150                  enum: [uartf]
151
152          - if:
153              properties:
154                function:
155                  const: pcm i2s
156            then:
157              properties:
158                groups:
159                  enum: [uartf]
160
161          - if:
162              properties:
163                function:
164                  const: pcm uartf
165            then:
166              properties:
167                groups:
168                  enum: [uartf]
169
170          - if:
171              properties:
172                function:
173                  const: rgmii
174            then:
175              properties:
176                groups:
177                  enum: [rgmii]
178
179          - if:
180              properties:
181                function:
182                  const: spi
183            then:
184              properties:
185                groups:
186                  enum: [spi]
187
188          - if:
189              properties:
190                function:
191                  const: spi_cs1
192            then:
193              properties:
194                groups:
195                  enum: [spi_cs1]
196
197          - if:
198              properties:
199                function:
200                  const: uartf
201            then:
202              properties:
203                groups:
204                  enum: [uartf]
205
206          - if:
207              properties:
208                function:
209                  const: uartlite
210            then:
211              properties:
212                groups:
213                  enum: [uartlite]
214
215          - if:
216              properties:
217                function:
218                  const: wdg_cs1
219            then:
220              properties:
221                groups:
222                  enum: [spi_cs1]
223
224allOf:
225  - $ref: pinctrl.yaml#
226
227required:
228  - compatible
229
230additionalProperties: false
231
232examples:
233  - |
234    pinctrl {
235      compatible = "ralink,rt3352-pinctrl";
236
237      i2c_pins: i2c0-pins {
238        pinmux {
239          groups = "i2c";
240          function = "i2c";
241        };
242      };
243    };
244