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 - 2026 Red Hat, Inc.