[PATCH v5 5/5] arm64: dts: ti: k3-am62d2-evm: Enable Main UART wakeup

From: Kendall Willis

Date: Thu Feb 12 2026 - 12:27:49 EST


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@xxxxxx>
---
arch/arm64/boot/dts/ti/k3-am62d2-evm.dts | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
index a5d5dc0a7bec8c3a5dfa63e984ae398af3ede7c0..768aeeec0e8d6c1f6f1dcca442dae15450ce6c2f 100644
--- a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
@@ -241,6 +241,13 @@ AM62DX_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */
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 */
@@ -587,8 +594,12 @@ &main_gpio_intr {
};

&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";
};

--
2.34.1