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