69 lines
1.9 KiB
YAML
69 lines
1.9 KiB
YAML
|
# 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>;
|
||
|
};
|