[PATCH v3 0/2] support Linux reboot modes in syscon-reboot
From: André Draszik
Date: Thu Feb 27 2025 - 05:47:14 EST
This series teaches syscon-reboot some of Linux' different reboot
modes.
Linux supports a couple different reboot modes, but syscon-reboot
doesn't distinguish between them and issues the same syscon register
write irrespective of the reboot mode requested by the kernel.
This is a problem when platforms want to do a cold reboot most of the
time, which could e.g. wipe RAM etc, but also want to support rebooting
while keeping RAM contents in certain cases.
One example of such a platform is Google Pixel.
DTs can now specify the existing properties prefixed with one of the
Linux reboot modes. All the changes to support this are optional and
opt-in, platforms that don't, or don't specify a register/value/mask
pair for a specific mode will behave just as before.
Signed-off-by: André Draszik <andre.draszik@xxxxxxxxxx>
---
Changes in v3:
- support <reset-mode>-reg in driver, not just in binding, doh...
- correctly parse <reset-mode>-offset
- add a comment for all the BUILD_BUG_ON() checks
- Link to v2: https://lore.kernel.org/r/20250226-syscon-reboot-reset-mode-v2-0-f80886370bb7@xxxxxxxxxx
Changes in v2:
- fix whitespace issues in binding
- Link to v1: https://lore.kernel.org/r/20250226-syscon-reboot-reset-mode-v1-0-91c1b62166ae@xxxxxxxxxx
---
André Draszik (2):
dt-bindings: reset: syscon-reboot: support reset modes
power: reset: syscon-reboot: support different reset modes
.../bindings/power/reset/syscon-reboot.yaml | 74 +++++++++++++++++
drivers/power/reset/syscon-reboot.c | 96 +++++++++++++++++++---
2 files changed, 159 insertions(+), 11 deletions(-)
---
base-commit: 0226d0ce98a477937ed295fb7df4cc30b46fc304
change-id: 20250226-syscon-reboot-reset-mode-566588b847e1
Best regards,
--
André Draszik <andre.draszik@xxxxxxxxxx>