1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/gpio/realtek,otto-gpio.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Realtek Otto GPIO controller
8
9maintainers:
10  - Sander Vanheule <sander@svanheule.net>
11  - Bert Vermeulen <bert@biot.com>
12
13description: |
14  Realtek's GPIO controller on their MIPS switch SoCs (Otto platform) consists
15  of two banks of 32 GPIOs. These GPIOs can generate edge-triggered interrupts.
16  Each bank's interrupts are cascased into one interrupt line on the parent
17  interrupt controller, if provided.
18  This binding allows defining a single bank in the devicetree. The interrupt
19  controller is not supported on the fallback compatible name, which only
20  allows for GPIO port use.
21
22properties:
23  $nodename:
24    pattern: "^gpio@[0-9a-f]+$"
25
26  compatible:
27    items:
28      - enum:
29          - realtek,rtl8380-gpio
30          - realtek,rtl8390-gpio
31      - const: realtek,otto-gpio
32
33  reg:
34    maxItems: 1
35
36  "#gpio-cells":
37    const: 2
38
39  gpio-controller: true
40
41  ngpios:
42    minimum: 1
43    maximum: 32
44
45  interrupt-controller: true
46
47  "#interrupt-cells":
48    const: 2
49
50  interrupts:
51    maxItems: 1
52
53required:
54  - compatible
55  - reg
56  - "#gpio-cells"
57  - gpio-controller
58
59additionalProperties: false
60
61dependencies:
62  interrupt-controller: [ interrupts ]
63
64examples:
65  - |
66      gpio@3500 {
67        compatible = "realtek,rtl8380-gpio", "realtek,otto-gpio";
68        reg = <0x3500 0x1c>;
69        gpio-controller;
70        #gpio-cells = <2>;
71        ngpios = <24>;
72        interrupt-controller;
73        #interrupt-cells = <2>;
74        interrupt-parent = <&rtlintc>;
75        interrupts = <23>;
76      };
77
78...
79