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