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,rt305x-pinctrl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Ralink RT305X Pin Controller
8
9maintainers:
10  - Arınç ÜNAL <arinc.unal@arinc9.com>
11  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
12
13description: |
14  Ralink RT305X pin controller for RT3050, RT3052, and RT3350 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,rt305x-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, mdio,
39                   pcm gpio, pcm i2s, pcm uartf, rgmii, sdram, spi, uartf,
40                   uartlite]
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, mdio, rgmii, sdram, spi, uartf, uartlite]
60
61          - if:
62              properties:
63                function:
64                  const: gpio i2s
65            then:
66              properties:
67                groups:
68                  enum: [uartf]
69
70          - if:
71              properties:
72                function:
73                  const: gpio uartf
74            then:
75              properties:
76                groups:
77                  enum: [uartf]
78
79          - if:
80              properties:
81                function:
82                  const: i2c
83            then:
84              properties:
85                groups:
86                  enum: [i2c]
87
88          - if:
89              properties:
90                function:
91                  const: i2s uartf
92            then:
93              properties:
94                groups:
95                  enum: [uartf]
96
97          - if:
98              properties:
99                function:
100                  const: jtag
101            then:
102              properties:
103                groups:
104                  enum: [jtag]
105
106          - if:
107              properties:
108                function:
109                  const: mdio
110            then:
111              properties:
112                groups:
113                  enum: [mdio]
114
115          - if:
116              properties:
117                function:
118                  const: pcm gpio
119            then:
120              properties:
121                groups:
122                  enum: [uartf]
123
124          - if:
125              properties:
126                function:
127                  const: pcm i2s
128            then:
129              properties:
130                groups:
131                  enum: [uartf]
132
133          - if:
134              properties:
135                function:
136                  const: pcm uartf
137            then:
138              properties:
139                groups:
140                  enum: [uartf]
141
142          - if:
143              properties:
144                function:
145                  const: rgmii
146            then:
147              properties:
148                groups:
149                  enum: [rgmii]
150
151          - if:
152              properties:
153                function:
154                  const: sdram
155            then:
156              properties:
157                groups:
158                  enum: [sdram]
159
160          - if:
161              properties:
162                function:
163                  const: spi
164            then:
165              properties:
166                groups:
167                  enum: [spi]
168
169          - if:
170              properties:
171                function:
172                  const: uartf
173            then:
174              properties:
175                groups:
176                  enum: [uartf]
177
178          - if:
179              properties:
180                function:
181                  const: uartlite
182            then:
183              properties:
184                groups:
185                  enum: [uartlite]
186
187allOf:
188  - $ref: pinctrl.yaml#
189
190required:
191  - compatible
192
193additionalProperties: false
194
195examples:
196  - |
197    pinctrl {
198      compatible = "ralink,rt305x-pinctrl";
199
200      i2c_pins: i2c0-pins {
201        pinmux {
202          groups = "i2c";
203          function = "i2c";
204        };
205      };
206    };
207