mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM
@ 2026-01-06 22:39 Kendall Willis
  2026-01-06 22:39 ` [PATCH v2 1/3] arm64: dts: ti: k3-am62l: include WKUP_UART0 in wakeup peripheral window Kendall Willis
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Kendall Willis @ 2026-01-06 22:39 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, Bryan Brattlof
  Cc: vishalm, sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel, Kendall Willis

K3 TI AM62L SoC supports wakeup from WKUP UART when the SoC is in the
DeepSleep low power mode. To allow wakeup from WKUP UART the target-module
device tree node is enabled. The ti-sysc interconnect target module driver
is used to configure the the SYSCONFIG related registers. In this case,
the interconnect target module node configures the WKUP UART to be able to
wakeup from system suspend. The SYSC register is used to enable wakeup
from system suspend for the WKUP UART. Refer to 14.7.2.5 UART in the
AM62L Techincal Reference Manual for registers referenced [1].

Previous TI SoCs configure the WKUP UART to wakeup from system suspend
using the ti-sysc interconnect target module driver. Refer to commit
ce27f7f9e328 ("arm64: dts: ti: k3-am62-wakeup: Configure ti-sysc for
wkup_uart0") for an example of this.

Testing
-------
Tested on AM62L EVM.

[1] https://www.ti.com/lit/ug/sprujb4a/sprujb4a.pdf

Signed-off-by: Kendall Willis <k-willis@ti.com>
---
Changes in v2:
- Change subject of commit "arm64: boot: dts: ti: k3-am62l3-evm: enable
  target-module node" to better match the code logic of the patch.
- Link to v1: https://lore.kernel.org/r/20251230-wkup-uart-wakeup-v1-0-cd6e15f8d956@ti.com

---
Kendall Willis (3):
      arm64: dts: ti: k3-am62l: include WKUP_UART0 in wakeup peripheral window
      arm64: boot: dts: ti: k3-am62l-wakeup: create label for target-module
      arm64: boot: dts: ti: k3-am62l3-evm: enable target-module node

 arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi | 2 +-
 arch/arm64/boot/dts/ti/k3-am62l.dtsi        | 4 ++--
 arch/arm64/boot/dts/ti/k3-am62l3-evm.dts    | 4 ++++
 3 files changed, 7 insertions(+), 3 deletions(-)
---
base-commit: 6cd6c12031130a349a098dbeb19d8c3070d2dfbe
change-id: 20251230-wkup-uart-wakeup-8bbc95aa8f8e

Best regards,
-- 
Kendall Willis <k-willis@ti.com>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/3] arm64: dts: ti: k3-am62l: include WKUP_UART0 in wakeup peripheral window
  2026-01-06 22:39 [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM Kendall Willis
@ 2026-01-06 22:39 ` Kendall Willis
  2026-01-06 22:39 ` [PATCH v2 2/3] arm64: boot: dts: ti: k3-am62l-wakeup: create label for target-module Kendall Willis
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Kendall Willis @ 2026-01-06 22:39 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, Bryan Brattlof
  Cc: vishalm, sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel, Kendall Willis

WKUP_UART0 is apart of the wakeup peripherals and has a range from
0x002B300000 to 0x002B3001FF. Expand the wakeup peripheral window to
include WKUP_UART0.

Fixes: 5f016758b0ab ("arm64: dts: ti: k3-am62l: add initial infrastructure")
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Signed-off-by: Kendall Willis <k-willis@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am62l.dtsi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am62l.dtsi b/arch/arm64/boot/dts/ti/k3-am62l.dtsi
index 23acdbb301fe38e6045c0ef3ae340196009ed217..e01e342c26daaa06a72036cc3a9a7b13a60e6738 100644
--- a/arch/arm64/boot/dts/ti/k3-am62l.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62l.dtsi
@@ -92,7 +92,7 @@ cbass_main: bus@f0000 {
 			 <0x00 0x00b00000 0x00 0x00b00000 0x00 0x00001400>, /* VTM */
 			 <0x00 0x04080000 0x00 0x04080000 0x00 0x00008000>, /* PDCFG */
 			 <0x00 0x04201000 0x00 0x04201000 0x00 0x00000100>, /* GPIO */
-			 <0x00 0x2b100000 0x00 0x2b100000 0x00 0x00100100>, /* Wakeup Peripheral Window */
+			 <0x00 0x2b100000 0x00 0x2b100000 0x00 0x00200200>, /* Wakeup Peripheral Window */
 			 <0x00 0x40800000 0x00 0x40800000 0x00 0x00014000>, /* DMA */
 			 <0x00 0x43000000 0x00 0x43000000 0x00 0x00080000>; /* CTRL MMRs */
 		#address-cells = <2>;
@@ -104,7 +104,7 @@ cbass_wakeup: bus@a80000 {
 				 <0x00 0x00b00000 0x00 0x00b00000 0x00 0x00001400>, /* VTM */
 				 <0x00 0x04080000 0x00 0x04080000 0x00 0x00008000>, /* PDCFG */
 				 <0x00 0x04201000 0x00 0x04201000 0x00 0x00000100>, /* GPIO */
-				 <0x00 0x2b100000 0x00 0x2b100000 0x00 0x00100100>, /* Wakeup Peripheral Window */
+				 <0x00 0x2b100000 0x00 0x2b100000 0x00 0x00200200>, /* Wakeup Peripheral Window */
 				 <0x00 0x40800000 0x00 0x40800000 0x00 0x00014000>, /* DMA */
 				 <0x00 0x43000000 0x00 0x43000000 0x00 0x00080000>; /* CTRL MMRs */
 			#address-cells = <2>;

-- 
2.34.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 2/3] arm64: boot: dts: ti: k3-am62l-wakeup: create label for target-module
  2026-01-06 22:39 [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM Kendall Willis
  2026-01-06 22:39 ` [PATCH v2 1/3] arm64: dts: ti: k3-am62l: include WKUP_UART0 in wakeup peripheral window Kendall Willis
