• Maximilian Luz's avatar
    arm64: dts: qcom: sc8180x: Fix ss_phy_irq for secondary USB controller · ecda8309
    Maximilian Luz authored
    The ACPI DSDT of the Surface Pro X (SQ2) specifies the interrupts for
    the secondary UBS controller as
    
        Name (_CRS, ResourceTemplate ()
        {
            Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
            {
                0x000000AA,
            }
            Interrupt (ResourceConsumer, Level, ActiveHigh, SharedAndWake, ,, )
            {
                0x000000A7,     // hs_phy_irq: &intc GIC_SPI 136
            }
            Interrupt (ResourceConsumer, Level, ActiveHigh, SharedAndWake, ,, )
            {
                0x00000228,     // ss_phy_irq: &pdc 40
            }
            Interrupt (ResourceConsumer, Edge, ActiveHigh, SharedAndWake, ,, )
            {
                0x0000020A,     // dm_hs_phy_irq: &pdc 10
            }
            Interrupt (ResourceConsumer, Edge, ActiveHigh, SharedAndWake, ,, )
            {
                0x0000020B,     // dp_hs_phy_irq: &pdc 11
            }
        })
    
    Generally, the interrupts above 0x200 map to the PDC interrupts (as used
    in the devicetree) as ACPI_NUMBER - 0x200. Note that this lines up with
    dm_hs_phy_irq and dp_hs_phy_irq (as well as the interrupts for the
    primary USB controller).
    
    Based on the snippet above, ss_phy_irq should therefore be PDC 40 (=
    0x28) and not PDC 7. The latter is according to ACPI instead used as
    ss_phy_irq for port 0 of the multiport USB controller). Fix this by
    setting ss_phy_irq to '&pdc 40'.
    
    Fixes: b080f53a ("arm64: dts: qcom: sc8180x: Add remoteprocs, wifi and usb nodes")
    Signed-off-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
    Reviewed-by: default avatarBjorn Andersson <andersson@kernel.org>
    Link: https://lore.kernel.org/r/20240328022224.336938-1-luzmaximilian@gmail.comSigned-off-by: default avatarBjorn Andersson <andersson@kernel.org>
    ecda8309
sc8180x.dtsi 108 KB