[PATCH v4 0/3] support Linux reboot modes in syscon-reboot on gs101 (Google Pixel)
André Draszik
andre.draszik at linaro.org
Fri Mar 28 08:15:18 PDT 2025
This series updates syscon-reboot to support warm/soft and soft/hard
reboot on gs101-based boards (Google Pixel 6 and Pixel 6 Pro).
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.
On gs101, this can be implemented using different syscon register
writes.
As Rob pointed out in [1], register access shouldn't be encoded into
DT, though. At the same time, at least on gs101, the difference is just
different register values in different registers. Therefore these
patches:
* add a specific binding for gs101 reset
* update the generic syscon reset driver to support this new
compatible 'google,gs101-reboot'. In this case, and as suggested
in [1], the syscon writes are then deducted from the compatible,
rather than parsing them from DT.
The existing generic syscon-reboot driver seems like a suitable place
to add support for that, given all of this is straight forward and
simple and similar to the existing code. If the preference is to have a
separate driver copying much of the existing generic syscon-reboot
driver code instead, please let me know.
Link: https://lore.kernel.org/all/20250227132644.GA1924628-robh@kernel.org/ [1]
Signed-off-by: André Draszik <andre.draszik at linaro.org>
---
Changes in v4:
- Rob:
- don't add more properties to existing 'syscon-reboot' compatible /
binding
- add specific binding for 'google,gs101-reboot' compatible and
related driver changes
- Link to v3: https://lore.kernel.org/r/20250227-syscon-reboot-reset-mode-v3-0-959ac53c338a@linaro.org
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@linaro.org
Changes in v2:
- fix whitespace issues in binding
- Link to v1: https://lore.kernel.org/r/20250226-syscon-reboot-reset-mode-v1-0-91c1b62166ae@linaro.org
---
André Draszik (3):
dt-bindings: power: reset: google,gs101-reboot: add Google GS101 specific reset
dt-bindings: soc: samsung: exynos-pmu: update reset for gs101
power: reset: syscon-reboot: add gs101-specific reset
.../bindings/power/reset/google,gs101-reboot.yaml | 32 +++++++
.../bindings/soc/samsung/exynos-pmu.yaml | 21 +++++
MAINTAINERS | 1 +
drivers/power/reset/syscon-reboot.c | 98 +++++++++++++++++-----
4 files changed, 131 insertions(+), 21 deletions(-)
---
base-commit: db8da9da41bced445077925f8a886c776a47440c
change-id: 20250226-syscon-reboot-reset-mode-566588b847e1
Best regards,
--
André Draszik <andre.draszik at linaro.org>
More information about the linux-arm-kernel
mailing list