xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/mediatek,mt7620-pinctrl.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1*fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*fac71e4eSEmmanuel Vadot%YAML 1.2
3*fac71e4eSEmmanuel Vadot---
4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/mediatek,mt7620-pinctrl.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*fac71e4eSEmmanuel Vadot
7*fac71e4eSEmmanuel Vadottitle: MediaTek MT7620 Pin Controller
8*fac71e4eSEmmanuel Vadot
9*fac71e4eSEmmanuel Vadotmaintainers:
10*fac71e4eSEmmanuel Vadot  - Arınç ÜNAL <arinc.unal@arinc9.com>
11*fac71e4eSEmmanuel Vadot  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
12*fac71e4eSEmmanuel Vadot
13*fac71e4eSEmmanuel Vadotdescription: |
14*fac71e4eSEmmanuel Vadot  MediaTek MT7620 pin controller for MT7620 SoC.
15*fac71e4eSEmmanuel Vadot  The pin controller can only set the muxing of pin groups. Muxing individual
16*fac71e4eSEmmanuel Vadot  pins is not supported. There is no pinconf support.
17*fac71e4eSEmmanuel Vadot
18*fac71e4eSEmmanuel Vadotproperties:
19*fac71e4eSEmmanuel Vadot  compatible:
20*fac71e4eSEmmanuel Vadot    const: ralink,mt7620-pinctrl
21*fac71e4eSEmmanuel Vadot
22*fac71e4eSEmmanuel VadotpatternProperties:
23*fac71e4eSEmmanuel Vadot  '-pins$':
24*fac71e4eSEmmanuel Vadot    type: object
25*fac71e4eSEmmanuel Vadot    additionalProperties: false
26*fac71e4eSEmmanuel Vadot
27*fac71e4eSEmmanuel Vadot    patternProperties:
28*fac71e4eSEmmanuel Vadot      '^(.*-)?pinmux$':
29*fac71e4eSEmmanuel Vadot        type: object
30*fac71e4eSEmmanuel Vadot        description: node for pinctrl.
31*fac71e4eSEmmanuel Vadot        $ref: pinmux-node.yaml#
32*fac71e4eSEmmanuel Vadot        additionalProperties: false
33*fac71e4eSEmmanuel Vadot
34*fac71e4eSEmmanuel Vadot        properties:
35*fac71e4eSEmmanuel Vadot          function:
36*fac71e4eSEmmanuel Vadot            description:
37*fac71e4eSEmmanuel Vadot              A string containing the name of the function to mux to the group.
38*fac71e4eSEmmanuel Vadot            enum: [ephy, gpio, gpio i2s, gpio uartf, i2c, i2s uartf, mdio, nand,
39*fac71e4eSEmmanuel Vadot                   pa, pcie refclk, pcie rst, pcm gpio, pcm i2s, pcm uartf,
40*fac71e4eSEmmanuel Vadot                   refclk, rgmii1, rgmii2, sd, spi, spi refclk, uartf, uartlite,
41*fac71e4eSEmmanuel Vadot                   wdt refclk, wdt rst, wled]
42*fac71e4eSEmmanuel Vadot
43*fac71e4eSEmmanuel Vadot          groups:
44*fac71e4eSEmmanuel Vadot            description:
45*fac71e4eSEmmanuel Vadot              An array of strings. Each string contains the name of a group.
46*fac71e4eSEmmanuel Vadot            maxItems: 1
47*fac71e4eSEmmanuel Vadot
48*fac71e4eSEmmanuel Vadot        required:
49*fac71e4eSEmmanuel Vadot          - groups
50*fac71e4eSEmmanuel Vadot          - function
51*fac71e4eSEmmanuel Vadot
52*fac71e4eSEmmanuel Vadot        allOf:
53*fac71e4eSEmmanuel Vadot          - if:
54*fac71e4eSEmmanuel Vadot              properties:
55*fac71e4eSEmmanuel Vadot                function:
56*fac71e4eSEmmanuel Vadot                  const: ephy
57*fac71e4eSEmmanuel Vadot            then:
58*fac71e4eSEmmanuel Vadot              properties:
59*fac71e4eSEmmanuel Vadot                groups:
60*fac71e4eSEmmanuel Vadot                  enum: [ephy]
61*fac71e4eSEmmanuel Vadot
62*fac71e4eSEmmanuel Vadot          - if:
63*fac71e4eSEmmanuel Vadot              properties:
64*fac71e4eSEmmanuel Vadot                function:
65*fac71e4eSEmmanuel Vadot                  const: gpio
66*fac71e4eSEmmanuel Vadot            then:
67*fac71e4eSEmmanuel Vadot              properties:
68*fac71e4eSEmmanuel Vadot                groups:
69*fac71e4eSEmmanuel Vadot                  enum: [ephy, i2c, mdio, nd_sd, pa, pcie, rgmii1, rgmii2, spi,
70*fac71e4eSEmmanuel Vadot                         spi refclk, uartf, uartlite, wdt, wled]
71*fac71e4eSEmmanuel Vadot
72*fac71e4eSEmmanuel Vadot          - if:
73*fac71e4eSEmmanuel Vadot              properties:
74*fac71e4eSEmmanuel Vadot                function:
75*fac71e4eSEmmanuel Vadot                  const: gpio i2s
76*fac71e4eSEmmanuel Vadot            then:
77*fac71e4eSEmmanuel Vadot              properties:
78*fac71e4eSEmmanuel Vadot                groups:
79*fac71e4eSEmmanuel Vadot                  enum: [uartf]
80*fac71e4eSEmmanuel Vadot
81*fac71e4eSEmmanuel Vadot          - if:
82*fac71e4eSEmmanuel Vadot              properties:
83*fac71e4eSEmmanuel Vadot                function:
84*fac71e4eSEmmanuel Vadot                  const: gpio uartf
85*fac71e4eSEmmanuel Vadot            then:
86*fac71e4eSEmmanuel Vadot              properties:
87*fac71e4eSEmmanuel Vadot                groups:
88*fac71e4eSEmmanuel Vadot                  enum: [uartf]
89*fac71e4eSEmmanuel Vadot
90*fac71e4eSEmmanuel Vadot          - if:
91*fac71e4eSEmmanuel Vadot              properties:
92*fac71e4eSEmmanuel Vadot                function:
93*fac71e4eSEmmanuel Vadot                  const: i2c
94*fac71e4eSEmmanuel Vadot            then:
95*fac71e4eSEmmanuel Vadot              properties:
96*fac71e4eSEmmanuel Vadot                groups:
97*fac71e4eSEmmanuel Vadot                  enum: [i2c]
98*fac71e4eSEmmanuel Vadot
99*fac71e4eSEmmanuel Vadot          - if:
100*fac71e4eSEmmanuel Vadot              properties:
101*fac71e4eSEmmanuel Vadot                function:
102*fac71e4eSEmmanuel Vadot                  const: i2s uartf
103*fac71e4eSEmmanuel Vadot            then:
104*fac71e4eSEmmanuel Vadot              properties:
105*fac71e4eSEmmanuel Vadot                groups:
106*fac71e4eSEmmanuel Vadot                  enum: [uartf]
107*fac71e4eSEmmanuel Vadot
108*fac71e4eSEmmanuel Vadot          - if:
109*fac71e4eSEmmanuel Vadot              properties:
110*fac71e4eSEmmanuel Vadot                function:
111*fac71e4eSEmmanuel Vadot                  const: mdio
112*fac71e4eSEmmanuel Vadot            then:
113*fac71e4eSEmmanuel Vadot              properties:
114*fac71e4eSEmmanuel Vadot                groups:
115*fac71e4eSEmmanuel Vadot                  enum: [mdio]
116*fac71e4eSEmmanuel Vadot
117*fac71e4eSEmmanuel Vadot          - if:
118*fac71e4eSEmmanuel Vadot              properties:
119*fac71e4eSEmmanuel Vadot                function:
120*fac71e4eSEmmanuel Vadot                  const: nand
121*fac71e4eSEmmanuel Vadot            then:
122*fac71e4eSEmmanuel Vadot              properties:
123*fac71e4eSEmmanuel Vadot                groups:
124*fac71e4eSEmmanuel Vadot                  enum: [nd_sd]
125*fac71e4eSEmmanuel Vadot
126*fac71e4eSEmmanuel Vadot          - if:
127*fac71e4eSEmmanuel Vadot              properties:
128*fac71e4eSEmmanuel Vadot                function:
129*fac71e4eSEmmanuel Vadot                  const: pa
130*fac71e4eSEmmanuel Vadot            then:
131*fac71e4eSEmmanuel Vadot              properties:
132*fac71e4eSEmmanuel Vadot                groups:
133*fac71e4eSEmmanuel Vadot                  enum: [pa]
134*fac71e4eSEmmanuel Vadot
135*fac71e4eSEmmanuel Vadot          - if:
136*fac71e4eSEmmanuel Vadot              properties:
137*fac71e4eSEmmanuel Vadot                function:
138*fac71e4eSEmmanuel Vadot                  const: pcie refclk
139*fac71e4eSEmmanuel Vadot            then:
140*fac71e4eSEmmanuel Vadot              properties:
141*fac71e4eSEmmanuel Vadot                groups:
142*fac71e4eSEmmanuel Vadot                  enum: [pcie]
143*fac71e4eSEmmanuel Vadot
144*fac71e4eSEmmanuel Vadot          - if:
145*fac71e4eSEmmanuel Vadot              properties:
146*fac71e4eSEmmanuel Vadot                function:
147*fac71e4eSEmmanuel Vadot                  const: pcie rst
148*fac71e4eSEmmanuel Vadot            then:
149*fac71e4eSEmmanuel Vadot              properties:
150*fac71e4eSEmmanuel Vadot                groups:
151*fac71e4eSEmmanuel Vadot                  enum: [pcie]
152*fac71e4eSEmmanuel Vadot
153*fac71e4eSEmmanuel Vadot          - if:
154*fac71e4eSEmmanuel Vadot              properties:
155*fac71e4eSEmmanuel Vadot                function:
156*fac71e4eSEmmanuel Vadot                  const: pcm gpio
157*fac71e4eSEmmanuel Vadot            then:
158*fac71e4eSEmmanuel Vadot              properties:
159*fac71e4eSEmmanuel Vadot                groups:
160*fac71e4eSEmmanuel Vadot                  enum: [uartf]
161*fac71e4eSEmmanuel Vadot
162*fac71e4eSEmmanuel Vadot          - if:
163*fac71e4eSEmmanuel Vadot              properties:
164*fac71e4eSEmmanuel Vadot                function:
165*fac71e4eSEmmanuel Vadot                  const: pcm i2s
166*fac71e4eSEmmanuel Vadot            then:
167*fac71e4eSEmmanuel Vadot              properties:
168*fac71e4eSEmmanuel Vadot                groups:
169*fac71e4eSEmmanuel Vadot                  enum: [uartf]
170*fac71e4eSEmmanuel Vadot
171*fac71e4eSEmmanuel Vadot          - if:
172*fac71e4eSEmmanuel Vadot              properties:
173*fac71e4eSEmmanuel Vadot                function:
174*fac71e4eSEmmanuel Vadot                  const: pcm uartf
175*fac71e4eSEmmanuel Vadot            then:
176*fac71e4eSEmmanuel Vadot              properties:
177*fac71e4eSEmmanuel Vadot                groups:
178*fac71e4eSEmmanuel Vadot                  enum: [uartf]
179*fac71e4eSEmmanuel Vadot
180*fac71e4eSEmmanuel Vadot          - if:
181*fac71e4eSEmmanuel Vadot              properties:
182*fac71e4eSEmmanuel Vadot                function:
183*fac71e4eSEmmanuel Vadot                  const: refclk
184*fac71e4eSEmmanuel Vadot            then:
185*fac71e4eSEmmanuel Vadot              properties:
186*fac71e4eSEmmanuel Vadot                groups:
187*fac71e4eSEmmanuel Vadot                  enum: [mdio]
188*fac71e4eSEmmanuel Vadot
189*fac71e4eSEmmanuel Vadot          - if:
190*fac71e4eSEmmanuel Vadot              properties:
191*fac71e4eSEmmanuel Vadot                function:
192*fac71e4eSEmmanuel Vadot                  const: rgmii1
193*fac71e4eSEmmanuel Vadot            then:
194*fac71e4eSEmmanuel Vadot              properties:
195*fac71e4eSEmmanuel Vadot                groups:
196*fac71e4eSEmmanuel Vadot                  enum: [rgmii1]
197*fac71e4eSEmmanuel Vadot
198*fac71e4eSEmmanuel Vadot          - if:
199*fac71e4eSEmmanuel Vadot              properties:
200*fac71e4eSEmmanuel Vadot                function:
201*fac71e4eSEmmanuel Vadot                  const: rgmii2
202*fac71e4eSEmmanuel Vadot            then:
203*fac71e4eSEmmanuel Vadot              properties:
204*fac71e4eSEmmanuel Vadot                groups:
205*fac71e4eSEmmanuel Vadot                  enum: [rgmii2]
206*fac71e4eSEmmanuel Vadot
207*fac71e4eSEmmanuel Vadot          - if:
208*fac71e4eSEmmanuel Vadot              properties:
209*fac71e4eSEmmanuel Vadot                function:
210*fac71e4eSEmmanuel Vadot                  const: sd
211*fac71e4eSEmmanuel Vadot            then:
212*fac71e4eSEmmanuel Vadot              properties:
213*fac71e4eSEmmanuel Vadot                groups:
214*fac71e4eSEmmanuel Vadot                  enum: [nd_sd]
215*fac71e4eSEmmanuel Vadot
216*fac71e4eSEmmanuel Vadot          - if:
217*fac71e4eSEmmanuel Vadot              properties:
218*fac71e4eSEmmanuel Vadot                function:
219*fac71e4eSEmmanuel Vadot                  const: spi
220*fac71e4eSEmmanuel Vadot            then:
221*fac71e4eSEmmanuel Vadot              properties:
222*fac71e4eSEmmanuel Vadot                groups:
223*fac71e4eSEmmanuel Vadot                  enum: [spi]
224*fac71e4eSEmmanuel Vadot
225*fac71e4eSEmmanuel Vadot          - if:
226*fac71e4eSEmmanuel Vadot              properties:
227*fac71e4eSEmmanuel Vadot                function:
228*fac71e4eSEmmanuel Vadot                  const: spi refclk
229*fac71e4eSEmmanuel Vadot            then:
230*fac71e4eSEmmanuel Vadot              properties:
231*fac71e4eSEmmanuel Vadot                groups:
232*fac71e4eSEmmanuel Vadot                  enum: [spi refclk]
233*fac71e4eSEmmanuel Vadot
234*fac71e4eSEmmanuel Vadot          - if:
235*fac71e4eSEmmanuel Vadot              properties:
236*fac71e4eSEmmanuel Vadot                function:
237*fac71e4eSEmmanuel Vadot                  const: uartf
238*fac71e4eSEmmanuel Vadot            then:
239*fac71e4eSEmmanuel Vadot              properties:
240*fac71e4eSEmmanuel Vadot                groups:
241*fac71e4eSEmmanuel Vadot                  enum: [uartf]
242*fac71e4eSEmmanuel Vadot
243*fac71e4eSEmmanuel Vadot          - if:
244*fac71e4eSEmmanuel Vadot              properties:
245*fac71e4eSEmmanuel Vadot                function:
246*fac71e4eSEmmanuel Vadot                  const: uartlite
247*fac71e4eSEmmanuel Vadot            then:
248*fac71e4eSEmmanuel Vadot              properties:
249*fac71e4eSEmmanuel Vadot                groups:
250*fac71e4eSEmmanuel Vadot                  enum: [uartlite]
251*fac71e4eSEmmanuel Vadot
252*fac71e4eSEmmanuel Vadot          - if:
253*fac71e4eSEmmanuel Vadot              properties:
254*fac71e4eSEmmanuel Vadot                function:
255*fac71e4eSEmmanuel Vadot                  const: wdt refclk
256*fac71e4eSEmmanuel Vadot            then:
257*fac71e4eSEmmanuel Vadot              properties:
258*fac71e4eSEmmanuel Vadot                groups:
259*fac71e4eSEmmanuel Vadot                  enum: [wdt]
260*fac71e4eSEmmanuel Vadot
261*fac71e4eSEmmanuel Vadot          - if:
262*fac71e4eSEmmanuel Vadot              properties:
263*fac71e4eSEmmanuel Vadot                function:
264*fac71e4eSEmmanuel Vadot                  const: wdt rst
265*fac71e4eSEmmanuel Vadot            then:
266*fac71e4eSEmmanuel Vadot              properties:
267*fac71e4eSEmmanuel Vadot                groups:
268*fac71e4eSEmmanuel Vadot                  enum: [wdt]
269*fac71e4eSEmmanuel Vadot
270*fac71e4eSEmmanuel Vadot          - if:
271*fac71e4eSEmmanuel Vadot              properties:
272*fac71e4eSEmmanuel Vadot                function:
273*fac71e4eSEmmanuel Vadot                  const: wled
274*fac71e4eSEmmanuel Vadot            then:
275*fac71e4eSEmmanuel Vadot              properties:
276*fac71e4eSEmmanuel Vadot                groups:
277*fac71e4eSEmmanuel Vadot                  enum: [wled]
278*fac71e4eSEmmanuel Vadot
279*fac71e4eSEmmanuel VadotallOf:
280*fac71e4eSEmmanuel Vadot  - $ref: pinctrl.yaml#
281*fac71e4eSEmmanuel Vadot
282*fac71e4eSEmmanuel Vadotrequired:
283*fac71e4eSEmmanuel Vadot  - compatible
284*fac71e4eSEmmanuel Vadot
285*fac71e4eSEmmanuel VadotadditionalProperties: false
286*fac71e4eSEmmanuel Vadot
287*fac71e4eSEmmanuel Vadotexamples:
288*fac71e4eSEmmanuel Vadot  - |
289*fac71e4eSEmmanuel Vadot    pinctrl {
290*fac71e4eSEmmanuel Vadot      compatible = "ralink,mt7620-pinctrl";
291*fac71e4eSEmmanuel Vadot
292*fac71e4eSEmmanuel Vadot      i2c_pins: i2c0-pins {
293*fac71e4eSEmmanuel Vadot        pinmux {
294*fac71e4eSEmmanuel Vadot          groups = "i2c";
295*fac71e4eSEmmanuel Vadot          function = "i2c";
296*fac71e4eSEmmanuel Vadot        };
297*fac71e4eSEmmanuel Vadot      };
298*fac71e4eSEmmanuel Vadot    };
299