Kernel-4.18.0-80.el8_mediatek,cirq

  • 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>;
};