Kernel-4.18.0-80.el8_nvidia,tegra20-ictlr

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-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>;
};