dt-bindings: interrupt-controller: Add Xilinx Versal NET SMMU CSR

Add a device tree binding schema for the Xilinx Versal NET SMMU CSR
(Control and Status Register) interrupt controller.

The SMMU CSR block acts as a vendor-specific interrupt controller
in front of the ARM SMMUv3, providing registers to enable and clear
standard SMMU interrupts such as EVENTQ, CMDQ_SYNC, GERROR and PRIQ.
Interrupts must be acknowledged in this block before being forwarded
to the parent interrupt controller (e.g. GIC).

Co-developed-by: Tushar Nimkar <tushar.nimkar@amd.com>
Signed-off-by: Anirudha Sarangi <anirudha.sarangi@amd.com>
Signed-off-by: Tushar Nimkar <tushar.nimkar@amd.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20260928-smmu-changes-v2-v4-1-3c79a14cd806@amd.com
This commit is contained in:
Anirudha Sarangi 2026-09-28 15:03:03 +05:30 committed by Thomas Gleixner
parent f556f008f7
commit 675b45ab71

View File

@ -0,0 +1,75 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/xlnx,versal-net-smmu-csr.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Xilinx Versal NET SMMU CSR Interrupt Controller
maintainers:
- Anirudha Sarangi <anirudha.sarangi@amd.com>
- Tushar Nimkar <tushar.nimkar@amd.com>
description: |
The Versal NET platform includes a Xilinx-specific SMMU CSR (Control and
Status Register) block that acts as an intermediate interrupt controller
for ARM SMMUv3.
The block provides registers to enable, disable and clear the
standard SMMUv3 interrupt sources (EVENTQ, CMDQ_SYNC, GERROR and PRIQ)
before forwarding them to the parent interrupt controller,
typically a GIC.
The controller receives one parent interrupt and demultiplexes CSR
status bits into the following child interrupt identifiers
0 - EVENTQ
1 - CMDQ_SYNC
2 - GERROR (GLOBAL)
3 - PRIQ
allOf:
- $ref: /schemas/interrupt-controller.yaml#
properties:
compatible:
const: xlnx,versal-net-smmu-csr
reg:
maxItems: 1
interrupt-controller: true
"#interrupt-cells":
const: 1
description: |
Single cell containing the child interrupt identifier
0 - EVENTQ
1 - CMDQ_SYNC
2 - GERROR (GLOBAL)
3 - PRIQ
interrupts:
maxItems: 1
required:
- compatible
- reg
- interrupt-controller
- "#interrupt-cells"
- interrupts
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
interrupt-controller@eca10000 {
compatible = "xlnx,versal-net-smmu-csr";
reg = <0xeca10000 0x1000>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
};