arm64: dts: allwinner: Move wakeup-capable IRQs to r_intc
authorSamuel Holland <samuel@sholland.org>
Mon, 18 Jan 2021 05:50:40 +0000 (23:50 -0600)
committerChen-Yu Tsai <wens@csie.org>
Sat, 6 Mar 2021 07:40:22 +0000 (15:40 +0800)
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.

In addition to the external NMI input, which is already routed through
r_intc, these include PIO and R_PIO (gpio-keys), the LRADC, and the RTC.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi

index 5bf9d61..5b30e6c 100644 (file)
                pio: pinctrl@1c20800 {
                        compatible = "allwinner,sun50i-a64-pinctrl";
                        reg = <0x01c20800 0x400>;
+                       interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
                        compatible = "allwinner,sun50i-a64-lradc",
                                     "allwinner,sun8i-a83t-r-lradc";
                        reg = <0x01c21800 0x400>;
+                       interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
                        compatible = "allwinner,sun50i-a64-rtc",
                                     "allwinner,sun8i-h3-rtc";
                        reg = <0x01f00000 0x400>;
+                       interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                        clock-output-names = "osc32k", "osc32k-out", "iosc";
                r_pio: pinctrl@1f02c00 {
                        compatible = "allwinner,sun50i-a64-r-pinctrl";
                        reg = <0x01f02c00 0x400>;
+                       interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;
                        clock-names = "apb", "hosc", "losc";
index d395e50..3958242 100644 (file)
                pio: pinctrl@300b000 {
                        compatible = "allwinner,sun50i-h6-pinctrl";
                        reg = <0x0300b000 0x400>;
+                       interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
                rtc: rtc@7000000 {
                        compatible = "allwinner,sun50i-h6-rtc";
                        reg = <0x07000000 0x400>;
+                       interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
                        clock-output-names = "osc32k", "osc32k-out", "iosc";
                r_pio: pinctrl@7022000 {
                        compatible = "allwinner,sun50i-h6-r-pinctrl";
                        reg = <0x07022000 0x400>;
+                       interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&r_ccu CLK_R_APB1>, <&osc24M>, <&rtc 0>;