xref: /freebsd-src/sys/contrib/device-tree/Bindings/interrupt-controller/ti,keystone-irq.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotKeystone 2 IRQ controller IP
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotOn Keystone SOCs, DSP cores can send interrupts to ARM
4*c66ec88fSEmmanuel Vadothost using the IRQ controller IP. It provides 28 IRQ signals to ARM.
5*c66ec88fSEmmanuel VadotThe IRQ handler running on HOST OS can identify DSP signal source by
6*c66ec88fSEmmanuel Vadotanalyzing SRCCx bits in IPCARx registers. This is one of the component
7*c66ec88fSEmmanuel Vadotused by the IPC mechanism used on Keystone SOCs.
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel VadotRequired Properties:
10*c66ec88fSEmmanuel Vadot- compatible: should be "ti,keystone-irq"
11*c66ec88fSEmmanuel Vadot- ti,syscon-dev : phandle and offset pair. The phandle to syscon used to
12*c66ec88fSEmmanuel Vadot			access device control registers and the offset inside
13*c66ec88fSEmmanuel Vadot			device control registers range.
14*c66ec88fSEmmanuel Vadot- interrupt-controller : Identifies the node as an interrupt controller
15*c66ec88fSEmmanuel Vadot- #interrupt-cells : Specifies the number of cells needed to encode interrupt
16*c66ec88fSEmmanuel Vadot					 source should be 1.
17*c66ec88fSEmmanuel Vadot- interrupts: interrupt reference to primary interrupt controller
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel VadotPlease refer to interrupts.txt in this directory for details of the common
20*c66ec88fSEmmanuel VadotInterrupt Controllers bindings used by client devices.
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel VadotExample:
23*c66ec88fSEmmanuel Vadot	kirq0: keystone_irq0@26202a0 {
24*c66ec88fSEmmanuel Vadot		compatible = "ti,keystone-irq";
25*c66ec88fSEmmanuel Vadot		ti,syscon-dev = <&devctrl 0x2a0>;
26*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
27*c66ec88fSEmmanuel Vadot		interrupt-controller;
28*c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
29*c66ec88fSEmmanuel Vadot	};
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel Vadot	dsp0: dsp0 {
32*c66ec88fSEmmanuel Vadot		compatible = "linux,rproc-user";
33*c66ec88fSEmmanuel Vadot		...
34*c66ec88fSEmmanuel Vadot		interrupt-parent = <&kirq0>;
35*c66ec88fSEmmanuel Vadot		interrupts = <10 2>;
36*c66ec88fSEmmanuel Vadot	};
37