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