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