Documentation / devicetree / bindings / gpio / gpio-ep9301.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpio/gpio-ep9301.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: EP93xx GPIO controller

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>
  - Bartosz Golaszewski <brgl@bgdev.pl>
  - Nikita Shubin <nikita.shubin@maquefel.me>

properties:
  compatible:
    oneOf:
      - const: cirrus,ep9301-gpio
      - items:
          - enum:
              - cirrus,ep9302-gpio
              - cirrus,ep9307-gpio
              - cirrus,ep9312-gpio
              - cirrus,ep9315-gpio
          - const: cirrus,ep9301-gpio

  reg:
    minItems: 2
    items:
      - description: data register
      - description: direction register
      - description: interrupt registers base

  reg-names:
    minItems: 2
    items:
      - const: data
      - const: dir
      - const: intr

  gpio-controller: true

  gpio-ranges: true
 
  "#gpio-cells":
    const: 2

  interrupt-controller: true
 
  "#interrupt-cells":
    const: 2

  interrupts:
    oneOf:
      - maxItems: 1
      - description: port F has dedicated irq line for each gpio line
        maxItems: 8

required:
  - compatible
  - reg
  - gpio-controller
  - "#gpio-cells"

additionalProperties: false

examples:
  - |
    gpio@80840000 {
      compatible = "cirrus,ep9301-gpio";
      reg = <0x80840000 0x04>,
            <0x80840010 0x04>,
            <0x80840090 0x1c>;
      reg-names = "data", "dir", "intr";
      gpio-controller;
      #gpio-cells = <2>;
        interrupt-controller;
        interrupt-parent = <&vic1>;
        interrupts = <27>;
    };
 
    gpio@80840004 {
      compatible = "cirrus,ep9301-gpio";
      reg = <0x80840004 0x04>,
            <0x80840014 0x04>,
            <0x808400ac 0x1c>;
      reg-names = "data", "dir", "intr";
      gpio-controller;
      #gpio-cells = <2>;
      interrupt-controller;
      interrupt-parent = <&vic1>;
      interrupts = <27>;
    };
 
    gpio@80840008 {
      compatible = "cirrus,ep9301-gpio";
      reg = <0x80840008 0x04>,
            <0x80840018 0x04>;
      reg-names = "data", "dir";
      gpio-controller;
      #gpio-cells = <2>;
    };
 
    gpio@8084000c {
      compatible = "cirrus,ep9301-gpio";
      reg = <0x8084000c 0x04>,
            <0x8084001c 0x04>;
      reg-names = "data", "dir";
      gpio-controller;
      #gpio-cells = <2>;
    };
 
    gpio@80840020 {
      compatible = "cirrus,ep9301-gpio";
      reg = <0x80840020 0x04>,
            <0x80840024 0x04>;
      reg-names = "data", "dir";
      gpio-controller;
      #gpio-cells = <2>;
    };
 
    gpio@80840030 {
      compatible = "cirrus,ep9301-gpio";
      reg = <0x80840030 0x04>,
            <0x80840034 0x04>,
            <0x8084004c 0x1c>;
      reg-names = "data", "dir", "intr";
      gpio-controller;
      #gpio-cells = <2>;
      interrupt-controller;
      interrupts-extended = <&vic0 19>, <&vic0 20>,
                            <&vic0 21>, <&vic0 22>,
                            <&vic1 15>, <&vic1 16>,
                            <&vic1 17>, <&vic1 18>;
    };
 
    gpio@80840038 {
      compatible = "cirrus,ep9301-gpio";
      reg = <0x80840038 0x04>,
            <0x8084003c 0x04>;
      reg-names = "data", "dir";
      gpio-controller;
      #gpio-cells = <2>;
    };
 
    gpio@80840040 {
      compatible = "cirrus,ep9301-gpio";
      reg = <0x80840040 0x04>,
            <0x80840044 0x04>;
      reg-names = "data", "dir";
      gpio-controller;
      #gpio-cells = <2>;
    };

...