[PATCH v2 0/7] arm64: dts: ti: k3-am62: Add wakeup-sources for low power modes
From: Markus Schneider-Pargmann <msp@baylibre.com>
Date: 2025-08-12 09:16:31
Also in:
linux-devicetree, lkml
Hi, This series adds devicetree changes needed for Partial-IO support on TI am62, am62a, and am62p SoCs. It defines system states for various low power modes and configures the wakeup-sources for devices in the CANUART group. Depending on the SoC and board details, some low power modes may not be available, so the wakeup-sources are described in the board files. The series also adds the necessary pinctrl settings required for proper wakeup functionality. Partial-IO Overview ------------------ Partial-IO is a low power system state in which nearly everything is turned off except the pins of the CANUART group (mcu_mcan0, mcu_mcan1, wkup_uart0 and mcu_uart0). These devices can trigger a wakeup of the system on pin activity. Note that this does not resume the system as the DDR is off as well. So this state can be considered a power-off state with wakeup capabilities. A documentation can also be found in section 6.2.4 in the TRM: https://www.ti.com/lit/pdf/spruiv7 Implementation Details ---------------------- The complete Partial-IO feature requires three coordinated series, each handling a different aspect of the implementation: 1. m_can driver series: Implements device-specific wakeup functionality for m_can devices, allowing them to be set as wakeup sources. https://gitlab.baylibre.com/msp8/linux/-/tree/topic/mcan-wakeup-source/v6.17?ref_type=heads https://lore.kernel.org/r/20250812-topic-mcan-wakeup-source-v6-12-v8-0-6972a810d63b@baylibre.com (local) 2. This series (devicetree): Defines system states and wakeup sources in the devicetree for am62, am62a and am62p. 3. TI-SCI firmware series: Implements the firmware interface to enter Partial-IO mode when appropriate wakeup sources are enabled. https://gitlab.baylibre.com/msp8/linux/-/tree/topic/tisci-partialio/v6.17?ref_type=heads Devicetree Bindings ------------------- This series depends on the dt-schema pull request that adds bindings for system-idle-states and updates the binding for wakeup-source: https://github.com/devicetree-org/dt-schema/pull/150 This is merged now in upstream dt-schema. These new bindings allow us to define the system states and reference them from device wakeup-source properties. Testing ------- A test branch is available here that includes all patches required to test Partial-IO: https://gitlab.baylibre.com/msp8/linux/-/tree/integration/am62-partialio/v6.17?ref_type=heads After enabling Wake-on-LAN the system can be powered off and will enter the Partial-IO state in which it can be woken up by activity on the specific pins: ethtool -s can0 wol p ethtool -s can1 wol p poweroff I tested these patches on am62-lp-sk. Best, Markus Previous versions ----------------- - Link to v1: https://lore.kernel.org/r/20250421-topic-am62-dt-partialio-v6-15-v1-0-6ced30aafddb@baylibre.com (local) - As part of the series "firmware: ti_sci: Partial-IO support" https://lore.kernel.org/r/20250306-topic-am62-partialio-v6-12-b4-v5-0-f9323d3744a2@baylibre.com (local) Changes in v2: - Combine k3-am62a7-sk.dts devicetree nodes with existing ones - Combine k3-am62p5-sk.dts devicetree nodes with existing ones - Update the idle-state-name properties to the new names from the dt-schema - Rebase to 6.17-rc1 Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com> --- Markus Schneider-Pargmann (7): arm64: dts: ti: k3-pinctrl: Add WKUP_EN flag arm64: dts: ti: k3-am62: Define possible system states arm64: dts: ti: k3-am62a: Define possible system states arm64: dts: ti: k3-am62p: Define possible system states arm64: dts: ti: k3-am62-lp-sk: Set wakeup-source system-states arm64: dts: ti: k3-am62a7-sk: Set wakeup-source system-states arm64: dts: ti: k3-am62p5-sk: Set wakeup-source system-states arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts | 60 +++++++++++++++++++++++++++ arch/arm64/boot/dts/ti/k3-am62.dtsi | 22 ++++++++++ arch/arm64/boot/dts/ti/k3-am62a.dtsi | 27 ++++++++++++ arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 71 ++++++++++++++++++++++++++++++++ arch/arm64/boot/dts/ti/k3-am62p.dtsi | 27 ++++++++++++ arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 71 ++++++++++++++++++++++++++++++++ arch/arm64/boot/dts/ti/k3-pinctrl.h | 2 + 7 files changed, 280 insertions(+) --- base-commit: 062b3e4a1f880f104a8d4b90b767788786aa7b78 change-id: 20250415-topic-am62-dt-partialio-v6-15-327dd1ff17da prerequisite-change-id: 20241009-topic-mcan-wakeup-source-v6-12-8c1d69931bd8:v8 prerequisite-patch-id: 02b7142f56c849c9a3faab2d2871805febd647aa prerequisite-patch-id: 830b339ea452edd750b04f719da91e721be630cb prerequisite-patch-id: 2c9142d2bc47e64c49b7b8a7ca20a62a0be14870 prerequisite-patch-id: f7652a616dca17fd5e4a7e5cba59de6a6a36079f Best regards, -- Markus Schneider-Pargmann [off-list ref]