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.
Signed-off-by: Kendall Willis <k-willis@ti.com>
---
.../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 24 +++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index 13e1d36123d51..72801cf890d20 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -163,14 +163,26 @@ &phy_gmii_sel {
&main_pmx0 {
/* First pad number is ALW package and second is AMC package */
- main_uart0_pins_default: main-uart0-default-pins {
+ main_uart0_tx_pins_default: main-uart0-tx-default-pins {
bootph-all;
pinctrl-single,pins = <
- AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */
AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14/E11) UART0_TXD */
>;
};
+ main_uart0_rx_pins_default: main-uart0-rx-default-pins {
+ bootph-all;
+ pinctrl-single,pins = <
+ AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */
+ >;
+ };
+
+ main_uart0_rx_pins_wakeup: main-uart0-rx-wakeup-pins {
+ pinctrl-single,pins = <
+ AM62X_IOPAD(0x1c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (D14/A13) UART0_RXD */
+ >;
+ };
+
main_uart1_pins_default: main-uart1-default-pins {
bootph-pre-ram;
pinctrl-single,pins = <
@@ -342,8 +354,12 @@ &wkup_uart0 {
&main_uart0 {
bootph-all;
status = "okay";
- pinctrl-names = "default";
- pinctrl-0 = <&main_uart0_pins_default>;
+ pinctrl-names = "default", "wakeup";
+ pinctrl-0 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_default>;
+ pinctrl-1 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_wakeup>;
+ wakeup-source = <&system_deep_sleep>,
+ <&system_mcu_only>,
+ <&system_standby>;
};
&main_uart1 {
--
2.34.1
On Thu Sep 4, 2025 at 11:28 PM CEST, Kendall Willis wrote: > 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. > > Signed-off-by: Kendall Willis <k-willis@ti.com> > --- > .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 24 +++++++++++++++---- > 1 file changed, 20 insertions(+), 4 deletions(-) > > diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi > index 13e1d36123d51..72801cf890d20 100644 > --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi > +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi > @@ -163,14 +163,26 @@ &phy_gmii_sel { > > &main_pmx0 { > /* First pad number is ALW package and second is AMC package */ > - main_uart0_pins_default: main-uart0-default-pins { > + main_uart0_tx_pins_default: main-uart0-tx-default-pins { > bootph-all; > pinctrl-single,pins = < > - AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */ > AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14/E11) UART0_TXD */ > >; > }; > > + main_uart0_rx_pins_default: main-uart0-rx-default-pins { > + bootph-all; > + pinctrl-single,pins = < > + AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */ > + >; > + }; > + > + main_uart0_rx_pins_wakeup: main-uart0-rx-wakeup-pins { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x1c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (D14/A13) UART0_RXD */ > + >; > + }; > + > main_uart1_pins_default: main-uart1-default-pins { > bootph-pre-ram; > pinctrl-single,pins = < > @@ -342,8 +354,12 @@ &wkup_uart0 { > &main_uart0 { > bootph-all; > status = "okay"; > - pinctrl-names = "default"; > - pinctrl-0 = <&main_uart0_pins_default>; > + pinctrl-names = "default", "wakeup"; I think you may need to add this to the DT binding of the uart device as well. Best Markus > + pinctrl-0 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_default>; > + pinctrl-1 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_wakeup>; > + wakeup-source = <&system_deep_sleep>, > + <&system_mcu_only>, > + <&system_standby>; > }; > > &main_uart1 {
On Tue Sep 9, 2025 at 10:35 AM CEST, Markus Schneider-Pargmann wrote: > On Thu Sep 4, 2025 at 11:28 PM CEST, Kendall Willis wrote: >> 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. >> >> Signed-off-by: Kendall Willis <k-willis@ti.com> >> --- >> .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 24 +++++++++++++++---- >> 1 file changed, 20 insertions(+), 4 deletions(-) >> >> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >> index 13e1d36123d51..72801cf890d20 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >> @@ -163,14 +163,26 @@ &phy_gmii_sel { >> >> &main_pmx0 { >> /* First pad number is ALW package and second is AMC package */ >> - main_uart0_pins_default: main-uart0-default-pins { >> + main_uart0_tx_pins_default: main-uart0-tx-default-pins { >> bootph-all; >> pinctrl-single,pins = < >> - AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */ >> AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14/E11) UART0_TXD */ >> >; >> }; >> >> + main_uart0_rx_pins_default: main-uart0-rx-default-pins { >> + bootph-all; >> + pinctrl-single,pins = < >> + AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */ >> + >; >> + }; >> + >> + main_uart0_rx_pins_wakeup: main-uart0-rx-wakeup-pins { >> + pinctrl-single,pins = < >> + AM62X_IOPAD(0x1c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (D14/A13) UART0_RXD */ >> + >; >> + }; >> + >> main_uart1_pins_default: main-uart1-default-pins { >> bootph-pre-ram; >> pinctrl-single,pins = < >> @@ -342,8 +354,12 @@ &wkup_uart0 { >> &main_uart0 { >> bootph-all; >> status = "okay"; >> - pinctrl-names = "default"; >> - pinctrl-0 = <&main_uart0_pins_default>; >> + pinctrl-names = "default", "wakeup"; > > I think you may need to add this to the DT binding of the uart device > as well. Nevermind, I just saw your other series, can you please mention the other series as a dependency in the cover letter? > > Best > Markus > >> + pinctrl-0 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_default>; >> + pinctrl-1 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_wakeup>; >> + wakeup-source = <&system_deep_sleep>, >> + <&system_mcu_only>, >> + <&system_standby>; >> }; >> >> &main_uart1 {
On 9/9/25 03:37, Markus Schneider-Pargmann wrote: > On Tue Sep 9, 2025 at 10:35 AM CEST, Markus Schneider-Pargmann wrote: >> On Thu Sep 4, 2025 at 11:28 PM CEST, Kendall Willis wrote: >>> 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. >>> >>> Signed-off-by: Kendall Willis <k-willis@ti.com> >>> --- >>> .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 24 +++++++++++++++---- >>> 1 file changed, 20 insertions(+), 4 deletions(-) >>> >>> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >>> index 13e1d36123d51..72801cf890d20 100644 >>> --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >>> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >>> @@ -163,14 +163,26 @@ &phy_gmii_sel { >>> >>> &main_pmx0 { >>> /* First pad number is ALW package and second is AMC package */ >>> - main_uart0_pins_default: main-uart0-default-pins { >>> + main_uart0_tx_pins_default: main-uart0-tx-default-pins { >>> bootph-all; >>> pinctrl-single,pins = < >>> - AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */ >>> AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14/E11) UART0_TXD */ >>> >; >>> }; >>> >>> + main_uart0_rx_pins_default: main-uart0-rx-default-pins { >>> + bootph-all; >>> + pinctrl-single,pins = < >>> + AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */ >>> + >; >>> + }; >>> + >>> + main_uart0_rx_pins_wakeup: main-uart0-rx-wakeup-pins { >>> + pinctrl-single,pins = < >>> + AM62X_IOPAD(0x1c8, PIN_INPUT | PIN_WKUP_EN, 0) /* (D14/A13) UART0_RXD */ >>> + >; >>> + }; >>> + >>> main_uart1_pins_default: main-uart1-default-pins { >>> bootph-pre-ram; >>> pinctrl-single,pins = < >>> @@ -342,8 +354,12 @@ &wkup_uart0 { >>> &main_uart0 { >>> bootph-all; >>> status = "okay"; >>> - pinctrl-names = "default"; >>> - pinctrl-0 = <&main_uart0_pins_default>; >>> + pinctrl-names = "default", "wakeup"; >> >> I think you may need to add this to the DT binding of the uart device >> as well. > > Nevermind, I just saw your other series, can you please mention the > other series as a dependency in the cover letter? Yes, I will make the dependency clear in the cover letter. > >> >> Best >> Markus >> >>> + pinctrl-0 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_default>; >>> + pinctrl-1 = <&main_uart0_tx_pins_default>, <&main_uart0_rx_pins_wakeup>; >>> + wakeup-source = <&system_deep_sleep>, >>> + <&system_mcu_only>, >>> + <&system_standby>; >>> }; >>> >>> &main_uart1 { >
© 2016 - 2025 Red Hat, Inc.