# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/interrupt-controller/mediatek,mtk-cirq.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: MediaTek System Interrupt Controller maintainers: - Youlin Pei <youlin.pei@mediatek.com> description: In MediaTek SoCs, the CIRQ is a low power interrupt controller designed to work outside of 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. properties: compatible: items: - enum: - mediatek,mt2701-cirq - mediatek,mt8135-cirq - mediatek,mt8173-cirq - mediatek,mt8192-cirq - const: mediatek,mtk-cirq reg: maxItems: 1 '#interrupt-cells': const: 3 interrupt-controller: true mediatek,ext-irq-range: $ref: /schemas/types.yaml#/definitions/uint32-array items: - description: First CIRQ interrupt - description: Last CIRQ interrupt description: Identifies the range of external interrupts in different SoCs required: - compatible - reg - '#interrupt-cells' - interrupt-controller - mediatek,ext-irq-range additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/irq.h> cirq: interrupt-controller@10204000 { compatible = "mediatek,mt2701-cirq", "mediatek,mtk-cirq"; reg = <0x10204000 0x400>; #interrupt-cells = <3>; interrupt-controller; interrupt-parent = <&sysirq>; mediatek,ext-irq-range = <32 200>; };