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