* [PATCH v4 1/6] arm64: dts: ti: k3-am62: Define possible system states
2025-10-30 9:17 [PATCH v4 0/6] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann (TI.com)
@ 2025-10-30 9:17 ` Markus Schneider-Pargmann (TI.com)
2025-10-30 9:17 ` [PATCH v4 2/6] arm64: dts: ti: k3-am62a: " Markus Schneider-Pargmann (TI.com)
` (4 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-10-30 9:17 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Vishal Mahaveer,
Kevin Hilman, Dhruva Gole, Sebin Francis, Kendall Willis,
Akashdeep Kaur, Markus Schneider-Pargmann (TI.com)
Add the system states that are available on TI AM62 SoCs.
Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62.dtsi | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62.dtsi b/arch/arm64/boot/dts/ti/k3-am62.dtsi
index 59f6dff552ed40e4ac0f9c7077aa25d68d3b5283..b08b7062060ca12ecae83917a831ee779f1a288f 100644
--- a/arch/arm64/boot/dts/ti/k3-am62.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62.dtsi
@@ -46,6 +46,28 @@ pmu: pmu {
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
};
+ system-idle-states {
+ system_partial_io: system-partial-io {
+ compatible = "system-idle-state";
+ idle-state-name = "off-wake";
+ };
+
+ system_deep_sleep: system-deep-sleep {
+ compatible = "system-idle-state";
+ idle-state-name = "mem";
+ };
+
+ system_mcu_only: system-mcu-only {
+ compatible = "system-idle-state";
+ idle-state-name = "mem-mcu-active";
+ };
+
+ system_standby: system-standby {
+ compatible = "system-idle-state";
+ idle-state-name = "standby";
+ };
+ };
+
cbass_main: bus@f0000 {
bootph-all;
compatible = "simple-bus";
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v4 2/6] arm64: dts: ti: k3-am62a: Define possible system states
2025-10-30 9:17 [PATCH v4 0/6] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann (TI.com)
2025-10-30 9:17 ` [PATCH v4 1/6] arm64: dts: ti: k3-am62: Define possible system states Markus Schneider-Pargmann (TI.com)
@ 2025-10-30 9:17 ` Markus Schneider-Pargmann (TI.com)
2025-10-30 9:17 ` [PATCH v4 3/6] arm64: dts: ti: k3-am62p: " Markus Schneider-Pargmann (TI.com)
` (3 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-10-30 9:17 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Vishal Mahaveer,
Kevin Hilman, Dhruva Gole, Sebin Francis, Kendall Willis,
Akashdeep Kaur, Markus Schneider-Pargmann (TI.com)
Add the system states that are available on TI AM62A SoCs.
Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62a.dtsi | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62a.dtsi b/arch/arm64/boot/dts/ti/k3-am62a.dtsi
index 4d79b3e9486af18b8813a8980a57937669ff6095..31b2de035f0f748e34b8919f90251aa0551d9b32 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62a.dtsi
@@ -46,6 +46,33 @@ pmu: pmu {
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
};
+ system-idle-states {
+ system_partial_io: system-partial-io {
+ compatible = "system-idle-state";
+ idle-state-name = "off-wake";
+ };
+
+ system_io_ddr: system-io-ddr {
+ compatible = "system-idle-state";
+ idle-state-name = "mem-deep";
+ };
+
+ system_deep_sleep: system-deep-sleep {
+ compatible = "system-idle-state";
+ idle-state-name = "mem";
+ };
+
+ system_mcu_only: system-mcu-only {
+ compatible = "system-idle-state";
+ idle-state-name = "mem-mcu-active";
+ };
+
+ system_standby: system-standby {
+ compatible = "system-idle-state";
+ idle-state-name = "standby";
+ };
+ };
+
cbass_main: bus@f0000 {
compatible = "simple-bus";
#address-cells = <2>;
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v4 3/6] arm64: dts: ti: k3-am62p: Define possible system states
2025-10-30 9:17 [PATCH v4 0/6] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann (TI.com)
2025-10-30 9:17 ` [PATCH v4 1/6] arm64: dts: ti: k3-am62: Define possible system states Markus Schneider-Pargmann (TI.com)
2025-10-30 9:17 ` [PATCH v4 2/6] arm64: dts: ti: k3-am62a: " Markus Schneider-Pargmann (TI.com)
@ 2025-10-30 9:17 ` Markus Schneider-Pargmann (TI.com)
2025-10-30 9:17 ` [PATCH v4 4/6] arm64: dts: ti: k3-am62-lp-sk: Set wakeup-source system-states Markus Schneider-Pargmann (TI.com)
` (2 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-10-30 9:17 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Vishal Mahaveer,
Kevin Hilman, Dhruva Gole, Sebin Francis, Kendall Willis,
Akashdeep Kaur, Markus Schneider-Pargmann (TI.com)
Add the system states that are available on TI AM62P SoCs.
Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62p.dtsi | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62p.dtsi b/arch/arm64/boot/dts/ti/k3-am62p.dtsi
index 75a15c368c11b068430362fe0b8d2d9ecc052588..c69e16f16c835489f2bc5cba158235ab955347e3 100644
--- a/arch/arm64/boot/dts/ti/k3-am62p.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62p.dtsi
@@ -44,6 +44,33 @@ pmu: pmu {
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
};
+ system-idle-states {
+ system_partial_io: system-partial-io {
+ compatible = "system-idle-state";
+ idle-state-name = "off-wake";
+ };
+
+ system_io_ddr: system-io-ddr {
+ compatible = "system-idle-state";
+ idle-state-name = "mem-deep";
+ };
+
+ system_deep_sleep: system-deep-sleep {
+ compatible = "system-idle-state";
+ idle-state-name = "mem";
+ };
+
+ system_mcu_only: system-mcu-only {
+ compatible = "system-idle-state";
+ idle-state-name = "mem-mcu-active";
+ };
+
+ system_standby: system-standby {
+ compatible = "system-idle-state";
+ idle-state-name = "standby";
+ };
+ };
+
cbass_main: bus@f0000 {
compatible = "simple-bus";
#address-cells = <2>;
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v4 4/6] arm64: dts: ti: k3-am62-lp-sk: Set wakeup-source system-states
2025-10-30 9:17 [PATCH v4 0/6] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann (TI.com)
` (2 preceding siblings ...)
2025-10-30 9:17 ` [PATCH v4 3/6] arm64: dts: ti: k3-am62p: " Markus Schneider-Pargmann (TI.com)
@ 2025-10-30 9:17 ` Markus Schneider-Pargmann (TI.com)
2025-10-30 9:17 ` [PATCH v4 5/6] arm64: dts: ti: k3-am62a7-sk: " Markus Schneider-Pargmann (TI.com)
2025-10-30 9:17 ` [PATCH v4 6/6] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI.com)
5 siblings, 0 replies; 10+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-10-30 9:17 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Vishal Mahaveer,
Kevin Hilman, Dhruva Gole, Sebin Francis, Kendall Willis,
Akashdeep Kaur, Markus Schneider-Pargmann (TI.com)
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. As I/O
Only + DDR is not supported on AM62x, the UARTs are not added in this
patch.
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@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts | 60 ++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
index ecfba05fe5c273c671cd0968f3eceaf54d22ac7d..cb63db337b2bc4c83b48dde693b95dd9fd93cd26 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
@@ -276,3 +276,63 @@ &main_gpio1 {
&gpmc0 {
ranges = <0 0 0x00 0x51000000 0x01000000>; /* CS0 space. Min partition = 16MB */
};
+
+&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_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_deep_sleep>,
+ <&system_mcu_only>,
+ <&system_standby>;
+ status = "okay";
+};
+
+&mcu_pmx0 {
+ 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 | PIN_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 | PIN_WKUP_EN, 0) /* (D4) MCU_MCAN1_RX */
+ >;
+ };
+};
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v4 5/6] arm64: dts: ti: k3-am62a7-sk: Set wakeup-source system-states
2025-10-30 9:17 [PATCH v4 0/6] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann (TI.com)
` (3 preceding siblings ...)
2025-10-30 9:17 ` [PATCH v4 4/6] arm64: dts: ti: k3-am62-lp-sk: Set wakeup-source system-states Markus Schneider-Pargmann (TI.com)
@ 2025-10-30 9:17 ` Markus Schneider-Pargmann (TI.com)
2025-11-03 3:51 ` Vignesh Raghavendra
2025-10-30 9:17 ` [PATCH v4 6/6] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI.com)
5 siblings, 1 reply; 10+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-10-30 9:17 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Vishal Mahaveer,
Kevin Hilman, Dhruva Gole, Sebin Francis, Kendall Willis,
Akashdeep Kaur, Markus Schneider-Pargmann (TI.com)
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@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 71 +++++++++++++++++++++++++++++++++
1 file changed, 71 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..8525aa5ab812c51e2d3371b39baa5e936e616158 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,35 @@ 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>;
+ 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>;
+};
+
#include "k3-am62a-ti-ipc-firmware.dtsi"
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v4 5/6] arm64: dts: ti: k3-am62a7-sk: Set wakeup-source system-states
2025-10-30 9:17 ` [PATCH v4 5/6] arm64: dts: ti: k3-am62a7-sk: " Markus Schneider-Pargmann (TI.com)
@ 2025-11-03 3:51 ` Vignesh Raghavendra
2025-11-03 9:53 ` Markus Schneider-Pargmann
0 siblings, 1 reply; 10+ messages in thread
From: Vignesh Raghavendra @ 2025-11-03 3:51 UTC (permalink / raw)
To: Markus Schneider-Pargmann (TI.com), Nishanth Menon, Tero Kristo,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Vishal Mahaveer,
Kevin Hilman, Dhruva Gole, Sebin Francis, Kendall Willis,
Akashdeep Kaur
Hi Markus
[...]
On 30/10/25 14:47, Markus Schneider-Pargmann (TI.com) wrote:
> +&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>;
> +};
> +
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.
> #include "k3-am62a-ti-ipc-firmware.dtsi"
--
Regards
Vignesh
https://ti.com/opensource
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v4 5/6] arm64: dts: ti: k3-am62a7-sk: Set wakeup-source system-states
2025-11-03 3:51 ` Vignesh Raghavendra
@ 2025-11-03 9:53 ` Markus Schneider-Pargmann
0 siblings, 0 replies; 10+ messages in thread
From: Markus Schneider-Pargmann @ 2025-11-03 9:53 UTC (permalink / raw)
To: Vignesh Raghavendra, Markus Schneider-Pargmann (TI.com),
Nishanth Menon, Tero Kristo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Vishal Mahaveer,
Kevin Hilman, Dhruva Gole, Sebin Francis, Kendall Willis,
Akashdeep Kaur
[-- Attachment #1: Type: text/plain, Size: 1450 bytes --]
Hi Vignesh,
On Mon Nov 3, 2025 at 4:51 AM CET, Vignesh Raghavendra wrote:
> Hi Markus
>
> [...]
>
> On 30/10/25 14:47, Markus Schneider-Pargmann (TI.com) wrote:
>> +&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>;
>> +};
>> +
>
> 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.
Thanks, I will not enable them in the next version.
Best
Markus
>
>> #include "k3-am62a-ti-ipc-firmware.dtsi"
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 289 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v4 6/6] arm64: dts: ti: k3-am62p5-sk: Set wakeup-source system-states
2025-10-30 9:17 [PATCH v4 0/6] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann (TI.com)
` (4 preceding siblings ...)
2025-10-30 9:17 ` [PATCH v4 5/6] arm64: dts: ti: k3-am62a7-sk: " Markus Schneider-Pargmann (TI.com)
@ 2025-10-30 9:17 ` Markus Schneider-Pargmann (TI.com)
2025-11-03 3:52 ` Vignesh Raghavendra
5 siblings, 1 reply; 10+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-10-30 9:17 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Vishal Mahaveer,
Kevin Hilman, Dhruva Gole, Sebin Francis, Kendall Willis,
Akashdeep Kaur, Markus Schneider-Pargmann (TI.com)
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@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 71 +++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
index a064a632680ec69dba9dbe591fd49caeb9ac1111..36116210fbe6111ee8bb9a1736ed02bec0f20b67 100644
--- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
@@ -716,12 +716,52 @@ AM62PX_MCU_IOPAD(0x028, PIN_OUTPUT, 0) /* (D7) WKUP_UART0_TXD */
>;
bootph-all;
};
+
+ mcu_mcan0_tx_pins_default: mcu-mcan0-tx-default-pins {
+ pinctrl-single,pins = <
+ AM62PX_MCU_IOPAD(0x034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */
+ >;
+ };
+
+ mcu_mcan0_rx_pins_default: mcu-mcan0-rx-default-pins {
+ pinctrl-single,pins = <
+ AM62PX_MCU_IOPAD(0x038, PIN_INPUT, 0) /* (B3) MCU_MCAN0_RX */
+ >;
+ };
+
+ mcu_mcan0_rx_pins_wakeup: mcu-mcan0-rx-wakeup-pins {
+ pinctrl-single,pins = <
+ AM62PX_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 = <
+ AM62PX_MCU_IOPAD(0x03c, PIN_OUTPUT, 0) /* (E5) MCU_MCAN1_TX */
+ >;
+ };
+
+ mcu_mcan1_rx_pins_default: mcu-mcan1-rx-default-pins {
+ pinctrl-single,pins = <
+ AM62PX_MCU_IOPAD(0x040, PIN_INPUT, 0) /* (D4) MCU_MCAN1_RX */
+ >;
+ };
+
+ mcu_mcan1_rx_pins_wakeup: mcu-mcan1-rx-wakeup-pins {
+ pinctrl-single,pins = <
+ AM62PX_MCU_IOPAD(0x040, PIN_INPUT | PIN_WKUP_EN, 0) /* (D4) MCU_MCAN1_RX */
+ >;
+ };
};
&wkup_uart0 {
/* WKUP UART0 is used by DM firmware */
pinctrl-names = "default";
pinctrl-0 = <&wkup_uart0_pins_default>;
+ wakeup-source = <&system_io_ddr>,
+ <&system_deep_sleep>,
+ <&system_mcu_only>,
+ <&system_standby>;
status = "reserved";
bootph-all;
};
@@ -763,4 +803,35 @@ &epwm1 {
status = "okay";
};
+&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>;
+};
+
#include "k3-am62p-ti-ipc-firmware.dtsi"
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v4 6/6] arm64: dts: ti: k3-am62p5-sk: Set wakeup-source system-states
2025-10-30 9:17 ` [PATCH v4 6/6] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI.com)
@ 2025-11-03 3:52 ` Vignesh Raghavendra
0 siblings, 0 replies; 10+ messages in thread
From: Vignesh Raghavendra @ 2025-11-03 3:52 UTC (permalink / raw)
To: Markus Schneider-Pargmann (TI.com), Nishanth Menon, Tero Kristo,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Vishal Mahaveer,
Kevin Hilman, Dhruva Gole, Sebin Francis, Kendall Willis,
Akashdeep Kaur
On 30/10/25 14:47, 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@baylibre.com>
> ---
> arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 71 +++++++++++++++++++++++++++++++++
> 1 file changed, 71 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
> index a064a632680ec69dba9dbe591fd49caeb9ac1111..36116210fbe6111ee8bb9a1736ed02bec0f20b67 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
> @@ -716,12 +716,52 @@ AM62PX_MCU_IOPAD(0x028, PIN_OUTPUT, 0) /* (D7) WKUP_UART0_TXD */
> >;
> bootph-all;
> };
> +
> + mcu_mcan0_tx_pins_default: mcu-mcan0-tx-default-pins {
> + pinctrl-single,pins = <
> + AM62PX_MCU_IOPAD(0x034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */
> + >;
> + };
> +
> + mcu_mcan0_rx_pins_default: mcu-mcan0-rx-default-pins {
> + pinctrl-single,pins = <
> + AM62PX_MCU_IOPAD(0x038, PIN_INPUT, 0) /* (B3) MCU_MCAN0_RX */
> + >;
> + };
> +
> + mcu_mcan0_rx_pins_wakeup: mcu-mcan0-rx-wakeup-pins {
> + pinctrl-single,pins = <
> + AM62PX_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 = <
> + AM62PX_MCU_IOPAD(0x03c, PIN_OUTPUT, 0) /* (E5) MCU_MCAN1_TX */
> + >;
> + };
> +
> + mcu_mcan1_rx_pins_default: mcu-mcan1-rx-default-pins {
> + pinctrl-single,pins = <
> + AM62PX_MCU_IOPAD(0x040, PIN_INPUT, 0) /* (D4) MCU_MCAN1_RX */
> + >;
> + };
> +
> + mcu_mcan1_rx_pins_wakeup: mcu-mcan1-rx-wakeup-pins {
> + pinctrl-single,pins = <
> + AM62PX_MCU_IOPAD(0x040, PIN_INPUT | PIN_WKUP_EN, 0) /* (D4) MCU_MCAN1_RX */
> + >;
> + };
> };
>
> &wkup_uart0 {
> /* WKUP UART0 is used by DM firmware */
> pinctrl-names = "default";
> pinctrl-0 = <&wkup_uart0_pins_default>;
> + wakeup-source = <&system_io_ddr>,
> + <&system_deep_sleep>,
> + <&system_mcu_only>,
> + <&system_standby>;
> status = "reserved";
> bootph-all;
> };
> @@ -763,4 +803,35 @@ &epwm1 {
> status = "okay";
> };
>
> +&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";
> +};
Same comment as 5/6
> +
> +&mcu_uart0 {
> + wakeup-source = <&system_io_ddr>,
> + <&system_deep_sleep>,
> + <&system_mcu_only>,
> + <&system_standby>;
> +};
> +
> #include "k3-am62p-ti-ipc-firmware.dtsi"
>
--
Regards
Vignesh
https://ti.com/opensource
^ permalink raw reply [flat|nested] 10+ messages in thread