[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <DEBVUEKJ6R6G.33Y7W087DCFBT@baylibre.com>
Date: Tue, 18 Nov 2025 15:16:04 +0100
From: "Markus Schneider-Pargmann" <msp@...libre.com>
To: "Kendall Willis" <k-willis@...com>, "Markus Schneider-Pargmann (TI.com)"
<msp@...libre.com>, "Nishanth Menon" <nm@...com>, "Vignesh Raghavendra"
<vigneshr@...com>, "Tero Kristo" <kristo@...nel.org>, "Rob Herring"
<robh@...nel.org>, "Krzysztof Kozlowski" <krzk+dt@...nel.org>, "Conor
Dooley" <conor+dt@...nel.org>
Cc: <linux-arm-kernel@...ts.infradead.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, "Vishal Mahaveer" <vishalm@...com>, "Kevin
Hilman" <khilman@...libre.com>, "Dhruva Gole" <d-gole@...com>, "Sebin
Francis" <sebin.francis@...com>, "Akashdeep Kaur" <a-kaur@...com>
Subject: Re: [PATCH v5 5/6] arm64: dts: ti: k3-am62a7-sk: Set wakeup-source
system-states
Hi Kendall,
On Tue Nov 11, 2025 at 9:57 PM CET, Kendall Willis wrote:
> On 11/3/25 06:39, Markus Schneider-Pargmann (TI.com) wrote:
>> The CANUART pins of mcu_mcan0, mcu_mcan1, mcu_uart0 and wkup_uart0 are
>> powered during Partial-IO and I/O Only + DDR and are capable of waking
>> up the system in these states. Specify the states in which these units
>> can do a wakeup on this board.
>>
>> Note that the UARTs are not capable of wakeup in Partial-IO because of
>> of a UART mux on the board not being powered during Partial-IO.
>>
>> Add pincontrol definitions for mcu_mcan0 and mcu_mcan1 for wakeup from
>> Partial-IO. Add these as wakeup pinctrl entries for both devices.
>>
>> Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@...libre.com>
>> ---
>> arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 69 +++++++++++++++++++++++++++++++++
>> 1 file changed, 69 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
>> index af591fe6ae4f0a91991d2904a9a61905a0eeb614..b61370db6986308ec97983f796b993a26debcabc 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
>> +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
>> @@ -233,6 +233,10 @@ AM62AX_MCU_IOPAD(0x0030, PIN_OUTPUT, 0) /* (C8) WKUP_UART0_RTSn */
>> &wkup_uart0 {
>> pinctrl-names = "default";
>> pinctrl-0 = <&wkup_uart0_pins_default>;
>> + wakeup-source = <&system_io_ddr>,
>> + <&system_deep_sleep>,
>> + <&system_mcu_only>,
>> + <&system_standby>;
>> status = "reserved";
>> };
>>
>> @@ -426,6 +430,42 @@ pmic_irq_pins_default: pmic-irq-default-pins {
>> AM62AX_MCU_IOPAD(0x000, PIN_INPUT, 7) /* (E11) MCU_GPIO0_0 */
>> >;
>> };
>> +
>> + mcu_mcan0_tx_pins_default: mcu-mcan0-tx-default-pins {
>> + pinctrl-single,pins = <
>> + AM62AX_MCU_IOPAD(0x034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */
>> + >;
>> + };
>> +
>> + mcu_mcan0_rx_pins_default: mcu-mcan0-rx-default-pins {
>> + pinctrl-single,pins = <
>> + AM62AX_MCU_IOPAD(0x038, PIN_INPUT, 0) /* (B3) MCU_MCAN0_RX */
>> + >;
>> + };
>> +
>> + mcu_mcan0_rx_pins_wakeup: mcu-mcan0-rx-wakeup-pins {
>> + pinctrl-single,pins = <
>> + AM62AX_MCU_IOPAD(0x038, PIN_INPUT | PIN_WKUP_EN, 0) /* (B3) MCU_MCAN0_RX */
>> + >;
>> + };
>> +
>> + mcu_mcan1_tx_pins_default: mcu-mcan1-tx-default-pins {
>> + pinctrl-single,pins = <
>> + AM62AX_MCU_IOPAD(0x03c, PIN_OUTPUT, 0) /* (E5) MCU_MCAN1_TX */
>> + >;
>> + };
>> +
>> + mcu_mcan1_rx_pins_default: mcu-mcan1-rx-default-pins {
>> + pinctrl-single,pins = <
>> + AM62AX_MCU_IOPAD(0x040, PIN_INPUT, 0) /* (D4) MCU_MCAN1_RX */
>> + >;
>> + };
>> +
>> + mcu_mcan1_rx_pins_wakeup: mcu-mcan1-rx-wakeup-pins {
>> + pinctrl-single,pins = <
>> + AM62AX_MCU_IOPAD(0x040, PIN_INPUT | PIN_WKUP_EN, 0) /* (D4) MCU_MCAN1_RX */
>> + >;
>> + };
>> };
>>
>> &mcu_gpio0 {
>> @@ -852,4 +892,33 @@ AM62AX_IOPAD(0x008, PIN_INPUT, 0) /* (J24) OSPI0_DQS */
>> };
>> };
>>
>> +&mcu_mcan0 {
>> + pinctrl-names = "default", "wakeup";
>> + pinctrl-0 = <&mcu_mcan0_tx_pins_default>, <&mcu_mcan0_rx_pins_default>;
>> + pinctrl-1 = <&mcu_mcan0_tx_pins_default>, <&mcu_mcan0_rx_pins_wakeup>;
>> + wakeup-source = <&system_partial_io>,
>> + <&system_io_ddr>,
>> + <&system_deep_sleep>,
>> + <&system_mcu_only>,
>> + <&system_standby>;
>> +};
>> +
>> +&mcu_mcan1 {
>> + pinctrl-names = "default", "wakeup";
>> + pinctrl-0 = <&mcu_mcan1_tx_pins_default>, <&mcu_mcan1_rx_pins_default>;
>> + pinctrl-1 = <&mcu_mcan1_tx_pins_default>, <&mcu_mcan1_rx_pins_wakeup>;
>> + wakeup-source = <&system_partial_io>,
>> + <&system_io_ddr>,
>> + <&system_deep_sleep>,
>> + <&system_mcu_only>,
>> + <&system_standby>;
>> +};
>
> Did you mean to set the status = "okay" for mcu_mcan0 and mcu_mcan1? The
> nodes would still be disabled without it since in k3-am62a-mcu.dtsi the
> status is set to "disabled". Same goes for the patch you sent for AM62P.
Thanks for your reviews. Yes, I removed it after I got his feedback from
Vignesh:
MCU peripherals are under control of MCU R5 which would be running a
safety application on AM62A class of SoC. So these peripherals should
not be enabled by default here.
https://lore.kernel.org/lkml/32b13258-19dd-4ba7-a13b-daaf3804a7c8@ti.com/
Best
Markus
Download attachment "signature.asc" of type "application/pgp-signature" (290 bytes)
Powered by blists - more mailing lists