1*4882a593SmuzhiyunNVIDIA Legacy Interrupt Controller
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunAll Tegra SoCs contain a legacy interrupt controller that routes
4*4882a593Smuzhiyuninterrupts to the GIC, and also serves as a wakeup source. It is also
5*4882a593Smuzhiyunreferred to as "ictlr", hence the name of the binding.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunThe HW block exposes a number of interrupt controllers, each
8*4882a593Smuzhiyunimplementing a set of 32 interrupts.
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunRequired properties:
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun- compatible : should be: "nvidia,tegra<chip>-ictlr". The LIC on
13*4882a593Smuzhiyun  subsequent SoCs remained backwards-compatible with Tegra30, so on
14*4882a593Smuzhiyun  Tegra generations later than Tegra30 the compatible value should
15*4882a593Smuzhiyun  include "nvidia,tegra30-ictlr".
16*4882a593Smuzhiyun- reg : Specifies base physical address and size of the registers.
17*4882a593Smuzhiyun  Each controller must be described separately (Tegra20 has 4 of them,
18*4882a593Smuzhiyun  whereas Tegra30 and later have 5).
19*4882a593Smuzhiyun- interrupt-controller : Identifies the node as an interrupt controller.
20*4882a593Smuzhiyun- #interrupt-cells : Specifies the number of cells needed to encode an
21*4882a593Smuzhiyun  interrupt source. The value must be 3.
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunNotes:
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun- Because this HW ultimately routes interrupts to the GIC, the
26*4882a593Smuzhiyun  interrupt specifier must be that of the GIC.
27*4882a593Smuzhiyun- Only SPIs can use the ictlr as an interrupt parent. SGIs and PPIs
28*4882a593Smuzhiyun  are explicitly forbidden.
29*4882a593Smuzhiyun
30*4882a593SmuzhiyunExample:
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	ictlr: interrupt-controller@60004000 {
33*4882a593Smuzhiyun		compatible = "nvidia,tegra20-ictlr", "nvidia,tegra-ictlr";
34*4882a593Smuzhiyun		reg = <0x60004000 64>,
35*4882a593Smuzhiyun		      <0x60004100 64>,
36*4882a593Smuzhiyun		      <0x60004200 64>,
37*4882a593Smuzhiyun		      <0x60004300 64>;
38*4882a593Smuzhiyun		interrupt-controller;
39*4882a593Smuzhiyun		#interrupt-cells = <3>;
40*4882a593Smuzhiyun		interrupt-parent = <&intc>;
41*4882a593Smuzhiyun	};
42