mbox series

[0/6] firmware: ti_sci: Partial-IO support

Message ID 20240523080225.1288617-1-msp@baylibre.com (mailing list archive)
Headers show
Series firmware: ti_sci: Partial-IO support | expand

Message

Markus Schneider-Pargmann May 23, 2024, 8:02 a.m. UTC
Hi,

Partial-IO is a poweroff SoC state with a few pingroups active for
wakeup. This state can be entered by sending a TI_SCI PREPARE_SLEEP
message.

The message is sent on poweroff if one of the potential wakeup sources
for this power state are wakeup enabled. A list of potential wakeup
sources for the specific SoC is described in the devicetree. The wakeup
sources can be individually enabled/disabled by the user in the running
system.

The series is based on Andrew Davis accepted patches:
  [PATCH 0/4] Unconditionally register TI-SCI reset handler
  https://lore.kernel.org/lkml/20240326223730.54639-1-afd@ti.com/

This series is part of a bigger topic to support Partial-IO on am62,
am62a and am62p. Partial-IO is a poweroff state in which some pins are
able to wakeup the SoC. In detail MCU m_can and two serial port pins can
trigger the wakeup.

These two other series are relevant for the support of Partial-IO:

 - serial: 8250: omap: Add am62 wakeup support
 - can: m_can: Add am62 wakeup support

A test branch is available here that includes all patches required to test
Partial-IO:

https://gitlab.baylibre.com/msp8/linux/-/tree/integration/am62-lp-sk-partialio/v6.9?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

Markus Schneider-Pargmann (5):
  dt-bindings: ti, sci: Add property for partial-io-wakeup-sources
  firmware: ti_sci: Partial-IO support
  arm64: dts: ti: k3-pinctrl: Add WKUP_EN flag
  arm64: dts: ti: k3-am62: Add partial-io wakeup sources
  arm64: dts: ti: k3-am62a: Add partial-io wakeup sources

Vibhore Vardhan (1):
  arm64: dts: ti: k3-am62p: Add partial-io wakeup sources

 .../bindings/arm/keystone/ti,sci.yaml         |   6 +
 arch/arm64/boot/dts/ti/k3-am62.dtsi           |   4 +
 arch/arm64/boot/dts/ti/k3-am62a.dtsi          |   4 +
 arch/arm64/boot/dts/ti/k3-am62p.dtsi          |   4 +
 arch/arm64/boot/dts/ti/k3-pinctrl.h           |   3 +
 drivers/firmware/ti_sci.c                     | 135 +++++++++++++++++-
 drivers/firmware/ti_sci.h                     |  31 ++++
 7 files changed, 186 insertions(+), 1 deletion(-)

Comments

Nishanth Menon May 24, 2024, 5:53 a.m. UTC | #1
On 10:02-20240523, Markus Schneider-Pargmann wrote:
> Hi,
> 
> Partial-IO is a poweroff SoC state with a few pingroups active for
> wakeup. This state can be entered by sending a TI_SCI PREPARE_SLEEP
> message.
> 
> The message is sent on poweroff if one of the potential wakeup sources
> for this power state are wakeup enabled. A list of potential wakeup
> sources for the specific SoC is described in the devicetree. The wakeup
> sources can be individually enabled/disabled by the user in the running
> system.
> 
> The series is based on Andrew Davis accepted patches:
>   [PATCH 0/4] Unconditionally register TI-SCI reset handler
>   https://lore.kernel.org/lkml/20240326223730.54639-1-afd@ti.com/
> 
> This series is part of a bigger topic to support Partial-IO on am62,
> am62a and am62p. Partial-IO is a poweroff state in which some pins are
> able to wakeup the SoC. In detail MCU m_can and two serial port pins can
> trigger the wakeup.
> 
> These two other series are relevant for the support of Partial-IO:
> 
>  - serial: 8250: omap: Add am62 wakeup support
>  - can: m_can: Add am62 wakeup support

In future, please provide the lore url to the dependency patches (I
understand you were probably posting them back to back, but if you wait some
10-15 mins after the dependent series are posted, they will appear in
the lore.kernel.org and you could provide those links). That would save
us maintainers having to lookup based off subject line.

> 
> A test branch is available here that includes all patches required to test
> Partial-IO:
> 
> https://gitlab.baylibre.com/msp8/linux/-/tree/integration/am62-lp-sk-partialio/v6.9?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
> 
> Markus Schneider-Pargmann (5):
>   dt-bindings: ti, sci: Add property for partial-io-wakeup-sources
>   firmware: ti_sci: Partial-IO support
>   arm64: dts: ti: k3-pinctrl: Add WKUP_EN flag
>   arm64: dts: ti: k3-am62: Add partial-io wakeup sources
>   arm64: dts: ti: k3-am62a: Add partial-io wakeup sources
> 
> Vibhore Vardhan (1):
>   arm64: dts: ti: k3-am62p: Add partial-io wakeup sources
> 
>  .../bindings/arm/keystone/ti,sci.yaml         |   6 +
>  arch/arm64/boot/dts/ti/k3-am62.dtsi           |   4 +
>  arch/arm64/boot/dts/ti/k3-am62a.dtsi          |   4 +
>  arch/arm64/boot/dts/ti/k3-am62p.dtsi          |   4 +
>  arch/arm64/boot/dts/ti/k3-pinctrl.h           |   3 +
>  drivers/firmware/ti_sci.c                     | 135 +++++++++++++++++-
>  drivers/firmware/ti_sci.h                     |  31 ++++
>  7 files changed, 186 insertions(+), 1 deletion(-)
> 
> -- 
> 2.43.0
>