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 ++++++++++++++++++++++++++++++++ 6 files changed, 278 insertions(+)
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
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 v2: https://lore.kernel.org/r/20250812-topic-am62-dt-partialio-v6-15-v2-0-25352364a0ac@baylibre.com
- Link to v1: https://lore.kernel.org/r/20250421-topic-am62-dt-partialio-v6-15-v1-0-6ced30aafddb@baylibre.com
- 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
Changes in v3:
- Drop patch to add WKUP_EN and rebase to linux-next to base on the
patch that accepted which adds PIN_WKUP_EN instead
https://lore.kernel.org/all/20250909044108.2541534-1-a-kaur@ti.com/
- Fix small typos in the commit messages
- Use AM62AX_MCU_IOPAD for am62a and AM62PX_MCU_IOPAD for am62p
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 (TI.com) <msp@baylibre.com>
---
Markus Schneider-Pargmann (TI.com) (6):
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 ++++++++++++++++++++++++++++++++
6 files changed, 278 insertions(+)
---
base-commit: 24c4d4041c2ec11c47baf6ea54f9379cf88809fc
change-id: 20250415-topic-am62-dt-partialio-v6-15-327dd1ff17da
prerequisite-change-id: 20241009-topic-mcan-wakeup-source-v6-12-8c1d69931bd8:v10
prerequisite-patch-id: 40ff771d13dccae91c04ab120aa1b5e406b66e47
prerequisite-patch-id: 830b339ea452edd750b04f719da91e721be630cb
prerequisite-patch-id: 2c9142d2bc47e64c49b7b8a7ca20a62a0be14870
prerequisite-patch-id: aa64f7e9fcc3fcbb3cb871a05a07f398f3aa8231
Best regards,
--
Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
On Wed Oct 1, 2025 at 4:34 PM CEST, Markus Schneider-Pargmann (TI.com) wrote: > 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: I missed updating the lore links, here they are: > 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 v10: https://lore.kernel.org/r/20251001-topic-mcan-wakeup-source-v6-12-v10-0-4ab508ac5d1e@baylibre.com > 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 v8: https://lore.kernel.org/r/20251001-topic-am62-partialio-v6-12-b4-v8-0-76a742605110@baylibre.com Best Markus > > 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 v2: https://lore.kernel.org/r/20250812-topic-am62-dt-partialio-v6-15-v2-0-25352364a0ac@baylibre.com > - Link to v1: https://lore.kernel.org/r/20250421-topic-am62-dt-partialio-v6-15-v1-0-6ced30aafddb@baylibre.com > - 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 > > Changes in v3: > - Drop patch to add WKUP_EN and rebase to linux-next to base on the > patch that accepted which adds PIN_WKUP_EN instead > https://lore.kernel.org/all/20250909044108.2541534-1-a-kaur@ti.com/ > - Fix small typos in the commit messages > - Use AM62AX_MCU_IOPAD for am62a and AM62PX_MCU_IOPAD for am62p > > 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 (TI.com) <msp@baylibre.com> > --- > Markus Schneider-Pargmann (TI.com) (6): > 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 ++++++++++++++++++++++++++++++++ > 6 files changed, 278 insertions(+) > --- > base-commit: 24c4d4041c2ec11c47baf6ea54f9379cf88809fc > change-id: 20250415-topic-am62-dt-partialio-v6-15-327dd1ff17da > prerequisite-change-id: 20241009-topic-mcan-wakeup-source-v6-12-8c1d69931bd8:v10 > prerequisite-patch-id: 40ff771d13dccae91c04ab120aa1b5e406b66e47 > prerequisite-patch-id: 830b339ea452edd750b04f719da91e721be630cb > prerequisite-patch-id: 2c9142d2bc47e64c49b7b8a7ca20a62a0be14870 > prerequisite-patch-id: aa64f7e9fcc3fcbb3cb871a05a07f398f3aa8231 > > Best regards,
© 2016 - 2026 Red Hat, Inc.