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