[PATCH 1/3] arm64: dts: ti: k3-am62x-sk-common: Enable Main UART wakeup

Kendall Willis posted 3 patches 4 weeks ago
[PATCH 1/3] arm64: dts: ti: k3-am62x-sk-common: Enable Main UART wakeup
Posted by Kendall Willis 4 weeks ago
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
Re: [PATCH 1/3] arm64: dts: ti: k3-am62x-sk-common: Enable Main UART wakeup
Posted by Markus Schneider-Pargmann 3 weeks, 2 days ago
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 {

Re: [PATCH 1/3] arm64: dts: ti: k3-am62x-sk-common: Enable Main UART wakeup
Posted by Markus Schneider-Pargmann 3 weeks, 2 days ago
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 {

Re: [PATCH 1/3] arm64: dts: ti: k3-am62x-sk-common: Enable Main UART wakeup
Posted by Kendall Willis 3 weeks, 2 days ago
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 {
>