xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/mediatek,mtk-cirq.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
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
7title: MediaTek System Interrupt Controller
8
9maintainers:
10  - Youlin Pei <youlin.pei@mediatek.com>
11
12description:
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
22properties:
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
48required:
49  - compatible
50  - reg
51  - '#interrupt-cells'
52  - interrupt-controller
53  - mediatek,ext-irq-range
54
55additionalProperties: false
56
57examples:
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    };
69