blob: 31849dd5940b4b44d50d786e707a59fbbb2129ed [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pinctrl/mediatek,mt76x8-pinctrl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: MediaTek MT76X8 Pin Controller
8
9maintainers:
10 - Arınç ÜNAL <arinc.unal@arinc9.com>
11 - Sergio Paracuellos <sergio.paracuellos@gmail.com>
12
13description: |
14 MediaTek MT76X8 pin controller for MT7628 and MT7688 SoCs.
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,mt76x8-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: [antenna, debug, gpio, i2c, i2s, jtag, p0led_an, p0led_kn,
39 p1led_an, p1led_kn, p2led_an, p2led_kn, p3led_an, p3led_kn,
40 p4led_an, p4led_kn, pcie, pcm, perst, pwm, pwm0, pwm1,
41 pwm_uart2, refclk, rsvd, sdxc, sdxc d5 d4, sdxc d6, sdxc d7,
42 spi, spi cs1, spis, sw_r, uart0, uart1, uart2, utif, wdt,
43 wled_an, wled_kn, -]
44
45 groups:
46 description:
47 An array of strings. Each string contains the name of a group.
48 maxItems: 1
49
50 required:
51 - groups
52 - function
53
54 allOf:
55 - if:
56 properties:
57 function:
58 const: antenna
59 then:
60 properties:
61 groups:
62 enum: [i2s]
63
64 - if:
65 properties:
66 function:
67 const: debug
68 then:
69 properties:
70 groups:
71 enum: [i2c]
72
73 - if:
74 properties:
75 function:
76 const: gpio
77 then:
78 properties:
79 groups:
80 enum: [gpio, i2c, i2s, p0led_an, p0led_kn, p1led_an, p1led_kn,
81 p2led_an, p2led_kn, p3led_an, p3led_kn, p4led_an,
82 p4led_kn, perst, pwm0, pwm1, refclk, sdmode, spi,
83 spi cs1, spis, uart0, uart1, uart2, wdt, wled_an,
84 wled_kn]
85
86 - if:
87 properties:
88 function:
89 const: i2c
90 then:
91 properties:
92 groups:
93 enum: [i2c]
94
95 - if:
96 properties:
97 function:
98 const: i2s
99 then:
100 properties:
101 groups:
102 enum: [i2s]
103
104 - if:
105 properties:
106 function:
107 const: jtag
108 then:
109 properties:
110 groups:
111 enum: [p0led_an, p0led_kn, p1led_an, p1led_kn, p2led_an,
112 p2led_kn, p3led_an, p3led_kn, p4led_an, p4led_kn,
113 sdmode]
114
115 - if:
116 properties:
117 function:
118 const: p0led_an
119 then:
120 properties:
121 groups:
122 enum: [p0led_an]
123
124 - if:
125 properties:
126 function:
127 const: p0led_kn
128 then:
129 properties:
130 groups:
131 enum: [p0led_kn]
132
133 - if:
134 properties:
135 function:
136 const: p1led_an
137 then:
138 properties:
139 groups:
140 enum: [p1led_an]
141
142 - if:
143 properties:
144 function:
145 const: p1led_kn
146 then:
147 properties:
148 groups:
149 enum: [p1led_kn]
150
151 - if:
152 properties:
153 function:
154 const: p2led_an
155 then:
156 properties:
157 groups:
158 enum: [p2led_an]
159
160 - if:
161 properties:
162 function:
163 const: p2led_kn
164 then:
165 properties:
166 groups:
167 enum: [p2led_kn]
168
169 - if:
170 properties:
171 function:
172 const: p3led_an
173 then:
174 properties:
175 groups:
176 enum: [p3led_an]
177
178 - if:
179 properties:
180 function:
181 const: p3led_kn
182 then:
183 properties:
184 groups:
185 enum: [p3led_kn]
186
187 - if:
188 properties:
189 function:
190 const: p4led_an
191 then:
192 properties:
193 groups:
194 enum: [p4led_an]
195
196 - if:
197 properties:
198 function:
199 const: p4led_kn
200 then:
201 properties:
202 groups:
203 enum: [p4led_kn]
204
205 - if:
206 properties:
207 function:
208 const: pcie
209 then:
210 properties:
211 groups:
212 enum: [gpio]
213
214 - if:
215 properties:
216 function:
217 const: pcm
218 then:
219 properties:
220 groups:
221 enum: [i2s]
222
223 - if:
224 properties:
225 function:
226 const: perst
227 then:
228 properties:
229 groups:
230 enum: [perst]
231
232 - if:
233 properties:
234 function:
235 const: pwm
236 then:
237 properties:
238 groups:
239 enum: [uart1, uart2]
240
241 - if:
242 properties:
243 function:
244 const: pwm0
245 then:
246 properties:
247 groups:
248 enum: [pwm0]
249
250 - if:
251 properties:
252 function:
253 const: pwm1
254 then:
255 properties:
256 groups:
257 enum: [pwm1]
258
259 - if:
260 properties:
261 function:
262 const: pwm_uart2
263 then:
264 properties:
265 groups:
266 enum: [spis]
267
268 - if:
269 properties:
270 function:
271 const: refclk
272 then:
273 properties:
274 groups:
275 enum: [gpio, refclk, spi cs1]
276
277 - if:
278 properties:
279 function:
280 const: rsvd
281 then:
282 properties:
283 groups:
284 enum: [p0led_an, p0led_kn, wled_an, wled_kn]
285
286 - if:
287 properties:
288 function:
289 const: sdxc
290 then:
291 properties:
292 groups:
293 enum: [sdmode]
294
295 - if:
296 properties:
297 function:
298 const: sdxc d5 d4
299 then:
300 properties:
301 groups:
302 enum: [uart2]
303
304 - if:
305 properties:
306 function:
307 const: sdxc d6
308 then:
309 properties:
310 groups:
311 enum: [pwm1]
312
313 - if:
314 properties:
315 function:
316 const: sdxc d7
317 then:
318 properties:
319 groups:
320 enum: [pwm0]
321
322 - if:
323 properties:
324 function:
325 const: spi
326 then:
327 properties:
328 groups:
329 enum: [spi]
330
331 - if:
332 properties:
333 function:
334 const: spi cs1
335 then:
336 properties:
337 groups:
338 enum: [spi cs1]
339
340 - if:
341 properties:
342 function:
343 const: spis
344 then:
345 properties:
346 groups:
347 enum: [spis]
348
349 - if:
350 properties:
351 function:
352 const: sw_r
353 then:
354 properties:
355 groups:
356 enum: [uart1]
357
358 - if:
359 properties:
360 function:
361 const: uart0
362 then:
363 properties:
364 groups:
365 enum: [uart0]
366
367 - if:
368 properties:
369 function:
370 const: uart1
371 then:
372 properties:
373 groups:
374 enum: [uart1]
375
376 - if:
377 properties:
378 function:
379 const: uart2
380 then:
381 properties:
382 groups:
383 enum: [uart2]
384
385 - if:
386 properties:
387 function:
388 const: utif
389 then:
390 properties:
391 groups:
392 enum: [p1led_an, p1led_kn, p2led_an, p2led_kn, p3led_an,
393 p3led_kn, p4led_an, p4led_kn, pwm0, pwm1, sdmode, spis]
394
395 - if:
396 properties:
397 function:
398 const: wdt
399 then:
400 properties:
401 groups:
402 enum: [wdt]
403
404 - if:
405 properties:
406 function:
407 const: wled_an
408 then:
409 properties:
410 groups:
411 enum: [wled_an]
412
413 - if:
414 properties:
415 function:
416 const: wled_kn
417 then:
418 properties:
419 groups:
420 enum: [wled_kn]
421
422 - if:
423 properties:
424 function:
425 const: "-"
426 then:
427 properties:
428 groups:
429 enum: [i2c, spi cs1, uart0]
430
431allOf:
432 - $ref: pinctrl.yaml#
433
434required:
435 - compatible
436
437additionalProperties: false
438
439examples:
440 - |
441 pinctrl {
442 compatible = "ralink,mt76x8-pinctrl";
443
444 i2c_pins: i2c0-pins {
445 pinmux {
446 groups = "i2c";
447 function = "i2c";
448 };
449 };
450 };