| NVIDIA Legacy Interrupt Controller | |
| All Tegra SoCs contain a legacy interrupt controller that routes | |
| interrupts to the GIC, and also serves as a wakeup source. It is also | |
| referred to as "ictlr", hence the name of the binding. | |
| The HW block exposes a number of interrupt controllers, each | |
| implementing a set of 32 interrupts. | |
| Required properties: | |
| - compatible : should be: "nvidia,tegra<chip>-ictlr". The LIC on | |
| subsequent SoCs remained backwards-compatible with Tegra30, so on | |
| Tegra generations later than Tegra30 the compatible value should | |
| include "nvidia,tegra30-ictlr". | |
| - reg : Specifies base physical address and size of the registers. | |
| Each controller must be described separately (Tegra20 has 4 of them, | |
| whereas Tegra30 and later have 5). | |
| - interrupt-controller : Identifies the node as an interrupt controller. | |
| - #interrupt-cells : Specifies the number of cells needed to encode an | |
| interrupt source. The value must be 3. | |
| - interrupt-parent : a phandle to the GIC these interrupts are routed | |
| to. | |
| Notes: | |
| - Because this HW ultimately routes interrupts to the GIC, the | |
| interrupt specifier must be that of the GIC. | |
| - Only SPIs can use the ictlr as an interrupt parent. SGIs and PPIs | |
| are explicitly forbidden. | |
| Example: | |
| ictlr: interrupt-controller@60004000 { | |
| compatible = "nvidia,tegra20-ictlr", "nvidia,tegra-ictlr"; | |
| reg = <0x60004000 64>, | |
| <0x60004100 64>, | |
| <0x60004200 64>, | |
| <0x60004300 64>; | |
| interrupt-controller; | |
| #interrupt-cells = <3>; | |
| interrupt-parent = <&intc>; | |
| }; |