All IRQs that can be used to wake up the system must be routed through r_intc, so they are visible to firmware while the system is suspended. For the H6, r_intc IRQ numbers are offset by 96 from the GIC IRQ numbers. Signed-off-by: Samuel Holland <samuel@xxxxxxxxxxxx> --- arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index d912188dc6ea..188699f47dea 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi @@ -844,8 +844,9 @@ tcon_tv_out_tcon_top: endpoint@1 { rtc: rtc@7000000 { compatible = "allwinner,sun50i-h6-rtc"; reg = <0x07000000 0x400>; - interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&r_intc>; + interrupts = <5 IRQ_TYPE_LEVEL_HIGH>, + <6 IRQ_TYPE_LEVEL_HIGH>; clock-output-names = "osc32k", "osc32k-out", "iosc"; #clock-cells = <1>; }; @@ -880,8 +881,9 @@ r_intc: interrupt-controller@7021000 { r_pio: pinctrl@7022000 { compatible = "allwinner,sun50i-h6-r-pinctrl"; reg = <0x07022000 0x400>; - interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&r_intc>; + interrupts = < 9 IRQ_TYPE_LEVEL_HIGH>, + <15 IRQ_TYPE_LEVEL_HIGH>; clocks = <&r_ccu CLK_R_APB1>, <&osc24M>, <&rtc 0>; clock-names = "apb", "hosc", "losc"; gpio-controller; @@ -904,7 +906,8 @@ r_ir: ir@7040000 { compatible = "allwinner,sun50i-h6-ir", "allwinner,sun6i-a31-ir"; reg = <0x07040000 0x400>; - interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&r_intc>; + interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; clocks = <&r_ccu CLK_R_APB1_IR>, <&r_ccu CLK_IR>; clock-names = "apb", "ir"; -- 2.24.1