[PATCH v2 0/3] arm64: boot: dts: ti: k3-am62l: allow WKUP UART wakeup from LPM

Kendall Willis k-willis at ti.com
Thu Jan 15 09:09:36 PST 2026


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 at ti.com>



More information about the linux-arm-kernel mailing list