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,rt2880-pinctrl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Ralink RT2880 Pin Controller
8
9maintainers:
10  - Arınç ÜNAL <arinc.unal@arinc9.com>
11  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
12
13description: |
14  Ralink RT2880 pin controller for RT2880 SoC.
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,rt2880-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, i2c, spi, uartlite, jtag, mdio, sdram, pci]
39
40          groups:
41            description:
42              An array of strings. Each string contains the name of a group.
43            maxItems: 1
44
45        required:
46          - groups
47          - function
48
49        allOf:
50          - if:
51              properties:
52                function:
53                  const: gpio
54            then:
55              properties:
56                groups:
57                  enum: [i2c, spi, uartlite, jtag, mdio, sdram, pci]
58
59          - if:
60              properties:
61                function:
62                  const: i2c
63            then:
64              properties:
65                groups:
66                  enum: [i2c]
67
68          - if:
69              properties:
70                function:
71                  const: spi
72            then:
73              properties:
74                groups:
75                  enum: [spi]
76
77          - if:
78              properties:
79                function:
80                  const: uartlite
81            then:
82              properties:
83                groups:
84                  enum: [uartlite]
85
86          - if:
87              properties:
88                function:
89                  const: jtag
90            then:
91              properties:
92                groups:
93                  enum: [jtag]
94
95          - if:
96              properties:
97                function:
98                  const: mdio
99            then:
100              properties:
101                groups:
102                  enum: [mdio]
103
104          - if:
105              properties:
106                function:
107                  const: sdram
108            then:
109              properties:
110                groups:
111                  enum: [sdram]
112
113          - if:
114              properties:
115                function:
116                  const: pci
117            then:
118              properties:
119                groups:
120                  enum: [pci]
121
122allOf:
123  - $ref: pinctrl.yaml#
124
125required:
126  - compatible
127
128additionalProperties: false
129
130examples:
131  - |
132    pinctrl {
133      compatible = "ralink,rt2880-pinctrl";
134
135      i2c_pins: i2c0-pins {
136        pinmux {
137          groups = "i2c";
138          function = "i2c";
139        };
140      };
141    };
142