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