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