xref: /linux/Documentation/devicetree/bindings/gpio/gpio-ep9301.yaml (revision cb787f4ac0c2e439ea8d7e6387b925f74576bdf8)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/gpio/gpio-ep9301.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: EP93xx GPIO controller
8
9maintainers:
10  - Linus Walleij <linus.walleij@linaro.org>
11  - Bartosz Golaszewski <brgl@bgdev.pl>
12  - Nikita Shubin <nikita.shubin@maquefel.me>
13
14properties:
15  compatible:
16    oneOf:
17      - const: cirrus,ep9301-gpio
18      - items:
19          - enum:
20              - cirrus,ep9302-gpio
21              - cirrus,ep9307-gpio
22              - cirrus,ep9312-gpio
23              - cirrus,ep9315-gpio
24          - const: cirrus,ep9301-gpio
25
26  reg:
27    minItems: 2
28    items:
29      - description: data register
30      - description: direction register
31      - description: interrupt registers base
32
33  reg-names:
34    minItems: 2
35    items:
36      - const: data
37      - const: dir
38      - const: intr
39
40  gpio-controller: true
41
42  gpio-ranges: true
43
44  "#gpio-cells":
45    const: 2
46
47  interrupt-controller: true
48
49  "#interrupt-cells":
50    const: 2
51
52  interrupts:
53    oneOf:
54      - maxItems: 1
55      - description: port F has dedicated irq line for each gpio line
56        maxItems: 8
57
58required:
59  - compatible
60  - reg
61  - gpio-controller
62  - "#gpio-cells"
63
64additionalProperties: false
65
66examples:
67  - |
68    gpio@80840000 {
69      compatible = "cirrus,ep9301-gpio";
70      reg = <0x80840000 0x04>,
71            <0x80840010 0x04>,
72            <0x80840090 0x1c>;
73      reg-names = "data", "dir", "intr";
74      gpio-controller;
75      #gpio-cells = <2>;
76      interrupt-controller;
77      #interrupt-cells = <2>;
78      interrupt-parent = <&vic1>;
79      interrupts = <27>;
80    };
81
82    gpio@80840004 {
83      compatible = "cirrus,ep9301-gpio";
84      reg = <0x80840004 0x04>,
85            <0x80840014 0x04>,
86            <0x808400ac 0x1c>;
87      reg-names = "data", "dir", "intr";
88      gpio-controller;
89      #gpio-cells = <2>;
90      interrupt-controller;
91      #interrupt-cells = <2>;
92      interrupt-parent = <&vic1>;
93      interrupts = <27>;
94    };
95
96    gpio@80840008 {
97      compatible = "cirrus,ep9301-gpio";
98      reg = <0x80840008 0x04>,
99            <0x80840018 0x04>;
100      reg-names = "data", "dir";
101      gpio-controller;
102      #gpio-cells = <2>;
103    };
104
105    gpio@8084000c {
106      compatible = "cirrus,ep9301-gpio";
107      reg = <0x8084000c 0x04>,
108            <0x8084001c 0x04>;
109      reg-names = "data", "dir";
110      gpio-controller;
111      #gpio-cells = <2>;
112    };
113
114    gpio@80840020 {
115      compatible = "cirrus,ep9301-gpio";
116      reg = <0x80840020 0x04>,
117            <0x80840024 0x04>;
118      reg-names = "data", "dir";
119      gpio-controller;
120      #gpio-cells = <2>;
121    };
122
123    gpio@80840030 {
124      compatible = "cirrus,ep9301-gpio";
125      reg = <0x80840030 0x04>,
126            <0x80840034 0x04>,
127            <0x8084004c 0x1c>;
128      reg-names = "data", "dir", "intr";
129      gpio-controller;
130      #gpio-cells = <2>;
131      interrupt-controller;
132      #interrupt-cells = <2>;
133      interrupts-extended = <&vic0 19>, <&vic0 20>,
134                            <&vic0 21>, <&vic0 22>,
135                            <&vic1 15>, <&vic1 16>,
136                            <&vic1 17>, <&vic1 18>;
137    };
138
139    gpio@80840038 {
140      compatible = "cirrus,ep9301-gpio";
141      reg = <0x80840038 0x04>,
142            <0x8084003c 0x04>;
143      reg-names = "data", "dir";
144      gpio-controller;
145      #gpio-cells = <2>;
146    };
147
148    gpio@80840040 {
149      compatible = "cirrus,ep9301-gpio";
150      reg = <0x80840040 0x04>,
151            <0x80840044 0x04>;
152      reg-names = "data", "dir";
153      gpio-controller;
154      #gpio-cells = <2>;
155    };
156
157...
158