blob: fdcb4d8db8185f5b591202e59d143ffbbb9c4ae5 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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 };