xref: /linux/Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml (revision 9ad8d22f2f3fad7a366c9772362795ef6d6a2d51)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pinctrl/mscc,ocelot-pinctrl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Microsemi Ocelot pin controller
8
9maintainers:
10  - Alexandre Belloni <alexandre.belloni@bootlin.com>
11  - Lars Povlsen <lars.povlsen@microchip.com>
12
13properties:
14  compatible:
15    oneOf:
16      - enum:
17          - microchip,lan966x-pinctrl
18          - microchip,lan9691-pinctrl
19          - microchip,sparx5-pinctrl
20          - mscc,jaguar2-pinctrl
21          - mscc,luton-pinctrl
22          - mscc,ocelot-pinctrl
23          - mscc,serval-pinctrl
24          - mscc,servalt-pinctrl
25      - items:
26          - enum:
27              - microchip,lan9698-pinctrl
28              - microchip,lan9696-pinctrl
29              - microchip,lan9694-pinctrl
30              - microchip,lan9693-pinctrl
31              - microchip,lan9692-pinctrl
32          - const: microchip,lan9691-pinctrl
33
34  reg:
35    items:
36      - description: Base address
37      - description: Extended pin configuration registers
38    minItems: 1
39
40  gpio-controller: true
41
42  '#gpio-cells':
43    const: 2
44
45  gpio-ranges: true
46
47  interrupts:
48    maxItems: 1
49
50  interrupt-controller: true
51
52  "#interrupt-cells":
53    const: 2
54
55  resets:
56    maxItems: 1
57
58  reset-names:
59    description: Optional shared switch reset.
60    items:
61      - const: switch
62
63patternProperties:
64  '-pins$':
65    type: object
66    allOf:
67      - $ref: pinmux-node.yaml
68      - $ref: pincfg-node.yaml
69
70    properties:
71      function: true
72      pins: true
73      output-high: true
74      output-low: true
75      drive-strength: true
76
77    required:
78      - function
79      - pins
80
81    additionalProperties: false
82
83required:
84  - compatible
85  - reg
86  - gpio-controller
87  - '#gpio-cells'
88  - gpio-ranges
89
90allOf:
91  - $ref: pinctrl.yaml#
92  - if:
93      properties:
94        compatible:
95          contains:
96            enum:
97              - microchip,lan966x-pinctrl
98              - microchip,lan9691-pinctrl
99              - microchip,sparx5-pinctrl
100    then:
101      properties:
102        reg:
103          minItems: 2
104
105additionalProperties: false
106
107examples:
108  - |
109    gpio: pinctrl@71070034 {
110        compatible = "mscc,ocelot-pinctrl";
111        reg = <0x71070034 0x28>;
112        gpio-controller;
113        #gpio-cells = <2>;
114        gpio-ranges = <&gpio 0 0 22>;
115
116        uart_pins: uart-pins {
117            pins = "GPIO_6", "GPIO_7";
118            function = "uart";
119        };
120
121        uart2_pins: uart2-pins {
122            pins = "GPIO_12", "GPIO_13";
123            function = "uart2";
124        };
125    };
126
127...
128