blob: 39fd959c45d20e8a200780d331ab6d337d0edc04 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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 - realtek,rtl9300-gpio
32 - realtek,rtl9310-gpio
33 - const: realtek,otto-gpio
34
35 reg: true
36
37 "#gpio-cells":
38 const: 2
39
40 gpio-controller: true
41
42 ngpios:
43 minimum: 1
44 maximum: 32
45
46 interrupt-controller: true
47
48 "#interrupt-cells":
49 const: 2
50
51 interrupts:
52 maxItems: 1
53
54if:
55 properties:
56 compatible:
57 contains:
58 const: realtek,rtl9300-gpio
59then:
60 properties:
61 reg:
62 items:
63 - description: GPIO and interrupt control
64 - description: interrupt CPU map
65else:
66 properties:
67 reg:
68 items:
69 - description: GPIO and interrupt control
70
71required:
72 - compatible
73 - reg
74 - "#gpio-cells"
75 - gpio-controller
76
77additionalProperties: false
78
79dependencies:
80 interrupt-controller: [ interrupts ]
81
82examples:
83 - |
84 gpio@3500 {
85 compatible = "realtek,rtl8380-gpio", "realtek,otto-gpio";
86 reg = <0x3500 0x1c>;
87 gpio-controller;
88 #gpio-cells = <2>;
89 ngpios = <24>;
90 interrupt-controller;
91 #interrupt-cells = <2>;
92 interrupt-parent = <&rtlintc>;
93 interrupts = <23>;
94 };
95 - |
96 gpio@3300 {
97 compatible = "realtek,rtl9300-gpio", "realtek,otto-gpio";
98 reg = <0x3300 0x1c>, <0x3338 0x8>;
99 gpio-controller;
100 #gpio-cells = <2>;
101 ngpios = <24>;
102 interrupt-controller;
103 #interrupt-cells = <2>;
104 interrupt-parent = <&rtlintc>;
105 interrupts = <13>;
106 };
107
108...