• Samuel Holland's avatar
    dt-bindings: irq: sun6i-r: Split the binding from sun7i-nmi · ad6b47cd
    Samuel Holland authored
    The R_INTC in the A31 and newer sun8i/sun50i SoCs has additional
    functionality compared to the sun7i/sun9i NMI controller. Among other
    things, it multiplexes access to up to 128 interrupts corresponding to
    (and in parallel to) the first 128 GIC SPIs. This means the NMI is no
    longer the lowest-numbered hwirq at this irqchip, since it is SPI 32 or
    96 (depending on SoC). hwirq 0 now corresponds to SPI 0, usually UART0.
    
    To allow access to all multiplexed IRQs, the R_INTC requires a new
    binding where the interrupt number matches the GIC interrupt number.
    Otherwise, interrupts with hwirq numbers below the NMI would not be
    representable in the device tree.
    
    For simplicity, copy the three-cell GIC binding; this disambiguates
    interrupt 0 in the old binding (the NMI) from interrupt 0 in the new
    binding (SPI 0) by the number of cells.
    
    Because the H6 R_INTC has a different mapping from multiplexed IRQs to
    top-level register bits, it is no longer compatible with the A31 R_INTC.
    Acked-by: default avatarMaxime Ripard <mripard@kernel.org>
    Reviewed-by: default avatarRob Herring <robh@kernel.org>
    Signed-off-by: default avatarSamuel Holland <samuel@sholland.org>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20210118055040.21910-2-samuel@sholland.org
    ad6b47cd
allwinner,sun6i-a31-r-intc.yaml 1.57 KB