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