Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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/st,spear300-shirq.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: SPEAr3xx Shared IRQ controller
8
9maintainers:
10 - Viresh Kumar <vireshk@kernel.org>
11 - Shiraz Hashim <shiraz.linux.kernel@gmail.com>
12
13description: |
14 SPEAr3xx architecture includes shared/multiplexed irqs for certain set of
15 devices. The multiplexor provides a single interrupt to parent interrupt
16 controller (VIC) on behalf of a group of devices.
17
18 There can be multiple groups available on SPEAr3xx variants but not exceeding
19 4. The number of devices in a group can differ, further they may share same
20 set of status/mask registers spanning across different bit masks. Also in some
21 cases the group may not have enable or other registers. This makes software
22 little complex.
23
24 A single node in the device tree is used to describe the shared interrupt
25 multiplexer (one node for all groups). A group in the interrupt controller
26 shares config/control registers with other groups. For example, a 32-bit
27 interrupt enable/disable config register can accommodate up to 4 interrupt
28 groups.
29
30properties:
31 compatible:
32 enum:
33 - st,spear300-shirq
34 - st,spear310-shirq
35 - st,spear320-shirq
36
37 reg:
38 maxItems: 1
39
40 '#interrupt-cells':
41 const: 1
42
43 interrupt-controller: true
44
45 interrupts:
46 description: Interrupt specifier array for SHIRQ groups
47 minItems: 1
48 maxItems: 4
49
50required:
51 - compatible
52 - reg
53 - '#interrupt-cells'
54 - interrupt-controller
55 - interrupts
56
57additionalProperties: false
58
59examples:
60 - |
61 interrupt-controller@b3000000 {
62 compatible = "st,spear320-shirq";
63 reg = <0xb3000000 0x1000>;
64 interrupts = <28 29 30 1>;
65 #interrupt-cells = <1>;
66 interrupt-controller;
67 };