Skip to content

Commit 7ce3c27

Browse files
michalsimekrobherring
authored andcommitted
dt-bindings: interrupt-controller: Add missing Xilinx INTC binding
Add missing description for AMD/Xilinx interrupt controller. The binding is used by Microblaze before dt-binding even existed but never been documented properly. IP acts as primary interrupt controller on Microblaze systems or can be used as secondary interrupt controller on ARM based systems like Zynq, ZynqMP, Versal or Versal Gen 2. Also as secondary interrupt controller on Microblaze-V (Risc-V) systems. Over the years IP exists in multiple variants based on attached bus as OPB, PLB or AXI that's why generic filename is used. Property xlnx,kind-of-intr is in hex because every bit position corresponds to interrupt line. Controller support mixing edge or level interrupts together and this is the property which distinguish them. Signed-off-by: Michal Simek <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/2b9d4a3a693f501d420da88b8418732ba9def877.1753354675.git.michal.simek@amd.com Signed-off-by: Rob Herring (Arm) <[email protected]>
1 parent 2558df8 commit 7ce3c27

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interrupt-controller/xlnx,intc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Xilinx Interrupt Controller
8+
9+
maintainers:
10+
- Michal Simek <[email protected]>
11+
12+
description:
13+
The controller is a soft IP core that is configured at build time for the
14+
number of interrupts and the type of each interrupt. These details cannot
15+
be changed at run time.
16+
17+
properties:
18+
compatible:
19+
const: xlnx,xps-intc-1.00.a
20+
21+
reg:
22+
maxItems: 1
23+
24+
clocks:
25+
maxItems: 1
26+
27+
power-domains:
28+
maxItems: 1
29+
30+
resets:
31+
maxItems: 1
32+
33+
"#interrupt-cells":
34+
const: 2
35+
description:
36+
Specifies the number of cells needed to encode an interrupt source.
37+
The value shall be a minimum of 1. The Xilinx device trees typically
38+
use 2 but the 2nd value is not used.
39+
40+
interrupt-controller: true
41+
42+
interrupts:
43+
maxItems: 1
44+
description:
45+
Specifies the interrupt of the parent controller from which it is chained.
46+
47+
xlnx,kind-of-intr:
48+
$ref: /schemas/types.yaml#/definitions/uint32
49+
description:
50+
A 32 bit value specifying the interrupt type for each possible interrupt
51+
(1 = edge, 0 = level). The interrupt type typically comes in thru
52+
the device tree node of the interrupt generating device, but in this case
53+
the interrupt type is determined by the interrupt controller based on how
54+
it was implemented.
55+
56+
xlnx,num-intr-inputs:
57+
$ref: /schemas/types.yaml#/definitions/uint32
58+
minimum: 1
59+
maximum: 32
60+
description:
61+
Specifies the number of interrupts supported by the specific
62+
implementation of the controller.
63+
64+
required:
65+
- reg
66+
- "#interrupt-cells"
67+
- interrupt-controller
68+
- xlnx,kind-of-intr
69+
- xlnx,num-intr-inputs
70+
71+
additionalProperties: false
72+
73+
examples:
74+
- |
75+
interrupt-controller@41800000 {
76+
compatible = "xlnx,xps-intc-1.00.a";
77+
reg = <0x41800000 0x10000>;
78+
#interrupt-cells = <2>;
79+
interrupt-controller;
80+
xlnx,kind-of-intr = <0x1>;
81+
xlnx,num-intr-inputs = <1>;
82+
};

0 commit comments

Comments
 (0)