@ 2026-01-06 22:39 ` Kendall Willis
  2026-01-06 22:39 ` [PATCH v2 3/3] arm64: boot: dts: ti: k3-am62l3-evm: enable target-module node Kendall Willis
  2026-01-07 16:45 ` [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM Bryan Brattlof
  3 siblings, 0 replies; 10+ messages in thread
From: Kendall Willis @ 2026-01-06 22:39 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, Bryan Brattlof
  Cc: vishalm, sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel, Kendall Willis

Add label to the target-module node so that it can easily be referenced.
The node specifically configures the SYSCONFIG related registers for WKUP
UART.

Reviewed-by: Dhruva Gole <d-gole@ti.com>
Signed-off-by: Kendall Willis <k-willis@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi
index 61bfcdcfc66ea8d802a36ed43cd01fbbf3decc70..e9d638d9ffd3a52aa6e0df70f6003879bc292358 100644
--- a/arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi
@@ -81,7 +81,7 @@ wkup_i2c0: i2c@2b200000 {
 		status = "disabled";
 	};
 
-	target-module@2b300050 {
+	wkup_uart0_interconnect: target-module@2b300050 {
 		compatible = "ti,sysc-omap2", "ti,sysc";
 		reg = <0x00 0x2b300050 0x00 0x4>,
 		      <0x00 0x2b300054 0x00 0x4>,

-- 
2.34.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 3/3] arm64: boot: dts: ti: k3-am62l3-evm: enable target-module node
  2026-01-06 22:39 [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM Kendall Willis
  2026-01-06 22:39 ` [PATCH v2 1/3] arm64: dts: ti: k3-am62l: include WKUP_UART0 in wakeup peripheral window Kendall Willis
  2026-01-06 22:39 ` [PATCH v2 2/3] arm64: boot: dts: ti: k3-am62l-wakeup: create label for target-module Kendall Willis
@ 2026-01-06 22:39 ` Kendall Willis
  2026-01-07 16:45 ` [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM Bryan Brattlof
  3 siblings, 0 replies; 10+ messages in thread
From: Kendall Willis @ 2026-01-06 22:39 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, Bryan Brattlof
  Cc: vishalm, sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel, Kendall Willis

Change the status of the wkup_uart0_interconnect node to enabled. The
target-module node sets the UART SYSS register to allow wakeup from WKUP
UART in DeepSleep low power mode.

Reviewed-by: Dhruva Gole <d-gole@ti.com>
Signed-off-by: Kendall Willis <k-willis@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am62l3-evm.dts | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
index cae04cce337366b50928d39b0c888550b14e43d3..02b1a1c76b2ee05d49cd69d199a6aacdb1973fa0 100644
--- a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
@@ -359,3 +359,7 @@ &usb1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&usb1_default_pins>;
 };
+
+&wkup_uart0_interconnect {
+	status = "okay";
+};

-- 
2.34.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM
  2026-01-06 22:39 [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM Kendall Willis
                   ` (2 preceding siblings ...)
  2026-01-06 22:39 ` [PATCH v2 3/3] arm64: boot: dts: ti: k3-am62l3-evm: enable target-module node Kendall Willis
@ 2026-01-07 16:45 ` Bryan Brattlof
  2026-01-07 21:44   ` Kendall Willis
  3 siblings, 1 reply; 10+ messages in thread
From: Bryan Brattlof @ 2026-01-07 16:45 UTC (permalink / raw)
  To: Kendall Willis
  Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, vishalm,
	sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel

On January  6, 2026 thus sayeth Kendall Willis:
> K3 TI AM62L SoC supports wakeup from WKUP UART when the SoC is in the
> DeepSleep low power mode. To allow wakeup from WKUP UART the target-module
> device tree node is enabled. The ti-sysc interconnect target module driver
> is used to configure the the SYSCONFIG related registers. In this case,
> the interconnect target module node configures the WKUP UART to be able to
> wakeup from system suspend. The SYSC register is used to enable wakeup
> from system suspend for the WKUP UART. Refer to 14.7.2.5 UART in the
> AM62L Techincal Reference Manual for registers referenced [1].
> 
> Previous TI SoCs configure the WKUP UART to wakeup from system suspend
> using the ti-sysc interconnect target module driver. Refer to commit
> ce27f7f9e328 ("arm64: dts: ti: k3-am62-wakeup: Configure ti-sysc for
> wkup_uart0") for an example of this.

I think I may be confused. What is setting the pinmux for the wkup_uart 
to allow us to trigger the wake event? It looks like they reset to GPIO 
pins if not set. Is firmware doing this?

~Bryan

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM
  2026-01-07 16:45 ` [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM Bryan Brattlof
@ 2026-01-07 21:44   ` Kendall Willis
  2026-01-08 17:05     ` Bryan Brattlof
  0 siblings, 1 reply; 10+ messages in thread
From: Kendall Willis @ 2026-01-07 21:44 UTC (permalink / raw)
  To: Bryan Brattlof
  Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, vishalm,
	sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel

On 1/7/26 10:45, Bryan Brattlof wrote:
> On January  6, 2026 thus sayeth Kendall Willis:
>> K3 TI AM62L SoC supports wakeup from WKUP UART when the SoC is in the
>> DeepSleep low power mode. To allow wakeup from WKUP UART the target-module
>> device tree node is enabled. The ti-sysc interconnect target module driver
>> is used to configure the the SYSCONFIG related registers. In this case,
>> the interconnect target module node configures the WKUP UART to be able to
>> wakeup from system suspend. The SYSC register is used to enable wakeup
>> from system suspend for the WKUP UART. Refer to 14.7.2.5 UART in the
>> AM62L Techincal Reference Manual for registers referenced [1].
>>
>> Previous TI SoCs configure the WKUP UART to wakeup from system suspend
>> using the ti-sysc interconnect target module driver. Refer to commit
>> ce27f7f9e328 ("arm64: dts: ti: k3-am62-wakeup: Configure ti-sysc for
>> wkup_uart0") for an example of this.
> 
> I think I may be confused. What is setting the pinmux for the wkup_uart
> to allow us to trigger the wake event? It looks like they reset to GPIO
> pins if not set. Is firmware doing this?

On AM62L, the WKUP UART pinmux is initially set by TFA so that it is set 
to the UART pins, not GPIO. The target-module node sets the WKUP UART 
SYSC register so that wakeup is enabled.

Best,
Kendall

> 
> ~Bryan



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM
  2026-01-07 21:44   ` Kendall Willis
@ 2026-01-08 17:05     ` Bryan Brattlof
  2026-01-08 17:52       ` Kendall Willis
  0 siblings, 1 reply; 10+ messages in thread
From: Bryan Brattlof @ 2026-01-08 17:05 UTC (permalink / raw)
  To: Kendall Willis
  Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, vishalm,
	sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel

On January  7, 2026 thus sayeth Kendall Willis:
> On 1/7/26 10:45, Bryan Brattlof wrote:
> > On January  6, 2026 thus sayeth Kendall Willis:
> > > K3 TI AM62L SoC supports wakeup from WKUP UART when the SoC is in the
> > > DeepSleep low power mode. To allow wakeup from WKUP UART the target-module
> > > device tree node is enabled. The ti-sysc interconnect target module driver
> > > is used to configure the the SYSCONFIG related registers. In this case,
> > > the interconnect target module node configures the WKUP UART to be able to
> > > wakeup from system suspend. The SYSC register is used to enable wakeup
> > > from system suspend for the WKUP UART. Refer to 14.7.2.5 UART in the
> > > AM62L Techincal Reference Manual for registers referenced [1].
> > > 
> > > Previous TI SoCs configure the WKUP UART to wakeup from system suspend
> > > using the ti-sysc interconnect target module driver. Refer to commit
> > > ce27f7f9e328 ("arm64: dts: ti: k3-am62-wakeup: Configure ti-sysc for
> > > wkup_uart0") for an example of this.
> > 
> > I think I may be confused. What is setting the pinmux for the wkup_uart
> > to allow us to trigger the wake event? It looks like they reset to GPIO
> > pins if not set. Is firmware doing this?
> 
> On AM62L, the WKUP UART pinmux is initially set by TFA so that it is set to
> the UART pins, not GPIO. The target-module node sets the WKUP UART SYSC
> register so that wakeup is enabled.
> 

Nice however should we mark the UART in the board file as reserved for 
TFA or is it free to be used by Linux and only during the low power 
modes after Linux is asleep will it be used by TFA?

~Bryan

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM
  2026-01-08 17:05     ` Bryan Brattlof
@ 2026-01-08 17:52       ` Kendall Willis
  2026-01-08 18:03         ` Nishanth Menon
  0 siblings, 1 reply; 10+ messages in thread
From: Kendall Willis @ 2026-01-08 17:52 UTC (permalink / raw)
  To: Bryan Brattlof
  Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, vishalm,
	sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel

On 1/8/26 11:05, Bryan Brattlof wrote:
> On January  7, 2026 thus sayeth Kendall Willis:
>> On 1/7/26 10:45, Bryan Brattlof wrote:
>>> On January  6, 2026 thus sayeth Kendall Willis:
>>>> K3 TI AM62L SoC supports wakeup from WKUP UART when the SoC is in the
>>>> DeepSleep low power mode. To allow wakeup from WKUP UART the target-module
>>>> device tree node is enabled. The ti-sysc interconnect target module driver
>>>> is used to configure the the SYSCONFIG related registers. In this case,
>>>> the interconnect target module node configures the WKUP UART to be able to
>>>> wakeup from system suspend. The SYSC register is used to enable wakeup
>>>> from system suspend for the WKUP UART. Refer to 14.7.2.5 UART in the
>>>> AM62L Techincal Reference Manual for registers referenced [1].
>>>>
>>>> Previous TI SoCs configure the WKUP UART to wakeup from system suspend
>>>> using the ti-sysc interconnect target module driver. Refer to commit
>>>> ce27f7f9e328 ("arm64: dts: ti: k3-am62-wakeup: Configure ti-sysc for
>>>> wkup_uart0") for an example of this.
>>>
>>> I think I may be confused. What is setting the pinmux for the wkup_uart
>>> to allow us to trigger the wake event? It looks like they reset to GPIO
>>> pins if not set. Is firmware doing this?
>>
>> On AM62L, the WKUP UART pinmux is initially set by TFA so that it is set to
>> the UART pins, not GPIO. The target-module node sets the WKUP UART SYSC
>> register so that wakeup is enabled.
>>
> 
> Nice however should we mark the UART in the board file as reserved for
> TFA or is it free to be used by Linux and only during the low power
> modes after Linux is asleep will it be used by TFA?
> 
> ~Bryan

Sorry for the confusion, I said earlier that the WKUP UART could be used 
by firmware, but that is not to say it is specifically reserved by the 
firmware in general. TFA sets the WKUP UART pins, but it does not use 
the WKUP UART for anything else. The only exception for TFA using the 
WKUP UART is if the user chooses to use the WKUP UART for TFA debugging [1].

All of this to say that the WKUP UART *can* be used by Linux, it does 
not need to be reserved for firmware.

[1] 
https://software-dl.ti.com/processor-sdk-linux/esd/AM62LX/latest/exports/docs/linux/Foundational_Components/Power_Management/pm_am62lx_debug.html

Best,
Kendall

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM
  2026-01-08 17:52       ` Kendall Willis
@ 2026-01-08 18:03         ` Nishanth Menon
  2026-01-15 17:09           ` Kendall Willis
  0 siblings, 1 reply; 10+ messages in thread
From: Nishanth Menon @ 2026-01-08 18:03 UTC (permalink / raw)
  To: Kendall Willis
  Cc: Bryan Brattlof, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, vishalm,
	sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel

On 11:52-20260108, Kendall Willis wrote:
> On 1/8/26 11:05, Bryan Brattlof wrote:
> > On January  7, 2026 thus sayeth Kendall Willis:
> > > On 1/7/26 10:45, Bryan Brattlof wrote:
> > > > On January  6, 2026 thus sayeth Kendall Willis:
> > > > > K3 TI AM62L SoC supports wakeup from WKUP UART when the SoC is in the
> > > > > DeepSleep low power mode. To allow wakeup from WKUP UART the target-module
> > > > > device tree node is enabled. The ti-sysc interconnect target module driver
> > > > > is used to configure the the SYSCONFIG related registers. In this case,
> > > > > the interconnect target module node configures the WKUP UART to be able to
> > > > > wakeup from system suspend. The SYSC register is used to enable wakeup
> > > > > from system suspend for the WKUP UART. Refer to 14.7.2.5 UART in the
> > > > > AM62L Techincal Reference Manual for registers referenced [1].
> > > > > 
> > > > > Previous TI SoCs configure the WKUP UART to wakeup from system suspend
> > > > > using the ti-sysc interconnect target module driver. Refer to commit
> > > > > ce27f7f9e328 ("arm64: dts: ti: k3-am62-wakeup: Configure ti-sysc for
> > > > > wkup_uart0") for an example of this.
> > > > 
> > > > I think I may be confused. What is setting the pinmux for the wkup_uart
> > > > to allow us to trigger the wake event? It looks like they reset to GPIO
> > > > pins if not set. Is firmware doing this?
> > > 
> > > On AM62L, the WKUP UART pinmux is initially set by TFA so that it is set to
> > > the UART pins, not GPIO. The target-module node sets the WKUP UART SYSC
> > > register so that wakeup is enabled.
> > > 
> > 
> > Nice however should we mark the UART in the board file as reserved for
> > TFA or is it free to be used by Linux and only during the low power
> > modes after Linux is asleep will it be used by TFA?
> > 
> > ~Bryan
> 
> Sorry for the confusion, I said earlier that the WKUP UART could be used by
> firmware, but that is not to say it is specifically reserved by the firmware
> in general. TFA sets the WKUP UART pins, but it does not use the WKUP UART
> for anything else. The only exception for TFA using the WKUP UART is if the
> user chooses to use the WKUP UART for TFA debugging [1].
> 
> All of this to say that the WKUP UART *can* be used by Linux, it does not
> need to be reserved for firmware.
> 

If you are going to use it for linux wakeup, then why dont we enable it for
linux? what TFA does or not should not dictate device tree unless it is
a hardware description - provide the full description in dt.

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
https://ti.com/opensource

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM
  2026-01-08 18:03         ` Nishanth Menon
@ 2026-01-15 17:09           ` Kendall Willis
  0 siblings, 0 replies; 10+ messages in thread
From: Kendall Willis @ 2026-01-15 17:09 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Bryan Brattlof, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dhruva Gole, vishalm,
	sebin.francis, msp, khilman, a-kaur, s-kochidanadu,
	linux-arm-kernel, devicetree, linux-kernel

On 1/8/26 12:03, Nishanth Menon wrote:
> On 11:52-20260108, Kendall Willis wrote:
>> On 1/8/26 11:05, Bryan Brattlof wrote:
>>> On January  7, 2026 thus sayeth Kendall Willis:
>>>> On 1/7/26 10:45, Bryan Brattlof wrote:
>>>>> On January  6, 2026 thus sayeth Kendall Willis:
>>>>>> K3 TI AM62L SoC supports wakeup from WKUP UART when the SoC is in the
>>>>>> DeepSleep low power mode. To allow wakeup from WKUP UART the target-module
>>>>>> device tree node is enabled. The ti-sysc interconnect target module driver
>>>>>> is used to configure the the SYSCONFIG related registers. In this case,
>>>>>> the interconnect target module node configures the WKUP UART to be able to
>>>>>> wakeup from system suspend. The SYSC register is used to enable wakeup
>>>>>> from system suspend for the WKUP UART. Refer to 14.7.2.5 UART in the
>>>>>> AM62L Techincal Reference Manual for registers referenced [1].
>>>>>>
>>>>>> Previous TI SoCs configure the WKUP UART to wakeup from system suspend
>>>>>> using the ti-sysc interconnect target module driver. Refer to commit
>>>>>> ce27f7f9e328 ("arm64: dts: ti: k3-am62-wakeup: Configure ti-sysc for
>>>>>> wkup_uart0") for an example of this.
>>>>>
>>>>> I think I may be confused. What is setting the pinmux for the wkup_uart
>>>>> to allow us to trigger the wake event? It looks like they reset to GPIO
>>>>> pins if not set. Is firmware doing this?
>>>>
>>>> On AM62L, the WKUP UART pinmux is initially set by TFA so that it is set to
>>>> the UART pins, not GPIO. The target-module node sets the WKUP UART SYSC
>>>> register so that wakeup is enabled.
>>>>
>>>
>>> Nice however should we mark the UART in the board file as reserved for
>>> TFA or is it free to be used by Linux and only during the low power
>>> modes after Linux is asleep will it be used by TFA?
>>>
>>> ~Bryan
>>
>> Sorry for the confusion, I said earlier that the WKUP UART could be used by
>> firmware, but that is not to say it is specifically reserved by the firmware
>> in general. TFA sets the WKUP UART pins, but it does not use the WKUP UART
>> for anything else. The only exception for TFA using the WKUP UART is if the
>> user chooses to use the WKUP UART for TFA debugging [1].
>>
>> All of this to say that the WKUP UART *can* be used by Linux, it does not
>> need to be reserved for firmware.
>>
> 
> If you are going to use it for linux wakeup, then why dont we enable it for
> linux? what TFA does or not should not dictate device tree unless it is
> a hardware description - provide the full description in dt.
> 

When adding a full description of WKUP UART and setting the WKUP UART to 
be enabled in Linux, the wakeup functionality stopped working. I am 
currently debugging this since I don't think that it should matter if 
the WKUP UART is enabled or disabled for the wakeup functionality to 
work with this implementation. I will post another version of this 
series once I am able to fix the problem.

Best,
Kendall Willis <k-willis@ti.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-01-15 17:09 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-01-06 22:39 [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM Kendall Willis
2026-01-06 22:39 ` [PATCH v2 1/3] arm64: dts: ti: k3-am62l: include WKUP_UART0 in wakeup peripheral window Kendall Willis
2026-01-06 22:39 ` [PATCH v2 2/3] arm64: boot: dts: ti: k3-am62l-wakeup: create label for target-module Kendall Willis
2026-01-06 22:39 ` [PATCH v2 3/3] arm64: boot: dts: ti: k3-am62l3-evm: enable target-module node Kendall Willis
2026-01-07 16:45 ` [PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM Bryan Brattlof
2026-01-07 21:44   ` Kendall Willis
2026-01-08 17:05     ` Bryan Brattlof
2026-01-08 17:52       ` Kendall Willis
2026-01-08 18:03         ` Nishanth Menon
2026-01-15 17:09           ` Kendall Willis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®