42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
|
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.
|
||
|
|
||
|
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>;
|
||
|
};
|