xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/mediatek,cirq.txt (revision a90b9d0159070121c221b966469c3e36d912bf82)
1* Mediatek 27xx cirq
2
3In Mediatek SOCs, the CIRQ is a low power interrupt controller designed to
4work outside MCUSYS which comprises with Cortex-Ax cores,CCI and GIC.
5The external interrupts (outside MCUSYS) will feed through CIRQ and connect
6to GIC in MCUSYS. When CIRQ is enabled, it will record the edge-sensitive
7interrupts and generate a pulse signal to parent interrupt controller when
8flush command is executed. With CIRQ, MCUSYS can be completely turned off
9to improve the system power consumption without losing interrupts.
10
11Required properties:
12- compatible: should be one of
13  - "mediatek,mt2701-cirq" for mt2701 CIRQ
14  - "mediatek,mt8135-cirq" for mt8135 CIRQ
15  - "mediatek,mt8173-cirq" for mt8173 CIRQ
16  and "mediatek,cirq" as a fallback.
17- interrupt-controller : Identifies the node as an interrupt controller.
18- #interrupt-cells : Use the same format as specified by GIC in arm,gic.txt.
19- reg: Physical base address of the cirq registers and length of memory
20  mapped region.
21- mediatek,ext-irq-range: Identifies external irq number range in different
22  SOCs.
23
24Example:
25	cirq: interrupt-controller@10204000 {
26		compatible = "mediatek,mt2701-cirq",
27			     "mediatek,mtk-cirq";
28		interrupt-controller;
29		#interrupt-cells = <3>;
30		interrupt-parent = <&sysirq>;
31		reg = <0 0x10204000 0 0x400>;
32		mediatek,ext-irq-start = <32 200>;
33	};
34