[00/12] Add TI-SCI reboot driver

Message ID 20240131221957.213717-1-afd@ti.com
Headers
Series Add TI-SCI reboot driver |

Message

Andrew Davis Jan. 31, 2024, 10:19 p.m. UTC
  Hello all,

While PCSI normally handles reboot for K3, this is an available
fallback in case PCSI reboot fails. This driver is registered 
with low priority as we want PSCI to remain the main way these
devices are rebooted.

The important part is the binding/DT changes. Currently in
U-Boot (which use the Linux device trees) we may not have
PSCI available yet (pre TF-A) and so we need this node
to correctly reboot. Adding this node in U-Boot is one of
the last remaining deltas between the two project DT files. 

Thanks,
Andrew

Andrew Davis (12):
  dt-bindings: power: reset: Document ti,sci-reboot compatible
  dt-bindings: arm: keystone: ti-sci: Add reboot-controller child node
  power: reset: Add TI-SCI reboot driver
  arm64: dts: ti: k3-am64: Add reboot-controller node
  arm64: dts: ti: k3-am62: Add reboot-controller node
  arm64: dts: ti: k3-am62a: Add reboot-controller node
  arm64: dts: ti: k3-am62p: Add reboot-controller node
  arm64: dts: ti: k3-am65: Add reboot-controller node
  arm64: dts: ti: k3-j7200: Add reboot-controller node
  arm64: dts: ti: k3-j721e: Add reboot-controller node
  arm64: dts: ti: k3-j721s2: Add reboot-controller node
  arm64: dts: ti: k3-j784s4: Add reboot-controller node

 .../bindings/arm/keystone/ti,sci.yaml         |  8 +++
 .../bindings/power/reset/ti,sci-reboot.yaml   | 33 ++++++++++
 MAINTAINERS                                   |  2 +
 arch/arm64/boot/dts/ti/k3-am62-main.dtsi      |  5 ++
 arch/arm64/boot/dts/ti/k3-am62a-main.dtsi     |  4 ++
 arch/arm64/boot/dts/ti/k3-am62p-main.dtsi     |  5 ++
 arch/arm64/boot/dts/ti/k3-am64-main.dtsi      |  5 ++
 arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi    |  4 ++
 .../boot/dts/ti/k3-j7200-mcu-wakeup.dtsi      |  4 ++
 .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |  4 ++
 .../boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi     |  4 ++
 .../boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi     |  5 ++
 drivers/power/reset/Kconfig                   |  7 +++
 drivers/power/reset/Makefile                  |  1 +
 drivers/power/reset/ti-sci-reboot.c           | 63 +++++++++++++++++++
 15 files changed, 154 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/reset/ti,sci-reboot.yaml
 create mode 100644 drivers/power/reset/ti-sci-reboot.c
  

Comments

Nishanth Menon Feb. 1, 2024, 9:14 p.m. UTC | #1
On 16:19-20240131, Andrew Davis wrote:
> Hello all,
> 
> While PCSI normally handles reboot for K3, this is an available
> fallback in case PCSI reboot fails. This driver is registered 
> with low priority as we want PSCI to remain the main way these
> devices are rebooted.
> 
> The important part is the binding/DT changes. Currently in
> U-Boot (which use the Linux device trees) we may not have
> PSCI available yet (pre TF-A) and so we need this node
> to correctly reboot. Adding this node in U-Boot is one of
> the last remaining deltas between the two project DT files. 
> 
> Thanks,
> Andrew
> 
> Andrew Davis (12):
>   dt-bindings: power: reset: Document ti,sci-reboot compatible
>   dt-bindings: arm: keystone: ti-sci: Add reboot-controller child node
>   power: reset: Add TI-SCI reboot driver
>   arm64: dts: ti: k3-am64: Add reboot-controller node
>   arm64: dts: ti: k3-am62: Add reboot-controller node
>   arm64: dts: ti: k3-am62a: Add reboot-controller node
>   arm64: dts: ti: k3-am62p: Add reboot-controller node
>   arm64: dts: ti: k3-am65: Add reboot-controller node
>   arm64: dts: ti: k3-j7200: Add reboot-controller node
>   arm64: dts: ti: k3-j721e: Add reboot-controller node
>   arm64: dts: ti: k3-j721s2: Add reboot-controller node
>   arm64: dts: ti: k3-j784s4: Add reboot-controller node

Maybe after the driver has been accepted, a defconfig patch(module) might be
useful?

> 
>  .../bindings/arm/keystone/ti,sci.yaml         |  8 +++
>  .../bindings/power/reset/ti,sci-reboot.yaml   | 33 ++++++++++
>  MAINTAINERS                                   |  2 +
>  arch/arm64/boot/dts/ti/k3-am62-main.dtsi      |  5 ++
>  arch/arm64/boot/dts/ti/k3-am62a-main.dtsi     |  4 ++
>  arch/arm64/boot/dts/ti/k3-am62p-main.dtsi     |  5 ++
>  arch/arm64/boot/dts/ti/k3-am64-main.dtsi      |  5 ++
>  arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi    |  4 ++
>  .../boot/dts/ti/k3-j7200-mcu-wakeup.dtsi      |  4 ++
>  .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |  4 ++
>  .../boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi     |  4 ++
>  .../boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi     |  5 ++
>  drivers/power/reset/Kconfig                   |  7 +++
>  drivers/power/reset/Makefile                  |  1 +
>  drivers/power/reset/ti-sci-reboot.c           | 63 +++++++++++++++++++
>  15 files changed, 154 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/power/reset/ti,sci-reboot.yaml
>  create mode 100644 drivers/power/reset/ti-sci-reboot.c