xref: /linux/Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
161b23e48SMichael Walle# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
261b23e48SMichael Walle%YAML 1.2
361b23e48SMichael Walle---
461b23e48SMichael Walle$id: http://devicetree.org/schemas/pinctrl/mscc,ocelot-pinctrl.yaml#
561b23e48SMichael Walle$schema: http://devicetree.org/meta-schemas/core.yaml#
661b23e48SMichael Walle
761b23e48SMichael Walletitle: Microsemi Ocelot pin controller
861b23e48SMichael Walle
961b23e48SMichael Wallemaintainers:
1061b23e48SMichael Walle  - Alexandre Belloni <alexandre.belloni@bootlin.com>
1161b23e48SMichael Walle  - Lars Povlsen <lars.povlsen@microchip.com>
1261b23e48SMichael Walle
1361b23e48SMichael Walleproperties:
1461b23e48SMichael Walle  compatible:
15*01be3ac0SDaniel Machon    oneOf:
16*01be3ac0SDaniel Machon      - enum:
1761b23e48SMichael Walle          - microchip,lan966x-pinctrl
18*01be3ac0SDaniel Machon          - microchip,lan9691-pinctrl
1961b23e48SMichael Walle          - microchip,sparx5-pinctrl
2061b23e48SMichael Walle          - mscc,jaguar2-pinctrl
2161b23e48SMichael Walle          - mscc,luton-pinctrl
2261b23e48SMichael Walle          - mscc,ocelot-pinctrl
2361b23e48SMichael Walle          - mscc,serval-pinctrl
2461b23e48SMichael Walle          - mscc,servalt-pinctrl
25*01be3ac0SDaniel Machon      - items:
26*01be3ac0SDaniel Machon          - enum:
27*01be3ac0SDaniel Machon              - microchip,lan9698-pinctrl
28*01be3ac0SDaniel Machon              - microchip,lan9696-pinctrl
29*01be3ac0SDaniel Machon              - microchip,lan9694-pinctrl
30*01be3ac0SDaniel Machon              - microchip,lan9693-pinctrl
31*01be3ac0SDaniel Machon              - microchip,lan9692-pinctrl
32*01be3ac0SDaniel Machon          - const: microchip,lan9691-pinctrl
3361b23e48SMichael Walle
3461b23e48SMichael Walle  reg:
3561b23e48SMichael Walle    items:
3661b23e48SMichael Walle      - description: Base address
3761b23e48SMichael Walle      - description: Extended pin configuration registers
3861b23e48SMichael Walle    minItems: 1
3961b23e48SMichael Walle
4061b23e48SMichael Walle  gpio-controller: true
4161b23e48SMichael Walle
4261b23e48SMichael Walle  '#gpio-cells':
4361b23e48SMichael Walle    const: 2
4461b23e48SMichael Walle
4561b23e48SMichael Walle  gpio-ranges: true
4661b23e48SMichael Walle
4761b23e48SMichael Walle  interrupts:
4861b23e48SMichael Walle    maxItems: 1
4961b23e48SMichael Walle
5061b23e48SMichael Walle  interrupt-controller: true
5161b23e48SMichael Walle
5261b23e48SMichael Walle  "#interrupt-cells":
5361b23e48SMichael Walle    const: 2
5461b23e48SMichael Walle
559c1082fdSMichael Walle  resets:
569c1082fdSMichael Walle    maxItems: 1
579c1082fdSMichael Walle
589c1082fdSMichael Walle  reset-names:
599c1082fdSMichael Walle    description: Optional shared switch reset.
609c1082fdSMichael Walle    items:
619c1082fdSMichael Walle      - const: switch
629c1082fdSMichael Walle
6361b23e48SMichael WallepatternProperties:
6461b23e48SMichael Walle  '-pins$':
6561b23e48SMichael Walle    type: object
6661b23e48SMichael Walle    allOf:
6749cd1dd1SRob Herring      - $ref: pinmux-node.yaml
6849cd1dd1SRob Herring      - $ref: pincfg-node.yaml
6961b23e48SMichael Walle
7061b23e48SMichael Walle    properties:
7161b23e48SMichael Walle      function: true
7261b23e48SMichael Walle      pins: true
7361b23e48SMichael Walle      output-high: true
7461b23e48SMichael Walle      output-low: true
7561b23e48SMichael Walle      drive-strength: true
7661b23e48SMichael Walle
7761b23e48SMichael Walle    required:
7861b23e48SMichael Walle      - function
7961b23e48SMichael Walle      - pins
8061b23e48SMichael Walle
8161b23e48SMichael Walle    additionalProperties: false
8261b23e48SMichael Walle
8361b23e48SMichael Wallerequired:
8461b23e48SMichael Walle  - compatible
8561b23e48SMichael Walle  - reg
8661b23e48SMichael Walle  - gpio-controller
8761b23e48SMichael Walle  - '#gpio-cells'
8861b23e48SMichael Walle  - gpio-ranges
8961b23e48SMichael Walle
9061b23e48SMichael WalleallOf:
9149cd1dd1SRob Herring  - $ref: pinctrl.yaml#
9261b23e48SMichael Walle  - if:
9361b23e48SMichael Walle      properties:
9461b23e48SMichael Walle        compatible:
9561b23e48SMichael Walle          contains:
9661b23e48SMichael Walle            enum:
9761b23e48SMichael Walle              - microchip,lan966x-pinctrl
98*01be3ac0SDaniel Machon              - microchip,lan9691-pinctrl
9961b23e48SMichael Walle              - microchip,sparx5-pinctrl
10061b23e48SMichael Walle    then:
10161b23e48SMichael Walle      properties:
10261b23e48SMichael Walle        reg:
10361b23e48SMichael Walle          minItems: 2
10461b23e48SMichael Walle
10561b23e48SMichael WalleadditionalProperties: false
10661b23e48SMichael Walle
10761b23e48SMichael Walleexamples:
10861b23e48SMichael Walle  - |
10961b23e48SMichael Walle    gpio: pinctrl@71070034 {
11061b23e48SMichael Walle        compatible = "mscc,ocelot-pinctrl";
11161b23e48SMichael Walle        reg = <0x71070034 0x28>;
11261b23e48SMichael Walle        gpio-controller;
11361b23e48SMichael Walle        #gpio-cells = <2>;
11461b23e48SMichael Walle        gpio-ranges = <&gpio 0 0 22>;
11561b23e48SMichael Walle
11661b23e48SMichael Walle        uart_pins: uart-pins {
11761b23e48SMichael Walle            pins = "GPIO_6", "GPIO_7";
11861b23e48SMichael Walle            function = "uart";
11961b23e48SMichael Walle        };
12061b23e48SMichael Walle
12161b23e48SMichael Walle        uart2_pins: uart2-pins {
12261b23e48SMichael Walle            pins = "GPIO_12", "GPIO_13";
12361b23e48SMichael Walle            function = "uart2";
12461b23e48SMichael Walle        };
12561b23e48SMichael Walle    };
12661b23e48SMichael Walle
12761b23e48SMichael Walle...
128