This series updates syscon-reboot to support warm/soft and cold/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 new compatible for gs101 reset. In [2], Krzysztof suggested to simply add that to the existing generic binding * 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@xxxxxxxxxx/ [1] Signed-off-by: André Draszik <andre.draszik@xxxxxxxxxx> --- Changes in v5: - Krzysztof: - drop gs101-specific schema and add the new compatible to the generic syscon-reboot schema, with all appropriate follow-up changes to it - reuse existing syscon-reboot node for gs101 in exynos-pmu schema, don't introduce a new one - Link to v4: https://lore.kernel.org/r/20250328-syscon-reboot-reset-mode-v4-0-77ba57703ace@xxxxxxxxxx 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@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: add google,gs101-reboot power: reset: syscon-reboot: add gs101-specific reset .../bindings/power/reset/syscon-reboot.yaml | 42 +++++++--- drivers/power/reset/syscon-reboot.c | 98 +++++++++++++++++----- 2 files changed, 107 insertions(+), 33 deletions(-) --- base-commit: db8da9da41bced445077925f8a886c776a47440c change-id: 20250226-syscon-reboot-reset-mode-566588b847e1 Best regards, -- André Draszik <andre.draszik@xxxxxxxxxx>