162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/gpio/gpio-ep9301.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: EP93xx GPIO controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Linus Walleij <linus.walleij@linaro.org>
1162306a36Sopenharmony_ci  - Bartosz Golaszewski <brgl@bgdev.pl>
1262306a36Sopenharmony_ci  - Nikita Shubin <nikita.shubin@maquefel.me>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciproperties:
1562306a36Sopenharmony_ci  compatible:
1662306a36Sopenharmony_ci    oneOf:
1762306a36Sopenharmony_ci      - const: cirrus,ep9301-gpio
1862306a36Sopenharmony_ci      - items:
1962306a36Sopenharmony_ci          - enum:
2062306a36Sopenharmony_ci              - cirrus,ep9302-gpio
2162306a36Sopenharmony_ci              - cirrus,ep9307-gpio
2262306a36Sopenharmony_ci              - cirrus,ep9312-gpio
2362306a36Sopenharmony_ci              - cirrus,ep9315-gpio
2462306a36Sopenharmony_ci          - const: cirrus,ep9301-gpio
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  reg:
2762306a36Sopenharmony_ci    minItems: 2
2862306a36Sopenharmony_ci    items:
2962306a36Sopenharmony_ci      - description: data register
3062306a36Sopenharmony_ci      - description: direction register
3162306a36Sopenharmony_ci      - description: interrupt registers base
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  reg-names:
3462306a36Sopenharmony_ci    minItems: 2
3562306a36Sopenharmony_ci    items:
3662306a36Sopenharmony_ci      - const: data
3762306a36Sopenharmony_ci      - const: dir
3862306a36Sopenharmony_ci      - const: intr
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  gpio-controller: true
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci  gpio-ranges: true
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  "#gpio-cells":
4562306a36Sopenharmony_ci    const: 2
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  interrupt-controller: true
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  "#interrupt-cells":
5062306a36Sopenharmony_ci    const: 2
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  interrupts:
5362306a36Sopenharmony_ci    oneOf:
5462306a36Sopenharmony_ci      - maxItems: 1
5562306a36Sopenharmony_ci      - description: port F has dedicated irq line for each gpio line
5662306a36Sopenharmony_ci        maxItems: 8
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_cirequired:
5962306a36Sopenharmony_ci  - compatible
6062306a36Sopenharmony_ci  - reg
6162306a36Sopenharmony_ci  - gpio-controller
6262306a36Sopenharmony_ci  - "#gpio-cells"
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ciadditionalProperties: false
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciexamples:
6762306a36Sopenharmony_ci  - |
6862306a36Sopenharmony_ci    gpio@80840000 {
6962306a36Sopenharmony_ci      compatible = "cirrus,ep9301-gpio";
7062306a36Sopenharmony_ci      reg = <0x80840000 0x04>,
7162306a36Sopenharmony_ci            <0x80840010 0x04>,
7262306a36Sopenharmony_ci            <0x80840090 0x1c>;
7362306a36Sopenharmony_ci      reg-names = "data", "dir", "intr";
7462306a36Sopenharmony_ci      gpio-controller;
7562306a36Sopenharmony_ci      #gpio-cells = <2>;
7662306a36Sopenharmony_ci        interrupt-controller;
7762306a36Sopenharmony_ci        interrupt-parent = <&vic1>;
7862306a36Sopenharmony_ci        interrupts = <27>;
7962306a36Sopenharmony_ci    };
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci    gpio@80840004 {
8262306a36Sopenharmony_ci      compatible = "cirrus,ep9301-gpio";
8362306a36Sopenharmony_ci      reg = <0x80840004 0x04>,
8462306a36Sopenharmony_ci            <0x80840014 0x04>,
8562306a36Sopenharmony_ci            <0x808400ac 0x1c>;
8662306a36Sopenharmony_ci      reg-names = "data", "dir", "intr";
8762306a36Sopenharmony_ci      gpio-controller;
8862306a36Sopenharmony_ci      #gpio-cells = <2>;
8962306a36Sopenharmony_ci      interrupt-controller;
9062306a36Sopenharmony_ci      interrupt-parent = <&vic1>;
9162306a36Sopenharmony_ci      interrupts = <27>;
9262306a36Sopenharmony_ci    };
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci    gpio@80840008 {
9562306a36Sopenharmony_ci      compatible = "cirrus,ep9301-gpio";
9662306a36Sopenharmony_ci      reg = <0x80840008 0x04>,
9762306a36Sopenharmony_ci            <0x80840018 0x04>;
9862306a36Sopenharmony_ci      reg-names = "data", "dir";
9962306a36Sopenharmony_ci      gpio-controller;
10062306a36Sopenharmony_ci      #gpio-cells = <2>;
10162306a36Sopenharmony_ci    };
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci    gpio@8084000c {
10462306a36Sopenharmony_ci      compatible = "cirrus,ep9301-gpio";
10562306a36Sopenharmony_ci      reg = <0x8084000c 0x04>,
10662306a36Sopenharmony_ci            <0x8084001c 0x04>;
10762306a36Sopenharmony_ci      reg-names = "data", "dir";
10862306a36Sopenharmony_ci      gpio-controller;
10962306a36Sopenharmony_ci      #gpio-cells = <2>;
11062306a36Sopenharmony_ci    };
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci    gpio@80840020 {
11362306a36Sopenharmony_ci      compatible = "cirrus,ep9301-gpio";
11462306a36Sopenharmony_ci      reg = <0x80840020 0x04>,
11562306a36Sopenharmony_ci            <0x80840024 0x04>;
11662306a36Sopenharmony_ci      reg-names = "data", "dir";
11762306a36Sopenharmony_ci      gpio-controller;
11862306a36Sopenharmony_ci      #gpio-cells = <2>;
11962306a36Sopenharmony_ci    };
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci    gpio@80840030 {
12262306a36Sopenharmony_ci      compatible = "cirrus,ep9301-gpio";
12362306a36Sopenharmony_ci      reg = <0x80840030 0x04>,
12462306a36Sopenharmony_ci            <0x80840034 0x04>,
12562306a36Sopenharmony_ci            <0x8084004c 0x1c>;
12662306a36Sopenharmony_ci      reg-names = "data", "dir", "intr";
12762306a36Sopenharmony_ci      gpio-controller;
12862306a36Sopenharmony_ci      #gpio-cells = <2>;
12962306a36Sopenharmony_ci      interrupt-controller;
13062306a36Sopenharmony_ci      interrupts-extended = <&vic0 19>, <&vic0 20>,
13162306a36Sopenharmony_ci                            <&vic0 21>, <&vic0 22>,
13262306a36Sopenharmony_ci                            <&vic1 15>, <&vic1 16>,
13362306a36Sopenharmony_ci                            <&vic1 17>, <&vic1 18>;
13462306a36Sopenharmony_ci    };
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci    gpio@80840038 {
13762306a36Sopenharmony_ci      compatible = "cirrus,ep9301-gpio";
13862306a36Sopenharmony_ci      reg = <0x80840038 0x04>,
13962306a36Sopenharmony_ci            <0x8084003c 0x04>;
14062306a36Sopenharmony_ci      reg-names = "data", "dir";
14162306a36Sopenharmony_ci      gpio-controller;
14262306a36Sopenharmony_ci      #gpio-cells = <2>;
14362306a36Sopenharmony_ci    };
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci    gpio@80840040 {
14662306a36Sopenharmony_ci      compatible = "cirrus,ep9301-gpio";
14762306a36Sopenharmony_ci      reg = <0x80840040 0x04>,
14862306a36Sopenharmony_ci            <0x80840044 0x04>;
14962306a36Sopenharmony_ci      reg-names = "data", "dir";
15062306a36Sopenharmony_ci      gpio-controller;
15162306a36Sopenharmony_ci      #gpio-cells = <2>;
15262306a36Sopenharmony_ci    };
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci...
155