xref: /linux/Documentation/devicetree/bindings/interrupt-controller/amlogic,meson-gpio-intc.yaml (revision bb0301f856bfc0ea8192b8d2bd5a79bdc6d3d3f1)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/interrupt-controller/amlogic,meson-gpio-intc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Amlogic Meson GPIO interrupt controller
8
9maintainers:
10  - Heiner Kallweit <hkallweit1@gmail.com>
11
12description: |
13  Meson SoCs contains an interrupt controller which is able to watch the SoC
14  pads and generate an interrupt on edge or level. The controller is essentially
15  a 256 pads to 8 or 12 GIC interrupt multiplexer, with a filter block to select
16  edge or level and polarity. It does not expose all 256 mux inputs because the
17  documentation shows that the upper part is not mapped to any pad. The actual
18  number of interrupts exposed depends on the SoC.
19
20allOf:
21  - $ref: /schemas/interrupt-controller.yaml#
22
23properties:
24  compatible:
25    oneOf:
26      - const: amlogic,meson-gpio-intc
27      - items:
28          - enum:
29              - amlogic,meson8-gpio-intc
30              - amlogic,meson8b-gpio-intc
31              - amlogic,meson-gxbb-gpio-intc
32              - amlogic,meson-gxl-gpio-intc
33              - amlogic,meson-axg-gpio-intc
34              - amlogic,meson-g12a-gpio-intc
35              - amlogic,meson-sm1-gpio-intc
36              - amlogic,meson-a1-gpio-intc
37              - amlogic,meson-s4-gpio-intc
38              - amlogic,a4-gpio-intc
39              - amlogic,a4-gpio-ao-intc
40              - amlogic,a5-gpio-intc
41              - amlogic,a9-gpio-intc
42              - amlogic,a9-gpio-ao-intc
43              - amlogic,c3-gpio-intc
44              - amlogic,s6-gpio-intc
45              - amlogic,s7-gpio-intc
46              - amlogic,s7d-gpio-intc
47              - amlogic,t7-gpio-intc
48          - const: amlogic,meson-gpio-intc
49
50  reg:
51    maxItems: 1
52
53  interrupt-controller: true
54
55  "#interrupt-cells":
56    const: 2
57
58  amlogic,channel-interrupts:
59    description: Array with the upstream hwirq numbers
60    minItems: 2
61    maxItems: 20
62    $ref: /schemas/types.yaml#/definitions/uint32-array
63
64required:
65  - compatible
66  - reg
67  - interrupt-controller
68  - "#interrupt-cells"
69  - amlogic,channel-interrupts
70
71if:
72  properties:
73    compatible:
74      contains:
75        const: amlogic,a4-gpio-ao-intc
76then:
77  properties:
78    amlogic,channel-interrupts:
79      maxItems: 2
80else:
81  if:
82    properties:
83      compatible:
84        contains:
85          const: amlogic,a9-gpio-ao-intc
86  then:
87    properties:
88      amlogic,channel-interrupts:
89        minItems: 20
90  else:
91    properties:
92      amlogic,channel-interrupts:
93        minItems: 8
94        maxItems: 12
95
96additionalProperties: false
97
98examples:
99  - |
100    interrupt-controller@9880 {
101      compatible = "amlogic,meson-gxbb-gpio-intc",
102                   "amlogic,meson-gpio-intc";
103      reg = <0x9880 0x10>;
104      interrupt-controller;
105      #interrupt-cells = <2>;
106      amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
107    };
108