GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / interrupt-controller / mediatek,mtk-cirq.yaml
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/mediatek,mtk-cirq.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: MediaTek System Interrupt Controller
8
9 maintainers:
10   - Youlin Pei <youlin.pei@mediatek.com>
11
12 description:
13   In MediaTek SoCs, the CIRQ is a low power interrupt controller designed to
14   work outside of MCUSYS which comprises with Cortex-Ax cores, CCI and GIC.
15   The external interrupts (outside MCUSYS) will feed through CIRQ and connect
16   to GIC in MCUSYS. When CIRQ is enabled, it will record the edge-sensitive
17   interrupts and generate a pulse signal to parent interrupt controller when
18   flush command is executed. With CIRQ, MCUSYS can be completely turned off
19   to improve the system power consumption without losing interrupts.
20
21
22 properties:
23   compatible:
24     items:
25       - enum:
26           - mediatek,mt2701-cirq
27           - mediatek,mt8135-cirq
28           - mediatek,mt8173-cirq
29           - mediatek,mt8192-cirq
30       - const: mediatek,mtk-cirq
31
32   reg:
33     maxItems: 1
34
35   '#interrupt-cells':
36     const: 3
37
38   interrupt-controller: true
39
40   mediatek,ext-irq-range:
41     $ref: /schemas/types.yaml#/definitions/uint32-array
42     items:
43       - description: First CIRQ interrupt
44       - description: Last CIRQ interrupt
45     description:
46       Identifies the range of external interrupts in different SoCs
47
48 required:
49   - compatible
50   - reg
51   - '#interrupt-cells'
52   - interrupt-controller
53   - mediatek,ext-irq-range
54
55 additionalProperties: false
56
57 examples:
58   - |
59     #include <dt-bindings/interrupt-controller/irq.h>
60
61     cirq: interrupt-controller@10204000 {
62         compatible = "mediatek,mt2701-cirq", "mediatek,mtk-cirq";
63         reg = <0x10204000 0x400>;
64         #interrupt-cells = <3>;
65         interrupt-controller;
66         interrupt-parent = <&sysirq>;
67         mediatek,ext-irq-range = <32 200>;
68     };