* [PATCH v2 1/7] arm64: dts: ti: k3-pinctrl: Add WKUP_EN flag
2025-08-12 9:15 [PATCH v2 0/7] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann
@ 2025-08-12 9:15 ` Markus Schneider-Pargmann
2025-08-27 19:14 ` Kendall Willis
2025-08-12 9:15 ` [PATCH v2 2/7] arm64: dts: ti: k3-am62: Define possible system states Markus Schneider-Pargmann
` (5 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Markus Schneider-Pargmann @ 2025-08-12 9:15 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
WKUP_EN is a flag to enable pin wakeup. Any activity will wakeup the SoC
in that case.
Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
---
arch/arm64/boot/dts/ti/k3-pinctrl.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-pinctrl.h b/arch/arm64/boot/dts/ti/k3-pinctrl.h
index c0f09be8d3f94a70812b66c3f91626aac35f4026..d3b0ecdf1a4a4de25ee6121ec9e62d1c7df26eb9 100644
--- a/arch/arm64/boot/dts/ti/k3-pinctrl.h
+++ b/arch/arm64/boot/dts/ti/k3-pinctrl.h
@@ -19,6 +19,7 @@
#define DS_OUT_VAL_SHIFT (26)
#define DS_PULLUD_EN_SHIFT (27)
#define DS_PULLTYPE_SEL_SHIFT (28)
+#define WKUP_EN_SHIFT (29)
/* Schmitt trigger configuration */
#define ST_DISABLE (0 << ST_EN_SHIFT)
@@ -65,6 +66,7 @@
#define PIN_DS_PULLUD_DISABLE (1 << DS_PULLUD_EN_SHIFT)
#define PIN_DS_PULL_DOWN (0 << DS_PULLTYPE_SEL_SHIFT)
#define PIN_DS_PULL_UP (1 << DS_PULLTYPE_SEL_SHIFT)
+#define WKUP_EN (1 << WKUP_EN_SHIFT)
/* Default mux configuration for gpio-ranges to use with pinctrl */
#define PIN_GPIO_RANGE_IOPAD (PIN_INPUT | 7)
--
2.50.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH v2 1/7] arm64: dts: ti: k3-pinctrl: Add WKUP_EN flag
2025-08-12 9:15 ` [PATCH v2 1/7] arm64: dts: ti: k3-pinctrl: Add WKUP_EN flag Markus Schneider-Pargmann
@ 2025-08-27 19:14 ` Kendall Willis
2025-09-16 21:58 ` Kendall Willis
0 siblings, 1 reply; 15+ messages in thread
From: Kendall Willis @ 2025-08-27 19:14 UTC (permalink / raw)
To: Markus Schneider-Pargmann, 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, Akashdeep Kaur
On 8/12/25 04:15, Markus Schneider-Pargmann wrote:
> WKUP_EN is a flag to enable pin wakeup. Any activity will wakeup the SoC
> in that case.
>
> Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
> ---
> arch/arm64/boot/dts/ti/k3-pinctrl.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-pinctrl.h b/arch/arm64/boot/dts/ti/k3-pinctrl.h
> index c0f09be8d3f94a70812b66c3f91626aac35f4026..d3b0ecdf1a4a4de25ee6121ec9e62d1c7df26eb9 100644
> --- a/arch/arm64/boot/dts/ti/k3-pinctrl.h
> +++ b/arch/arm64/boot/dts/ti/k3-pinctrl.h
> @@ -19,6 +19,7 @@
> #define DS_OUT_VAL_SHIFT (26)
> #define DS_PULLUD_EN_SHIFT (27)
> #define DS_PULLTYPE_SEL_SHIFT (28)
> +#define WKUP_EN_SHIFT (29)
>
> /* Schmitt trigger configuration */
> #define ST_DISABLE (0 << ST_EN_SHIFT)
> @@ -65,6 +66,7 @@
> #define PIN_DS_PULLUD_DISABLE (1 << DS_PULLUD_EN_SHIFT)
> #define PIN_DS_PULL_DOWN (0 << DS_PULLTYPE_SEL_SHIFT)
> #define PIN_DS_PULL_UP (1 << DS_PULLTYPE_SEL_SHIFT)
> +#define WKUP_EN (1 << WKUP_EN_SHIFT)
>
> /* Default mux configuration for gpio-ranges to use with pinctrl */
> #define PIN_GPIO_RANGE_IOPAD (PIN_INPUT | 7)
>
Reviewed-by: Kendall Willis <k-willis@ti.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/7] arm64: dts: ti: k3-pinctrl: Add WKUP_EN flag
2025-08-27 19:14 ` Kendall Willis
@ 2025-09-16 21:58 ` Kendall Willis
0 siblings, 0 replies; 15+ messages in thread
From: Kendall Willis @ 2025-09-16 21:58 UTC (permalink / raw)
To: Markus Schneider-Pargmann, 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, Akashdeep Kaur
On 8/27/25 14:14, Kendall Willis wrote:
> On 8/12/25 04:15, Markus Schneider-Pargmann wrote:
>> WKUP_EN is a flag to enable pin wakeup. Any activity will wakeup the SoC
>> in that case.
>>
>> Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
>> ---
>> arch/arm64/boot/dts/ti/k3-pinctrl.h | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-pinctrl.h b/arch/arm64/boot/
>> dts/ti/k3-pinctrl.h
>> index
>> c0f09be8d3f94a70812b66c3f91626aac35f4026..d3b0ecdf1a4a4de25ee6121ec9e62d1c7df26eb9 100644
>> --- a/arch/arm64/boot/dts/ti/k3-pinctrl.h
>> +++ b/arch/arm64/boot/dts/ti/k3-pinctrl.h
>> @@ -19,6 +19,7 @@
>> #define DS_OUT_VAL_SHIFT (26)
>> #define DS_PULLUD_EN_SHIFT (27)
>> #define DS_PULLTYPE_SEL_SHIFT (28)
>> +#define WKUP_EN_SHIFT (29)
>> /* Schmitt trigger configuration */
>> #define ST_DISABLE (0 << ST_EN_SHIFT)
>> @@ -65,6 +66,7 @@
>> #define PIN_DS_PULLUD_DISABLE (1 << DS_PULLUD_EN_SHIFT)
>> #define PIN_DS_PULL_DOWN (0 << DS_PULLTYPE_SEL_SHIFT)
>> #define PIN_DS_PULL_UP (1 << DS_PULLTYPE_SEL_SHIFT)
>> +#define WKUP_EN (1 << WKUP_EN_SHIFT)
>> /* Default mux configuration for gpio-ranges to use with pinctrl */
>> #define PIN_GPIO_RANGE_IOPAD (PIN_INPUT | 7)
>>
>
> Reviewed-by: Kendall Willis <k-willis@ti.com>
FYI: A series by Akash [1] has been picked in linux-next. It includes
the WKUP_EN macro but defined differently as PIN_WKUP_EN. The series
needs to be rebased to account for that macro.
[1] https://lore.kernel.org/all/20250909044108.2541534-1-a-kaur@ti.com/
Best,
Kendall Willis
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 2/7] arm64: dts: ti: k3-am62: Define possible system states
2025-08-12 9:15 [PATCH v2 0/7] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann
2025-08-12 9:15 ` [PATCH v2 1/7] arm64: dts: ti: k3-pinctrl: Add WKUP_EN flag Markus Schneider-Pargmann
@ 2025-08-12 9:15 ` Markus Schneider-Pargmann
2025-09-23 18:03 ` Kendall Willis
2025-08-12 9:15 ` [PATCH v2 3/7] arm64: dts: ti: k3-am62a: " Markus Schneider-Pargmann
` (4 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Markus Schneider-Pargmann @ 2025-08-12 9:15 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
Add the system states that are available on am62 SoCs.
Signed-off-by: Markus Schneider-Pargmann <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.50.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH v2 2/7] arm64: dts: ti: k3-am62: Define possible system states
2025-08-12 9:15 ` [PATCH v2 2/7] arm64: dts: ti: k3-am62: Define possible system states Markus Schneider-Pargmann
@ 2025-09-23 18:03 ` Kendall Willis
0 siblings, 0 replies; 15+ messages in thread
From: Kendall Willis @ 2025-09-23 18:03 UTC (permalink / raw)
To: Markus Schneider-Pargmann
Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel, Vishal Mahaveer, Kevin Hilman, Dhruva Gole,
Sebin Francis, Akashdeep Kaur
On 11:15-20250812, Markus Schneider-Pargmann wrote:
> Add the system states that are available on am62 SoCs.
>
nit: Change "am62 SoCs" to "TI AM62x SoCs"
Additionally, it would be nice to add what sleep states are supported in
the commit message.
These comments also go for the other two patches that are titled
"Define possible system states".
Best,
Kendall Willis
> Signed-off-by: Markus Schneider-Pargmann <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.50.1
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 3/7] arm64: dts: ti: k3-am62a: Define possible system states
2025-08-12 9:15 [PATCH v2 0/7] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann
2025-08-12 9:15 ` [PATCH v2 1/7] arm64: dts: ti: k3-pinctrl: Add WKUP_EN flag Markus Schneider-Pargmann
2025-08-12 9:15 ` [PATCH v2 2/7] arm64: dts: ti: k3-am62: Define possible system states Markus Schneider-Pargmann
@ 2025-08-12 9:15 ` Markus Schneider-Pargmann
2025-08-12 9:15 ` [PATCH v2 4/7] arm64: dts: ti: k3-am62p: " Markus Schneider-Pargmann
` (3 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Markus Schneider-Pargmann @ 2025-08-12 9:15 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
Add the system states that are available on am62a SoCs.
Signed-off-by: Markus Schneider-Pargmann <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.50.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* [PATCH v2 4/7] arm64: dts: ti: k3-am62p: Define possible system states
2025-08-12 9:15 [PATCH v2 0/7] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann
` (2 preceding siblings ...)
2025-08-12 9:15 ` [PATCH v2 3/7] arm64: dts: ti: k3-am62a: " Markus Schneider-Pargmann
@ 2025-08-12 9:15 ` Markus Schneider-Pargmann
2025-08-12 9:15 ` [PATCH v2 5/7] arm64: dts: ti: k3-am62-lp-sk: Set wakeup-source system-states Markus Schneider-Pargmann
` (2 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Markus Schneider-Pargmann @ 2025-08-12 9:15 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
Add the system states that are available on am62p SoCs.
Signed-off-by: Markus Schneider-Pargmann <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.50.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* [PATCH v2 5/7] arm64: dts: ti: k3-am62-lp-sk: Set wakeup-source system-states
2025-08-12 9:15 [PATCH v2 0/7] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann
` (3 preceding siblings ...)
2025-08-12 9:15 ` [PATCH v2 4/7] arm64: dts: ti: k3-am62p: " Markus Schneider-Pargmann
@ 2025-08-12 9:15 ` Markus Schneider-Pargmann
2025-09-23 18:16 ` Kendall Willis
2025-08-12 9:15 ` [PATCH v2 6/7] arm64: dts: ti: k3-am62a7-sk: " Markus Schneider-Pargmann
2025-08-12 9:15 ` [PATCH v2 7/7] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann
6 siblings, 1 reply; 15+ messages in thread
From: Markus Schneider-Pargmann @ 2025-08-12 9:15 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
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. As
IO+DDR is not supported on am62, 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 <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 4609f366006e4cdf0c162f72634ce90623f60a90..0314f857ea05acc4ffc62bccb5184e58d19a6103 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
@@ -268,3 +268,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 | 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 */
+ >;
+ };
+};
--
2.50.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH v2 5/7] arm64: dts: ti: k3-am62-lp-sk: Set wakeup-source system-states
2025-08-12 9:15 ` [PATCH v2 5/7] arm64: dts: ti: k3-am62-lp-sk: Set wakeup-source system-states Markus Schneider-Pargmann
@ 2025-09-23 18:16 ` Kendall Willis
0 siblings, 0 replies; 15+ messages in thread
From: Kendall Willis @ 2025-09-23 18:16 UTC (permalink / raw)
To: Markus Schneider-Pargmann
Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel, Vishal Mahaveer, Kevin Hilman, Dhruva Gole,
Sebin Francis, Akashdeep Kaur
Hi Markus,
On 11:15-20250812, 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. As
> IO+DDR is not supported on am62, the UARTs are not added in this patch.
nit: s/"am62"/"AM62x"
nit: s/"IO+DDR"/"I/O Only + DDR"
Logic looks good, but as said previously it needs to be rebased due to
WKUP_EN macro.
Best,
Kendall Willis
>
> 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 <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 4609f366006e4cdf0c162f72634ce90623f60a90..0314f857ea05acc4ffc62bccb5184e58d19a6103 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
> @@ -268,3 +268,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 | 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 */
> + >;
> + };
> +};
>
> --
> 2.50.1
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 6/7] arm64: dts: ti: k3-am62a7-sk: Set wakeup-source system-states
2025-08-12 9:15 [PATCH v2 0/7] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann
` (4 preceding siblings ...)
2025-08-12 9:15 ` [PATCH v2 5/7] arm64: dts: ti: k3-am62-lp-sk: Set wakeup-source system-states Markus Schneider-Pargmann
@ 2025-08-12 9:15 ` Markus Schneider-Pargmann
2025-09-23 18:22 ` Kendall Willis
2025-08-12 9:15 ` [PATCH v2 7/7] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann
6 siblings, 1 reply; 15+ messages in thread
From: Markus Schneider-Pargmann @ 2025-08-12 9:15 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
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 <msp@baylibre.com>
- Combine k3-am62a7-sk.dts devicetree nodes
---
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 bceead5e288e6d78c671baf0afabd1a9aa23fbee..55cab49f26382f08e2cc93d17afc424af8c59caa 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -257,6 +257,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";
};
@@ -450,6 +454,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 = <
+ 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 */
+ >;
+ };
};
&mcu_gpio0 {
@@ -935,3 +975,34 @@ 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>;
+};
--
2.50.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH v2 6/7] arm64: dts: ti: k3-am62a7-sk: Set wakeup-source system-states
2025-08-12 9:15 ` [PATCH v2 6/7] arm64: dts: ti: k3-am62a7-sk: " Markus Schneider-Pargmann
@ 2025-09-23 18:22 ` Kendall Willis
0 siblings, 0 replies; 15+ messages in thread
From: Kendall Willis @ 2025-09-23 18:22 UTC (permalink / raw)
To: Markus Schneider-Pargmann
Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel, Vishal Mahaveer, Kevin Hilman, Dhruva Gole,
Sebin Francis, Akashdeep Kaur
On 11:15-20250812, 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.
nit: s/"IO+DDR"/"I/O Only + DDR"
>
> 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 <msp@baylibre.com>
>
> - Combine k3-am62a7-sk.dts devicetree nodes
> ---
> 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 bceead5e288e6d78c671baf0afabd1a9aa23fbee..55cab49f26382f08e2cc93d17afc424af8c59caa 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> @@ -257,6 +257,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";
> };
>
> @@ -450,6 +454,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 = <
> + 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 */
> + >;
> + };
AM62AX_MCU_IOPAD should be used for consistency.
Best,
Kendall Willis
> };
>
> &mcu_gpio0 {
> @@ -935,3 +975,34 @@ 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>;
> +};
>
> --
> 2.50.1
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 7/7] arm64: dts: ti: k3-am62p5-sk: Set wakeup-source system-states
2025-08-12 9:15 [PATCH v2 0/7] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes Markus Schneider-Pargmann
` (5 preceding siblings ...)
2025-08-12 9:15 ` [PATCH v2 6/7] arm64: dts: ti: k3-am62a7-sk: " Markus Schneider-Pargmann
@ 2025-08-12 9:15 ` Markus Schneider-Pargmann
2025-09-23 18:24 ` Kendall Willis
6 siblings, 1 reply; 15+ messages in thread
From: Markus Schneider-Pargmann @ 2025-08-12 9:15 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
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 <msp@baylibre.com>
- Merge devicetree nodes in k3-am62p5-sk.dts
---
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 899da7896563b43021de14eda1b0058a5c6d36da..a2dffb5e243f543c90081eeacdc0758b38bd0eb9 100644
--- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
@@ -762,12 +762,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 = <
+ 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 */
+ >;
+ };
};
&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;
};
@@ -808,3 +848,34 @@ &epwm1 {
pinctrl-0 = <&main_epwm1_pins_default>;
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>;
+};
--
2.50.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH v2 7/7] arm64: dts: ti: k3-am62p5-sk: Set wakeup-source system-states
2025-08-12 9:15 ` [PATCH v2 7/7] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann
@ 2025-09-23 18:24 ` Kendall Willis
2025-09-24 9:36 ` Markus Schneider-Pargmann
0 siblings, 1 reply; 15+ messages in thread
From: Kendall Willis @ 2025-09-23 18:24 UTC (permalink / raw)
To: Markus Schneider-Pargmann
Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel, Vishal Mahaveer, Kevin Hilman, Dhruva Gole,
Sebin Francis, Akashdeep Kaur
On 11:15-20250812, 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.
>
nit: s/"IO+DD"/"I/O Only + DDR"
> 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 <msp@baylibre.com>
>
> - Merge devicetree nodes in k3-am62p5-sk.dts
> ---
> 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 899da7896563b43021de14eda1b0058a5c6d36da..a2dffb5e243f543c90081eeacdc0758b38bd0eb9 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
> @@ -762,12 +762,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 = <
> + 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 */
> + >;
> + };
> };
>
AM62PX_MCU_IOPAD should be used for consistency.
Best,
Kendall Willis
> &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;
> };
> @@ -808,3 +848,34 @@ &epwm1 {
> pinctrl-0 = <&main_epwm1_pins_default>;
> 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>;
> +};
>
> --
> 2.50.1
>
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH v2 7/7] arm64: dts: ti: k3-am62p5-sk: Set wakeup-source system-states
2025-09-23 18:24 ` Kendall Willis
@ 2025-09-24 9:36 ` Markus Schneider-Pargmann
0 siblings, 0 replies; 15+ messages in thread
From: Markus Schneider-Pargmann @ 2025-09-24 9:36 UTC (permalink / raw)
To: Kendall Willis, Markus Schneider-Pargmann
Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel, Vishal Mahaveer, Kevin Hilman, Dhruva Gole,
Sebin Francis, Akashdeep Kaur
[-- Attachment #1: Type: text/plain, Size: 2668 bytes --]
Hi Kendall,
On Tue Sep 23, 2025 at 8:24 PM CEST, Kendall Willis wrote:
> On 11:15-20250812, 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.
>>
>
> nit: s/"IO+DD"/"I/O Only + DDR"
>
>> 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 <msp@baylibre.com>
>>
>> - Merge devicetree nodes in k3-am62p5-sk.dts
>> ---
>> 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 899da7896563b43021de14eda1b0058a5c6d36da..a2dffb5e243f543c90081eeacdc0758b38bd0eb9 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
>> +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
>> @@ -762,12 +762,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 = <
>> + 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 */
>> + >;
>> + };
>> };
>>
>
> AM62PX_MCU_IOPAD should be used for consistency.
Thanks for your reviews, everything fixed for the next version.
Best
Markus
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 289 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread