summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/interrupt-controller/mediatek,cirq.txt
blob: a7efdbc3de5be3f7d0be225bd6916be2ac69a120 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
* Mediatek 27xx cirq

In Mediatek SOCs, the CIRQ is a low power interrupt controller designed to
work outside MCUSYS which comprises with Cortex-Ax cores,CCI and GIC.
The external interrupts (outside MCUSYS) will feed through CIRQ and connect
to GIC in MCUSYS. When CIRQ is enabled, it will record the edge-sensitive
interrupts and generate a pulse signal to parent interrupt controller when
flush command is executed. With CIRQ, MCUSYS can be completely turned off
to improve the system power consumption without losing interrupts.

Required properties:
- compatible: should be one of
  - "mediatek,mt2701-cirq" for mt2701 CIRQ
  - "mediatek,mt8135-cirq" for mt8135 CIRQ
  - "mediatek,mt8173-cirq" for mt8173 CIRQ
  and "mediatek,cirq" as a fallback.
- interrupt-controller : Identifies the node as an interrupt controller.
- #interrupt-cells : Use the same format as specified by GIC in arm,gic.txt.
- interrupt-parent: phandle of irq parent for cirq. The parent must
  use the same interrupt-cells format as GIC.
- reg: Physical base address of the cirq registers and length of memory
  mapped region.
- mediatek,ext-irq-range: Identifies external irq number range in different
  SOCs.

Example:
	cirq: interrupt-controller@10204000 {
		compatible = "mediatek,mt2701-cirq",
			     "mediatek,mtk-cirq";
		interrupt-controller;
		#interrupt-cells = <3>;
		interrupt-parent = <&sysirq>;
		reg = <0 0x10204000 0 0x400>;
		mediatek,ext-irq-start = <32 200>;
	};