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
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/amlogic,meson-gpio-intc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic Meson GPIO interrupt controller
maintainers:
- Heiner Kallweit <hkallweit1@gmail.com>
description: |
Meson SoCs contains an interrupt controller which is able to watch the SoC
pads and generate an interrupt on edge or level. The controller is essentially
a 256 pads to 8 or 12 GIC interrupt multiplexer, with a filter block to select
edge or level and polarity. It does not expose all 256 mux inputs because the
documentation shows that the upper part is not mapped to any pad. The actual
number of interrupts exposed depends on the SoC.
allOf:
- $ref: /schemas/interrupt-controller.yaml#
properties:
compatible:
oneOf:
- const: amlogic,meson-gpio-intc
- items:
- enum:
- amlogic,meson8-gpio-intc
- amlogic,meson8b-gpio-intc
- amlogic,meson-gxbb-gpio-intc
- amlogic,meson-gxl-gpio-intc
- amlogic,meson-axg-gpio-intc
- amlogic,meson-g12a-gpio-intc
- amlogic,meson-sm1-gpio-intc
- amlogic,meson-a1-gpio-intc
- amlogic,meson-s4-gpio-intc
- const: amlogic,meson-gpio-intc
reg:
maxItems: 1
interrupt-controller: true
"#interrupt-cells":
const: 2
amlogic,channel-interrupts:
description: Array with the upstream hwirq numbers
minItems: 8
maxItems: 12
$ref: /schemas/types.yaml#/definitions/uint32-array
required:
- compatible
- reg
- interrupt-controller
- "#interrupt-cells"
- amlogic,channel-interrupts
additionalProperties: false
examples:
- |
interrupt-controller@9880 {
compatible = "amlogic,meson-gxbb-gpio-intc",
"amlogic,meson-gpio-intc";
reg = <0x9880 0x10>;
interrupt-controller;
#interrupt-cells = <2>;
amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
};
|