xref: /linux/Documentation/devicetree/bindings/interrupt-controller/amlogic,meson-gpio-intc.yaml (revision 6b0139b372d40bd5dafc140b6618b57d13211168)
1*6b0139b3SHeiner Kallweit# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*6b0139b3SHeiner Kallweit%YAML 1.2
3*6b0139b3SHeiner Kallweit---
4*6b0139b3SHeiner Kallweit$id: http://devicetree.org/schemas/interrupt-controller/amlogic,meson-gpio-intc.yaml#
5*6b0139b3SHeiner Kallweit$schema: http://devicetree.org/meta-schemas/core.yaml#
6*6b0139b3SHeiner Kallweit
7*6b0139b3SHeiner Kallweittitle: Amlogic Meson GPIO interrupt controller
8*6b0139b3SHeiner Kallweit
9*6b0139b3SHeiner Kallweitmaintainers:
10*6b0139b3SHeiner Kallweit  - Heiner Kallweit <hkallweit1@gmail.com>
11*6b0139b3SHeiner Kallweit
12*6b0139b3SHeiner Kallweitdescription: |
13*6b0139b3SHeiner Kallweit  Meson SoCs contains an interrupt controller which is able to watch the SoC
14*6b0139b3SHeiner Kallweit  pads and generate an interrupt on edge or level. The controller is essentially
15*6b0139b3SHeiner Kallweit  a 256 pads to 8 or 12 GIC interrupt multiplexer, with a filter block to select
16*6b0139b3SHeiner Kallweit  edge or level and polarity. It does not expose all 256 mux inputs because the
17*6b0139b3SHeiner Kallweit  documentation shows that the upper part is not mapped to any pad. The actual
18*6b0139b3SHeiner Kallweit  number of interrupts exposed depends on the SoC.
19*6b0139b3SHeiner Kallweit
20*6b0139b3SHeiner KallweitallOf:
21*6b0139b3SHeiner Kallweit  - $ref: /schemas/interrupt-controller.yaml#
22*6b0139b3SHeiner Kallweit
23*6b0139b3SHeiner Kallweitproperties:
24*6b0139b3SHeiner Kallweit  compatible:
25*6b0139b3SHeiner Kallweit    oneOf:
26*6b0139b3SHeiner Kallweit      - const: amlogic,meson-gpio-intc
27*6b0139b3SHeiner Kallweit      - items:
28*6b0139b3SHeiner Kallweit          - enum:
29*6b0139b3SHeiner Kallweit              - amlogic,meson8-gpio-intc
30*6b0139b3SHeiner Kallweit              - amlogic,meson8b-gpio-intc
31*6b0139b3SHeiner Kallweit              - amlogic,meson-gxbb-gpio-intc
32*6b0139b3SHeiner Kallweit              - amlogic,meson-gxl-gpio-intc
33*6b0139b3SHeiner Kallweit              - amlogic,meson-axg-gpio-intc
34*6b0139b3SHeiner Kallweit              - amlogic,meson-g12a-gpio-intc
35*6b0139b3SHeiner Kallweit              - amlogic,meson-sm1-gpio-intc
36*6b0139b3SHeiner Kallweit              - amlogic,meson-a1-gpio-intc
37*6b0139b3SHeiner Kallweit              - amlogic,meson-s4-gpio-intc
38*6b0139b3SHeiner Kallweit          - const: amlogic,meson-gpio-intc
39*6b0139b3SHeiner Kallweit
40*6b0139b3SHeiner Kallweit  reg:
41*6b0139b3SHeiner Kallweit    maxItems: 1
42*6b0139b3SHeiner Kallweit
43*6b0139b3SHeiner Kallweit  interrupt-controller: true
44*6b0139b3SHeiner Kallweit
45*6b0139b3SHeiner Kallweit  "#interrupt-cells":
46*6b0139b3SHeiner Kallweit    const: 2
47*6b0139b3SHeiner Kallweit
48*6b0139b3SHeiner Kallweit  amlogic,channel-interrupts:
49*6b0139b3SHeiner Kallweit    description: Array with the upstream hwirq numbers
50*6b0139b3SHeiner Kallweit    minItems: 8
51*6b0139b3SHeiner Kallweit    maxItems: 12
52*6b0139b3SHeiner Kallweit    $ref: /schemas/types.yaml#/definitions/uint32-array
53*6b0139b3SHeiner Kallweit
54*6b0139b3SHeiner Kallweitrequired:
55*6b0139b3SHeiner Kallweit  - compatible
56*6b0139b3SHeiner Kallweit  - reg
57*6b0139b3SHeiner Kallweit  - interrupt-controller
58*6b0139b3SHeiner Kallweit  - "#interrupt-cells"
59*6b0139b3SHeiner Kallweit  - amlogic,channel-interrupts
60*6b0139b3SHeiner Kallweit
61*6b0139b3SHeiner KallweitadditionalProperties: false
62*6b0139b3SHeiner Kallweit
63*6b0139b3SHeiner Kallweitexamples:
64*6b0139b3SHeiner Kallweit  - |
65*6b0139b3SHeiner Kallweit    interrupt-controller@9880 {
66*6b0139b3SHeiner Kallweit      compatible = "amlogic,meson-gxbb-gpio-intc",
67*6b0139b3SHeiner Kallweit                   "amlogic,meson-gpio-intc";
68*6b0139b3SHeiner Kallweit      reg = <0x9880 0x10>;
69*6b0139b3SHeiner Kallweit      interrupt-controller;
70*6b0139b3SHeiner Kallweit      #interrupt-cells = <2>;
71*6b0139b3SHeiner Kallweit      amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
72*6b0139b3SHeiner Kallweit    };
73