xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/ti,sci-inta.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotTexas Instruments K3 Interrupt Aggregator
2*c66ec88fSEmmanuel Vadot=========================================
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel VadotThe Interrupt Aggregator (INTA) provides a centralized machine
5*c66ec88fSEmmanuel Vadotwhich handles the termination of system events to that they can
6*c66ec88fSEmmanuel Vadotbe coherently processed by the host(s) in the system. A maximum
7*c66ec88fSEmmanuel Vadotof 64 events can be mapped to a single interrupt.
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot
10*c66ec88fSEmmanuel Vadot                              Interrupt Aggregator
11*c66ec88fSEmmanuel Vadot                     +-----------------------------------------+
12*c66ec88fSEmmanuel Vadot                     |      Intmap            VINT             |
13*c66ec88fSEmmanuel Vadot                     | +--------------+  +------------+        |
14*c66ec88fSEmmanuel Vadot            m ------>| | vint  | bit  |  | 0 |.....|63| vint0  |
15*c66ec88fSEmmanuel Vadot               .     | +--------------+  +------------+        |       +------+
16*c66ec88fSEmmanuel Vadot               .     |         .               .               |       | HOST |
17*c66ec88fSEmmanuel VadotGlobalevents  ------>|         .               .               |------>| IRQ  |
18*c66ec88fSEmmanuel Vadot               .     |         .               .               |       | CTRL |
19*c66ec88fSEmmanuel Vadot               .     |         .               .               |       +------+
20*c66ec88fSEmmanuel Vadot            n ------>| +--------------+  +------------+        |
21*c66ec88fSEmmanuel Vadot                     | | vint  | bit  |  | 0 |.....|63| vintx  |
22*c66ec88fSEmmanuel Vadot                     | +--------------+  +------------+        |
23*c66ec88fSEmmanuel Vadot                     |                                         |
24*c66ec88fSEmmanuel Vadot                     +-----------------------------------------+
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel VadotConfiguration of these Intmap registers that maps global events to vint is done
27*c66ec88fSEmmanuel Vadotby a system controller (like the Device Memory and Security Controller on K3
28*c66ec88fSEmmanuel VadotAM654 SoC). Driver should request the system controller to get the range
29*c66ec88fSEmmanuel Vadotof global events and vints assigned to the requesting host. Management
30*c66ec88fSEmmanuel Vadotof these requested resources should be handled by driver and requests
31*c66ec88fSEmmanuel Vadotsystem controller to map specific global event to vint, bit pair.
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel VadotCommunication between the host processor running an OS and the system
34*c66ec88fSEmmanuel Vadotcontroller happens through a protocol called TI System Control Interface
35*c66ec88fSEmmanuel Vadot(TISCI protocol). For more details refer:
36*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/arm/keystone/ti,sci.txt
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel VadotTISCI Interrupt Aggregator Node:
39*c66ec88fSEmmanuel Vadot-------------------------------
40*c66ec88fSEmmanuel Vadot- compatible:		Must be "ti,sci-inta".
41*c66ec88fSEmmanuel Vadot- reg:			Should contain registers location and length.
42*c66ec88fSEmmanuel Vadot- interrupt-controller:	Identifies the node as an interrupt controller
43*c66ec88fSEmmanuel Vadot- msi-controller:	Identifies the node as an MSI controller.
44*c66ec88fSEmmanuel Vadot- interrupt-parent:	phandle of irq parent.
45*c66ec88fSEmmanuel Vadot- ti,sci:		Phandle to TI-SCI compatible System controller node.
46*c66ec88fSEmmanuel Vadot- ti,sci-dev-id:	TISCI device ID of the Interrupt Aggregator.
47*c66ec88fSEmmanuel Vadot- ti,sci-rm-range-vint:	Array of TISCI subtype ids representing vints(inta
48*c66ec88fSEmmanuel Vadot			outputs) range within this INTA, assigned to the
49*c66ec88fSEmmanuel Vadot			requesting host context.
50*c66ec88fSEmmanuel Vadot- ti,sci-rm-range-global-event:	Array of TISCI subtype ids representing the
51*c66ec88fSEmmanuel Vadot			global events range reaching this IA and are assigned
52*c66ec88fSEmmanuel Vadot			to the requesting host context.
53*c66ec88fSEmmanuel Vadot
54*c66ec88fSEmmanuel VadotExample:
55*c66ec88fSEmmanuel Vadot--------
56*c66ec88fSEmmanuel Vadotmain_udmass_inta: interrupt-controller@33d00000 {
57*c66ec88fSEmmanuel Vadot	compatible = "ti,sci-inta";
58*c66ec88fSEmmanuel Vadot	reg = <0x0 0x33d00000 0x0 0x100000>;
59*c66ec88fSEmmanuel Vadot	interrupt-controller;
60*c66ec88fSEmmanuel Vadot	msi-controller;
61*c66ec88fSEmmanuel Vadot	interrupt-parent = <&main_navss_intr>;
62*c66ec88fSEmmanuel Vadot	ti,sci = <&dmsc>;
63*c66ec88fSEmmanuel Vadot	ti,sci-dev-id = <179>;
64*c66ec88fSEmmanuel Vadot	ti,sci-rm-range-vint = <0x0>;
65*c66ec88fSEmmanuel Vadot	ti,sci-rm-range-global-event = <0x1>;
66*c66ec88fSEmmanuel Vadot};
67