On Wed May 7, 2025 at 6:56 PM CEST, Kendall Willis wrote: > On 4/21/25 03:14, Markus Schneider-Pargmann wrote: >> The CANUART pins of mcu_mcan0, mcu_mcan1, mcu_uart0 and wkup_uart0 are >> powered during Partial-IO and IO+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 >> --- >> arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 76 +++++++++++++++++++++++++++++++++ >> 1 file changed, 76 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts >> index 1c9d95696c839a51b607839abb9429a8de6fa620..724d9a6f3c575fe35496fdd9e17d6d8e33869f92 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts >> +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts >> @@ -741,3 +741,79 @@ dpi1_out: endpoint { >> }; >> }; >> }; >> + >> +&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>; >> + status = "okay"; >> +}; >> + >> +&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>; >> + status = "okay"; >> +}; >> + >> +&mcu_uart0 { >> + wakeup-source = <&system_io_ddr>, >> + <&system_deep_sleep>, >> + <&system_mcu_only>, >> + <&system_standby>; >> +}; >> + >> +&wkup_uart0 { >> + wakeup-source = <&system_io_ddr>, >> + <&system_deep_sleep>, >> + <&system_mcu_only>, >> + <&system_standby>; >> +}; > Hi Markus, > > I noticed wkup_uart0 is already referenced earlier in the dts. Could the > wakeup-source property be added into the first reference? >> + >> +&mcu_pmx0 { > Same thing with mcu_pmx0. Is there a reason for separating it from when > it was referenced originally? >> + mcu_mcan0_tx_pins_default: mcu-mcan0-tx-default-pins { >> + pinctrl-single,pins = < >> + AM62X_IOPAD(0x034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */ >> + >; >> + }; >> + >> + mcu_mcan0_rx_pins_default: mcu-mcan0-rx-default-pins { >> + pinctrl-single,pins = < >> + AM62X_IOPAD(0x038, PIN_INPUT, 0) /* (B3) MCU_MCAN0_RX */ >> + >; >> + }; >> + >> + mcu_mcan0_rx_pins_wakeup: mcu-mcan0-rx-wakeup-pins { >> + pinctrl-single,pins = < >> + AM62X_IOPAD(0x038, PIN_INPUT | WKUP_EN, 0) /* (B3) MCU_MCAN0_RX */ >> + >; >> + }; >> + >> + mcu_mcan1_tx_pins_default: mcu-mcan1-tx-default-pins { >> + pinctrl-single,pins = < >> + AM62X_IOPAD(0x03c, PIN_OUTPUT, 0) /* (E5) MCU_MCAN1_TX */ >> + >; >> + }; >> + >> + mcu_mcan1_rx_pins_default: mcu-mcan1-rx-default-pins { >> + pinctrl-single,pins = < >> + AM62X_IOPAD(0x040, PIN_INPUT, 0) /* (D4) MCU_MCAN1_RX */ >> + >; >> + }; >> + >> + mcu_mcan1_rx_pins_wakeup: mcu-mcan1-rx-wakeup-pins { >> + pinctrl-single,pins = < >> + AM62X_IOPAD(0x040, PIN_INPUT | WKUP_EN, 0) /* (D4) MCU_MCAN1_RX */ >> + >; >> + }; >> +};Additionally, this patch does not apply cleanly to linux-next and needs > to be fixed and rebased. Thank you, I will fix your points and rebase once the dt-schema idle-state-name question is resolved. Best Markus