1*8bab661aSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*8bab661aSEmmanuel Vadot%YAML 1.2 3*8bab661aSEmmanuel Vadot--- 4*8bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/mediatek,mtk-cirq.yaml# 5*8bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8bab661aSEmmanuel Vadot 7*8bab661aSEmmanuel Vadottitle: MediaTek System Interrupt Controller 8*8bab661aSEmmanuel Vadot 9*8bab661aSEmmanuel Vadotmaintainers: 10*8bab661aSEmmanuel Vadot - Youlin Pei <youlin.pei@mediatek.com> 11*8bab661aSEmmanuel Vadot 12*8bab661aSEmmanuel Vadotdescription: 13*8bab661aSEmmanuel Vadot In MediaTek SoCs, the CIRQ is a low power interrupt controller designed to 14*8bab661aSEmmanuel Vadot work outside of MCUSYS which comprises with Cortex-Ax cores, CCI and GIC. 15*8bab661aSEmmanuel Vadot The external interrupts (outside MCUSYS) will feed through CIRQ and connect 16*8bab661aSEmmanuel Vadot to GIC in MCUSYS. When CIRQ is enabled, it will record the edge-sensitive 17*8bab661aSEmmanuel Vadot interrupts and generate a pulse signal to parent interrupt controller when 18*8bab661aSEmmanuel Vadot flush command is executed. With CIRQ, MCUSYS can be completely turned off 19*8bab661aSEmmanuel Vadot to improve the system power consumption without losing interrupts. 20*8bab661aSEmmanuel Vadot 21*8bab661aSEmmanuel Vadot 22*8bab661aSEmmanuel Vadotproperties: 23*8bab661aSEmmanuel Vadot compatible: 24*8bab661aSEmmanuel Vadot items: 25*8bab661aSEmmanuel Vadot - enum: 26*8bab661aSEmmanuel Vadot - mediatek,mt2701-cirq 27*8bab661aSEmmanuel Vadot - mediatek,mt8135-cirq 28*8bab661aSEmmanuel Vadot - mediatek,mt8173-cirq 29*8bab661aSEmmanuel Vadot - mediatek,mt8192-cirq 30*8bab661aSEmmanuel Vadot - const: mediatek,mtk-cirq 31*8bab661aSEmmanuel Vadot 32*8bab661aSEmmanuel Vadot reg: 33*8bab661aSEmmanuel Vadot maxItems: 1 34*8bab661aSEmmanuel Vadot 35*8bab661aSEmmanuel Vadot '#interrupt-cells': 36*8bab661aSEmmanuel Vadot const: 3 37*8bab661aSEmmanuel Vadot 38*8bab661aSEmmanuel Vadot interrupt-controller: true 39*8bab661aSEmmanuel Vadot 40*8bab661aSEmmanuel Vadot mediatek,ext-irq-range: 41*8bab661aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 42*8bab661aSEmmanuel Vadot items: 43*8bab661aSEmmanuel Vadot - description: First CIRQ interrupt 44*8bab661aSEmmanuel Vadot - description: Last CIRQ interrupt 45*8bab661aSEmmanuel Vadot description: 46*8bab661aSEmmanuel Vadot Identifies the range of external interrupts in different SoCs 47*8bab661aSEmmanuel Vadot 48*8bab661aSEmmanuel Vadotrequired: 49*8bab661aSEmmanuel Vadot - compatible 50*8bab661aSEmmanuel Vadot - reg 51*8bab661aSEmmanuel Vadot - '#interrupt-cells' 52*8bab661aSEmmanuel Vadot - interrupt-controller 53*8bab661aSEmmanuel Vadot - mediatek,ext-irq-range 54*8bab661aSEmmanuel Vadot 55*8bab661aSEmmanuel VadotadditionalProperties: false 56*8bab661aSEmmanuel Vadot 57*8bab661aSEmmanuel Vadotexamples: 58*8bab661aSEmmanuel Vadot - | 59*8bab661aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 60*8bab661aSEmmanuel Vadot 61*8bab661aSEmmanuel Vadot cirq: interrupt-controller@10204000 { 62*8bab661aSEmmanuel Vadot compatible = "mediatek,mt2701-cirq", "mediatek,mtk-cirq"; 63*8bab661aSEmmanuel Vadot reg = <0x10204000 0x400>; 64*8bab661aSEmmanuel Vadot #interrupt-cells = <3>; 65*8bab661aSEmmanuel Vadot interrupt-controller; 66*8bab661aSEmmanuel Vadot interrupt-parent = <&sysirq>; 67*8bab661aSEmmanuel Vadot mediatek,ext-irq-range = <32 200>; 68*8bab661aSEmmanuel Vadot }; 69