]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: ti: k3-am62d2-evm: Enable Main UART wakeup
authorKendall Willis <k-willis@ti.com>
Thu, 12 Feb 2026 17:27:24 +0000 (11:27 -0600)
committerVignesh Raghavendra <vigneshr@ti.com>
Fri, 27 Mar 2026 02:08:35 +0000 (07:38 +0530)
The Main UART can resume from suspend to RAM states when PIN_WKUP_EN
is enabled. Add the necessary pins needed to wakeup the system. Add the
system idle states that the Main UART can wakeup the system from.

The UART driver uses the "default" pinctrl state when the system is
active. In the suspend hook, if the UART is wakeup enabled, the "wakeup"
pinctrl state is selected by the UART driver in order to allow wakeup.
Upon resume, the default pinctrl state is selected again.

Signed-off-by: Kendall Willis <k-willis@ti.com>
Link: https://patch.msgid.link/20260212-b4-uart-daisy-chain-dts-v5-5-26c7f534e567@ti.com
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
arch/arm64/boot/dts/ti/k3-am62d2-evm.dts

index 1ee851a646c053b5d6706f885c68058f4c4374b6..f5ceb6a1b5debabf1ead67eea634b48db1540186 100644 (file)
                bootph-all;
        };
 
+       main_uart0_pins_wakeup: main-uart0-wakeup-pins {
+               pinctrl-single,pins = <
+                       AM62DX_IOPAD(0x01c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (E14) UART0_RXD */
+                       AM62DX_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */
+               >;
+       };
+
        main_i2c0_pins_default: main-i2c0-default-pins {
                pinctrl-single,pins = <
                        AM62DX_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (D17) I2C0_SCL */
 };
 
 &main_uart0 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "wakeup";
        pinctrl-0 = <&main_uart0_pins_default>;
+       pinctrl-1 = <&main_uart0_pins_wakeup>;
+       wakeup-source = <&system_deep_sleep>,
+                       <&system_mcu_only>,
+                       <&system_standby>;
        bootph-all;
        status = "okay";
 };