* [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®