xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/ralink,rt3352-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/ralink,rt3352-pinctrl.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*fac71e4eSEmmanuel Vadot
7*fac71e4eSEmmanuel Vadottitle: Ralink RT3352 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  Ralink RT3352 pin controller for RT3352 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,rt3352-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, gpio i2s, gpio uartf, i2c, i2s uartf, jtag, led, lna,
39*fac71e4eSEmmanuel Vadot                   mdio, pa, pcm gpio, pcm i2s, pcm uartf, rgmii, spi, spi_cs1,
40*fac71e4eSEmmanuel Vadot                   uartf, uartlite, wdg_cs1]
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, led, lna, mdio, pa, rgmii, spi, spi_cs1,
60*fac71e4eSEmmanuel Vadot                         uartf, uartlite]
61*fac71e4eSEmmanuel Vadot
62*fac71e4eSEmmanuel Vadot          - if:
63*fac71e4eSEmmanuel Vadot              properties:
64*fac71e4eSEmmanuel Vadot                function:
65*fac71e4eSEmmanuel Vadot                  const: gpio i2s
66*fac71e4eSEmmanuel Vadot            then:
67*fac71e4eSEmmanuel Vadot              properties:
68*fac71e4eSEmmanuel Vadot                groups:
69*fac71e4eSEmmanuel Vadot                  enum: [uartf]
70*fac71e4eSEmmanuel Vadot
71*fac71e4eSEmmanuel Vadot          - if:
72*fac71e4eSEmmanuel Vadot              properties:
73*fac71e4eSEmmanuel Vadot                function:
74*fac71e4eSEmmanuel Vadot                  const: gpio uartf
75*fac71e4eSEmmanuel Vadot            then:
76*fac71e4eSEmmanuel Vadot              properties:
77*fac71e4eSEmmanuel Vadot                groups:
78*fac71e4eSEmmanuel Vadot                  enum: [uartf]
79*fac71e4eSEmmanuel Vadot
80*fac71e4eSEmmanuel Vadot          - if:
81*fac71e4eSEmmanuel Vadot              properties:
82*fac71e4eSEmmanuel Vadot                function:
83*fac71e4eSEmmanuel Vadot                  const: i2c
84*fac71e4eSEmmanuel Vadot            then:
85*fac71e4eSEmmanuel Vadot              properties:
86*fac71e4eSEmmanuel Vadot                groups:
87*fac71e4eSEmmanuel Vadot                  enum: [i2c]
88*fac71e4eSEmmanuel Vadot
89*fac71e4eSEmmanuel Vadot          - if:
90*fac71e4eSEmmanuel Vadot              properties:
91*fac71e4eSEmmanuel Vadot                function:
92*fac71e4eSEmmanuel Vadot                  const: i2s uartf
93*fac71e4eSEmmanuel Vadot            then:
94*fac71e4eSEmmanuel Vadot              properties:
95*fac71e4eSEmmanuel Vadot                groups:
96*fac71e4eSEmmanuel Vadot                  enum: [uartf]
97*fac71e4eSEmmanuel Vadot
98*fac71e4eSEmmanuel Vadot          - if:
99*fac71e4eSEmmanuel Vadot              properties:
100*fac71e4eSEmmanuel Vadot                function:
101*fac71e4eSEmmanuel Vadot                  const: jtag
102*fac71e4eSEmmanuel Vadot            then:
103*fac71e4eSEmmanuel Vadot              properties:
104*fac71e4eSEmmanuel Vadot                groups:
105*fac71e4eSEmmanuel Vadot                  enum: [jtag]
106*fac71e4eSEmmanuel Vadot
107*fac71e4eSEmmanuel Vadot          - if:
108*fac71e4eSEmmanuel Vadot              properties:
109*fac71e4eSEmmanuel Vadot                function:
110*fac71e4eSEmmanuel Vadot                  const: led
111*fac71e4eSEmmanuel Vadot            then:
112*fac71e4eSEmmanuel Vadot              properties:
113*fac71e4eSEmmanuel Vadot                groups:
114*fac71e4eSEmmanuel Vadot                  enum: [led]
115*fac71e4eSEmmanuel Vadot
116*fac71e4eSEmmanuel Vadot          - if:
117*fac71e4eSEmmanuel Vadot              properties:
118*fac71e4eSEmmanuel Vadot                function:
119*fac71e4eSEmmanuel Vadot                  const: lna
120*fac71e4eSEmmanuel Vadot            then:
121*fac71e4eSEmmanuel Vadot              properties:
122*fac71e4eSEmmanuel Vadot                groups:
123*fac71e4eSEmmanuel Vadot                  enum: [lna]
124*fac71e4eSEmmanuel Vadot
125*fac71e4eSEmmanuel Vadot          - if:
126*fac71e4eSEmmanuel Vadot              properties:
127*fac71e4eSEmmanuel Vadot                function:
128*fac71e4eSEmmanuel Vadot                  const: mdio
129*fac71e4eSEmmanuel Vadot            then:
130*fac71e4eSEmmanuel Vadot              properties:
131*fac71e4eSEmmanuel Vadot                groups:
132*fac71e4eSEmmanuel Vadot                  enum: [mdio]
133*fac71e4eSEmmanuel Vadot
134*fac71e4eSEmmanuel Vadot          - if:
135*fac71e4eSEmmanuel Vadot              properties:
136*fac71e4eSEmmanuel Vadot                function:
137*fac71e4eSEmmanuel Vadot                  const: pa
138*fac71e4eSEmmanuel Vadot            then:
139*fac71e4eSEmmanuel Vadot              properties:
140*fac71e4eSEmmanuel Vadot                groups:
141*fac71e4eSEmmanuel Vadot                  enum: [pa]
142*fac71e4eSEmmanuel Vadot
143*fac71e4eSEmmanuel Vadot          - if:
144*fac71e4eSEmmanuel Vadot              properties:
145*fac71e4eSEmmanuel Vadot                function:
146*fac71e4eSEmmanuel Vadot                  const: pcm gpio
147*fac71e4eSEmmanuel Vadot            then:
148*fac71e4eSEmmanuel Vadot              properties:
149*fac71e4eSEmmanuel Vadot                groups:
150*fac71e4eSEmmanuel Vadot                  enum: [uartf]
151*fac71e4eSEmmanuel Vadot
152*fac71e4eSEmmanuel Vadot          - if:
153*fac71e4eSEmmanuel Vadot              properties:
154*fac71e4eSEmmanuel Vadot                function:
155*fac71e4eSEmmanuel Vadot                  const: pcm i2s
156*fac71e4eSEmmanuel Vadot            then:
157*fac71e4eSEmmanuel Vadot              properties:
158*fac71e4eSEmmanuel Vadot                groups:
159*fac71e4eSEmmanuel Vadot                  enum: [uartf]
160*fac71e4eSEmmanuel Vadot
161*fac71e4eSEmmanuel Vadot          - if:
162*fac71e4eSEmmanuel Vadot              properties:
163*fac71e4eSEmmanuel Vadot                function:
164*fac71e4eSEmmanuel Vadot                  const: pcm uartf
165*fac71e4eSEmmanuel Vadot            then:
166*fac71e4eSEmmanuel Vadot              properties:
167*fac71e4eSEmmanuel Vadot                groups:
168*fac71e4eSEmmanuel Vadot                  enum: [uartf]
169*fac71e4eSEmmanuel Vadot
170*fac71e4eSEmmanuel Vadot          - if:
171*fac71e4eSEmmanuel Vadot              properties:
172*fac71e4eSEmmanuel Vadot                function:
173*fac71e4eSEmmanuel Vadot                  const: rgmii
174*fac71e4eSEmmanuel Vadot            then:
175*fac71e4eSEmmanuel Vadot              properties:
176*fac71e4eSEmmanuel Vadot                groups:
177*fac71e4eSEmmanuel Vadot                  enum: [rgmii]
178*fac71e4eSEmmanuel Vadot
179*fac71e4eSEmmanuel Vadot          - if:
180*fac71e4eSEmmanuel Vadot              properties:
181*fac71e4eSEmmanuel Vadot                function:
182*fac71e4eSEmmanuel Vadot                  const: spi
183*fac71e4eSEmmanuel Vadot            then:
184*fac71e4eSEmmanuel Vadot              properties:
185*fac71e4eSEmmanuel Vadot                groups:
186*fac71e4eSEmmanuel Vadot                  enum: [spi]
187*fac71e4eSEmmanuel Vadot
188*fac71e4eSEmmanuel Vadot          - if:
189*fac71e4eSEmmanuel Vadot              properties:
190*fac71e4eSEmmanuel Vadot                function:
191*fac71e4eSEmmanuel Vadot                  const: spi_cs1
192*fac71e4eSEmmanuel Vadot            then:
193*fac71e4eSEmmanuel Vadot              properties:
194*fac71e4eSEmmanuel Vadot                groups:
195*fac71e4eSEmmanuel Vadot                  enum: [spi_cs1]
196*fac71e4eSEmmanuel Vadot
197*fac71e4eSEmmanuel Vadot          - if:
198*fac71e4eSEmmanuel Vadot              properties:
199*fac71e4eSEmmanuel Vadot                function:
200*fac71e4eSEmmanuel Vadot                  const: uartf
201*fac71e4eSEmmanuel Vadot            then:
202*fac71e4eSEmmanuel Vadot              properties:
203*fac71e4eSEmmanuel Vadot                groups:
204*fac71e4eSEmmanuel Vadot                  enum: [uartf]
205*fac71e4eSEmmanuel Vadot
206*fac71e4eSEmmanuel Vadot          - if:
207*fac71e4eSEmmanuel Vadot              properties:
208*fac71e4eSEmmanuel Vadot                function:
209*fac71e4eSEmmanuel Vadot                  const: uartlite
210*fac71e4eSEmmanuel Vadot            then:
211*fac71e4eSEmmanuel Vadot              properties:
212*fac71e4eSEmmanuel Vadot                groups:
213*fac71e4eSEmmanuel Vadot                  enum: [uartlite]
214*fac71e4eSEmmanuel Vadot
215*fac71e4eSEmmanuel Vadot          - if:
216*fac71e4eSEmmanuel Vadot              properties:
217*fac71e4eSEmmanuel Vadot                function:
218*fac71e4eSEmmanuel Vadot                  const: wdg_cs1
219*fac71e4eSEmmanuel Vadot            then:
220*fac71e4eSEmmanuel Vadot              properties:
221*fac71e4eSEmmanuel Vadot                groups:
222*fac71e4eSEmmanuel Vadot                  enum: [spi_cs1]
223*fac71e4eSEmmanuel Vadot
224*fac71e4eSEmmanuel VadotallOf:
225*fac71e4eSEmmanuel Vadot  - $ref: pinctrl.yaml#
226*fac71e4eSEmmanuel Vadot
227*fac71e4eSEmmanuel Vadotrequired:
228*fac71e4eSEmmanuel Vadot  - compatible
229*fac71e4eSEmmanuel Vadot
230*fac71e4eSEmmanuel VadotadditionalProperties: false
231*fac71e4eSEmmanuel Vadot
232*fac71e4eSEmmanuel Vadotexamples:
233*fac71e4eSEmmanuel Vadot  - |
234*fac71e4eSEmmanuel Vadot    pinctrl {
235*fac71e4eSEmmanuel Vadot      compatible = "ralink,rt3352-pinctrl";
236*fac71e4eSEmmanuel Vadot
237*fac71e4eSEmmanuel Vadot      i2c_pins: i2c0-pins {
238*fac71e4eSEmmanuel Vadot        pinmux {
239*fac71e4eSEmmanuel Vadot          groups = "i2c";
240*fac71e4eSEmmanuel Vadot          function = "i2c";
241*fac71e4eSEmmanuel Vadot        };
242*fac71e4eSEmmanuel Vadot      };
243*fac71e4eSEmmanuel Vadot    };
244