xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/mediatek,mt7621-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,mt7621-pinctrl.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*fac71e4eSEmmanuel Vadot
7*fac71e4eSEmmanuel Vadottitle: MediaTek MT7621 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 MT7621 pin controller for MT7621 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,mt7621-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: [gpio, i2c, i2s, jtag, mdio, nand1, nand2, pcie refclk,
39*fac71e4eSEmmanuel Vadot                   pcie rst, pcm, rgmii1, rgmii2, sdhci, spdif2, spdif3, spi,
40*fac71e4eSEmmanuel Vadot                   uart1, uart2, uart3, wdt refclk, wdt rst]
41*fac71e4eSEmmanuel Vadot
42*fac71e4eSEmmanuel Vadot          groups:
43*fac71e4eSEmmanuel Vadot            description:
44*fac71e4eSEmmanuel Vadot              An array of strings. Each string contains the name of a group.
45*fac71e4eSEmmanuel Vadot            maxItems: 1
46*fac71e4eSEmmanuel Vadot
47*fac71e4eSEmmanuel Vadot        required:
48*fac71e4eSEmmanuel Vadot          - groups
49*fac71e4eSEmmanuel Vadot          - function
50*fac71e4eSEmmanuel Vadot
51*fac71e4eSEmmanuel Vadot        allOf:
52*fac71e4eSEmmanuel Vadot          - if:
53*fac71e4eSEmmanuel Vadot              properties:
54*fac71e4eSEmmanuel Vadot                function:
55*fac71e4eSEmmanuel Vadot                  const: gpio
56*fac71e4eSEmmanuel Vadot            then:
57*fac71e4eSEmmanuel Vadot              properties:
58*fac71e4eSEmmanuel Vadot                groups:
59*fac71e4eSEmmanuel Vadot                  enum: [i2c, jtag, mdio, pcie, rgmii1, rgmii2, sdhci, spi,
60*fac71e4eSEmmanuel Vadot                         uart1, uart2, uart3, wdt]
61*fac71e4eSEmmanuel Vadot
62*fac71e4eSEmmanuel Vadot          - if:
63*fac71e4eSEmmanuel Vadot              properties:
64*fac71e4eSEmmanuel Vadot                function:
65*fac71e4eSEmmanuel Vadot                  const: i2c
66*fac71e4eSEmmanuel Vadot            then:
67*fac71e4eSEmmanuel Vadot              properties:
68*fac71e4eSEmmanuel Vadot                groups:
69*fac71e4eSEmmanuel Vadot                  enum: [i2c]
70*fac71e4eSEmmanuel Vadot
71*fac71e4eSEmmanuel Vadot          - if:
72*fac71e4eSEmmanuel Vadot              properties:
73*fac71e4eSEmmanuel Vadot                function:
74*fac71e4eSEmmanuel Vadot                  const: i2s
75*fac71e4eSEmmanuel Vadot            then:
76*fac71e4eSEmmanuel Vadot              properties:
77*fac71e4eSEmmanuel Vadot                groups:
78*fac71e4eSEmmanuel Vadot                  enum: [uart3]
79*fac71e4eSEmmanuel Vadot
80*fac71e4eSEmmanuel Vadot          - if:
81*fac71e4eSEmmanuel Vadot              properties:
82*fac71e4eSEmmanuel Vadot                function:
83*fac71e4eSEmmanuel Vadot                  const: jtag
84*fac71e4eSEmmanuel Vadot            then:
85*fac71e4eSEmmanuel Vadot              properties:
86*fac71e4eSEmmanuel Vadot                groups:
87*fac71e4eSEmmanuel Vadot                  enum: [jtag]
88*fac71e4eSEmmanuel Vadot
89*fac71e4eSEmmanuel Vadot          - if:
90*fac71e4eSEmmanuel Vadot              properties:
91*fac71e4eSEmmanuel Vadot                function:
92*fac71e4eSEmmanuel Vadot                  const: mdio
93*fac71e4eSEmmanuel Vadot            then:
94*fac71e4eSEmmanuel Vadot              properties:
95*fac71e4eSEmmanuel Vadot                groups:
96*fac71e4eSEmmanuel Vadot                  enum: [mdio]
97*fac71e4eSEmmanuel Vadot
98*fac71e4eSEmmanuel Vadot          - if:
99*fac71e4eSEmmanuel Vadot              properties:
100*fac71e4eSEmmanuel Vadot                function:
101*fac71e4eSEmmanuel Vadot                  const: nand1
102*fac71e4eSEmmanuel Vadot            then:
103*fac71e4eSEmmanuel Vadot              properties:
104*fac71e4eSEmmanuel Vadot                groups:
105*fac71e4eSEmmanuel Vadot                  enum: [spi]
106*fac71e4eSEmmanuel Vadot
107*fac71e4eSEmmanuel Vadot          - if:
108*fac71e4eSEmmanuel Vadot              properties:
109*fac71e4eSEmmanuel Vadot                function:
110*fac71e4eSEmmanuel Vadot                  const: nand2
111*fac71e4eSEmmanuel Vadot            then:
112*fac71e4eSEmmanuel Vadot              properties:
113*fac71e4eSEmmanuel Vadot                groups:
114*fac71e4eSEmmanuel Vadot                  enum: [sdhci]
115*fac71e4eSEmmanuel Vadot
116*fac71e4eSEmmanuel Vadot          - if:
117*fac71e4eSEmmanuel Vadot              properties:
118*fac71e4eSEmmanuel Vadot                function:
119*fac71e4eSEmmanuel Vadot                  const: pcie refclk
120*fac71e4eSEmmanuel Vadot            then:
121*fac71e4eSEmmanuel Vadot              properties:
122*fac71e4eSEmmanuel Vadot                groups:
123*fac71e4eSEmmanuel Vadot                  enum: [pcie]
124*fac71e4eSEmmanuel Vadot
125*fac71e4eSEmmanuel Vadot          - if:
126*fac71e4eSEmmanuel Vadot              properties:
127*fac71e4eSEmmanuel Vadot                function:
128*fac71e4eSEmmanuel Vadot                  const: pcie rst
129*fac71e4eSEmmanuel Vadot            then:
130*fac71e4eSEmmanuel Vadot              properties:
131*fac71e4eSEmmanuel Vadot                groups:
132*fac71e4eSEmmanuel Vadot                  enum: [pcie]
133*fac71e4eSEmmanuel Vadot
134*fac71e4eSEmmanuel Vadot          - if:
135*fac71e4eSEmmanuel Vadot              properties:
136*fac71e4eSEmmanuel Vadot                function:
137*fac71e4eSEmmanuel Vadot                  const: pcm
138*fac71e4eSEmmanuel Vadot            then:
139*fac71e4eSEmmanuel Vadot              properties:
140*fac71e4eSEmmanuel Vadot                groups:
141*fac71e4eSEmmanuel Vadot                  enum: [uart2]
142*fac71e4eSEmmanuel Vadot
143*fac71e4eSEmmanuel Vadot          - if:
144*fac71e4eSEmmanuel Vadot              properties:
145*fac71e4eSEmmanuel Vadot                function:
146*fac71e4eSEmmanuel Vadot                  const: rgmii1
147*fac71e4eSEmmanuel Vadot            then:
148*fac71e4eSEmmanuel Vadot              properties:
149*fac71e4eSEmmanuel Vadot                groups:
150*fac71e4eSEmmanuel Vadot                  enum: [rgmii1]
151*fac71e4eSEmmanuel Vadot
152*fac71e4eSEmmanuel Vadot          - if:
153*fac71e4eSEmmanuel Vadot              properties:
154*fac71e4eSEmmanuel Vadot                function:
155*fac71e4eSEmmanuel Vadot                  const: rgmii2
156*fac71e4eSEmmanuel Vadot            then:
157*fac71e4eSEmmanuel Vadot              properties:
158*fac71e4eSEmmanuel Vadot                groups:
159*fac71e4eSEmmanuel Vadot                  enum: [rgmii2]
160*fac71e4eSEmmanuel Vadot
161*fac71e4eSEmmanuel Vadot          - if:
162*fac71e4eSEmmanuel Vadot              properties:
163*fac71e4eSEmmanuel Vadot                function:
164*fac71e4eSEmmanuel Vadot                  const: sdhci
165*fac71e4eSEmmanuel Vadot            then:
166*fac71e4eSEmmanuel Vadot              properties:
167*fac71e4eSEmmanuel Vadot                groups:
168*fac71e4eSEmmanuel Vadot                  enum: [sdhci]
169*fac71e4eSEmmanuel Vadot
170*fac71e4eSEmmanuel Vadot          - if:
171*fac71e4eSEmmanuel Vadot              properties:
172*fac71e4eSEmmanuel Vadot                function:
173*fac71e4eSEmmanuel Vadot                  const: spdif2
174*fac71e4eSEmmanuel Vadot            then:
175*fac71e4eSEmmanuel Vadot              properties:
176*fac71e4eSEmmanuel Vadot                groups:
177*fac71e4eSEmmanuel Vadot                  enum: [uart2]
178*fac71e4eSEmmanuel Vadot
179*fac71e4eSEmmanuel Vadot          - if:
180*fac71e4eSEmmanuel Vadot              properties:
181*fac71e4eSEmmanuel Vadot                function:
182*fac71e4eSEmmanuel Vadot                  const: spdif3
183*fac71e4eSEmmanuel Vadot            then:
184*fac71e4eSEmmanuel Vadot              properties:
185*fac71e4eSEmmanuel Vadot                groups:
186*fac71e4eSEmmanuel Vadot                  enum: [uart3]
187*fac71e4eSEmmanuel Vadot
188*fac71e4eSEmmanuel Vadot          - if:
189*fac71e4eSEmmanuel Vadot              properties:
190*fac71e4eSEmmanuel Vadot                function:
191*fac71e4eSEmmanuel Vadot                  const: spi
192*fac71e4eSEmmanuel Vadot            then:
193*fac71e4eSEmmanuel Vadot              properties:
194*fac71e4eSEmmanuel Vadot                groups:
195*fac71e4eSEmmanuel Vadot                  enum: [spi]
196*fac71e4eSEmmanuel Vadot
197*fac71e4eSEmmanuel Vadot          - if:
198*fac71e4eSEmmanuel Vadot              properties:
199*fac71e4eSEmmanuel Vadot                function:
200*fac71e4eSEmmanuel Vadot                  const: uart1
201*fac71e4eSEmmanuel Vadot            then:
202*fac71e4eSEmmanuel Vadot              properties:
203*fac71e4eSEmmanuel Vadot                groups:
204*fac71e4eSEmmanuel Vadot                  enum: [uart1]
205*fac71e4eSEmmanuel Vadot
206*fac71e4eSEmmanuel Vadot          - if:
207*fac71e4eSEmmanuel Vadot              properties:
208*fac71e4eSEmmanuel Vadot                function:
209*fac71e4eSEmmanuel Vadot                  const: uart2
210*fac71e4eSEmmanuel Vadot            then:
211*fac71e4eSEmmanuel Vadot              properties:
212*fac71e4eSEmmanuel Vadot                groups:
213*fac71e4eSEmmanuel Vadot                  enum: [uart2]
214*fac71e4eSEmmanuel Vadot
215*fac71e4eSEmmanuel Vadot          - if:
216*fac71e4eSEmmanuel Vadot              properties:
217*fac71e4eSEmmanuel Vadot                function:
218*fac71e4eSEmmanuel Vadot                  const: uart3
219*fac71e4eSEmmanuel Vadot            then:
220*fac71e4eSEmmanuel Vadot              properties:
221*fac71e4eSEmmanuel Vadot                groups:
222*fac71e4eSEmmanuel Vadot                  enum: [uart3]
223*fac71e4eSEmmanuel Vadot
224*fac71e4eSEmmanuel Vadot          - if:
225*fac71e4eSEmmanuel Vadot              properties:
226*fac71e4eSEmmanuel Vadot                function:
227*fac71e4eSEmmanuel Vadot                  const: wdt refclk
228*fac71e4eSEmmanuel Vadot            then:
229*fac71e4eSEmmanuel Vadot              properties:
230*fac71e4eSEmmanuel Vadot                groups:
231*fac71e4eSEmmanuel Vadot                  enum: [wdt]
232*fac71e4eSEmmanuel Vadot
233*fac71e4eSEmmanuel Vadot          - if:
234*fac71e4eSEmmanuel Vadot              properties:
235*fac71e4eSEmmanuel Vadot                function:
236*fac71e4eSEmmanuel Vadot                  const: wdt rst
237*fac71e4eSEmmanuel Vadot            then:
238*fac71e4eSEmmanuel Vadot              properties:
239*fac71e4eSEmmanuel Vadot                groups:
240*fac71e4eSEmmanuel Vadot                  enum: [wdt]
241*fac71e4eSEmmanuel Vadot
242*fac71e4eSEmmanuel VadotallOf:
243*fac71e4eSEmmanuel Vadot  - $ref: pinctrl.yaml#
244*fac71e4eSEmmanuel Vadot
245*fac71e4eSEmmanuel Vadotrequired:
246*fac71e4eSEmmanuel Vadot  - compatible
247*fac71e4eSEmmanuel Vadot
248*fac71e4eSEmmanuel VadotadditionalProperties: false
249*fac71e4eSEmmanuel Vadot
250*fac71e4eSEmmanuel Vadotexamples:
251*fac71e4eSEmmanuel Vadot  - |
252*fac71e4eSEmmanuel Vadot    pinctrl {
253*fac71e4eSEmmanuel Vadot      compatible = "ralink,mt7621-pinctrl";
254*fac71e4eSEmmanuel Vadot
255*fac71e4eSEmmanuel Vadot      i2c_pins: i2c0-pins {
256*fac71e4eSEmmanuel Vadot        pinmux {
257*fac71e4eSEmmanuel Vadot          groups = "i2c";
258*fac71e4eSEmmanuel Vadot          function = "i2c";
259*fac71e4eSEmmanuel Vadot        };
260*fac71e4eSEmmanuel Vadot      };
261*fac71e4eSEmmanuel Vadot    };
262