linux/drivers/power/reset
André Draszik 8c7cf0fc8c power: reset: syscon-reboot: add gs101-specific reset
Linux supports a couple different reset modes, but this driver here
doesn't distinguish between them and issues the same syscon register
write irrespective of the reset mode requested by the kernel.

Since DTs should not encode register writes (see e.g. [1]), update this
driver to support different reset modes based on DT compatible match.

At the same time, add support for Google GS101, which does support
cold, hard, warm, and soft.

As an example why this is useful, other than properly supporting the
Linux reboot= kernel command line option or sysfs entry, this change
allows gs101-platforms to default to a more secure cold-reset, but also
to warm-reset in case RAM contents needs to be retained across the
reset.

Link: https://lore.kernel.org/all/20250227132644.GA1924628-robh@kernel.org/ [1]
Signed-off-by: André Draszik <andre.draszik@linaro.org>
Link: https://lore.kernel.org/r/20250401-syscon-reboot-reset-mode-v5-2-5b9357442363@linaro.org
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2025-05-01 00:41:31 +02:00
..
arm-versatile-reboot.c
as3722-poweroff.c power: reset: as3722-poweroff: Remove unnecessary return in as3722_poweroff_probe 2024-12-19 00:38:11 +01:00
at91-poweroff.c power: Switch back to struct platform_driver::remove() 2024-10-21 15:51:42 +02:00
at91-reset.c power: reset: at91-reset: Optimize at91_reset() 2025-04-27 23:59:08 +02:00
at91-sama5d2_shdwc.c power: reset: at91-sama5d2_shdwc: Add sama7d65 PMC 2025-03-08 01:36:33 +01:00
atc260x-poweroff.c power: reset: atc260x-poweroff: Use devm_register_sys_off_handler(POWER_OFF) 2024-02-13 02:17:24 +01:00
axxia-reset.c power: reset: axxia-reset: Use devm_register_sys_off_handler(RESTART) 2024-02-13 02:17:25 +01:00
brcm-kona-reset.c power: reset: brcm-kona-reset: Use devm_register_sys_off_handler(RESTART) 2024-02-13 02:17:25 +01:00
brcmstb-reboot.c power: reset: brcmstb: Do not go into infinite loop if reset fails 2024-08-27 19:35:23 +02:00
ep93xx-restart.c power: reset: Add a driver for the ep93xx reset 2024-09-12 14:33:10 +00:00
gemini-poweroff.c power: reset: gemini-poweroff: Use devm_register_sys_off_handler(POWER_OFF) 2024-02-13 02:17:26 +01:00
gpio-poweroff.c power: reset: gpio-poweroff: Clarify the warning message 2024-12-12 23:34:50 +01:00
gpio-restart.c power: reset: gpio-restart: Use devm_register_sys_off_handler() 2023-12-24 22:54:01 +01:00
hisi-reboot.c
Kconfig power: reset: add Toradex Embedded Controller 2025-04-29 01:13:10 +02:00
keystone-reset.c power: reset: keystone: Use syscon_regmap_lookup_by_phandle_args 2025-01-15 21:51:39 +01:00
linkstation-poweroff.c
ltc2952-poweroff.c power: reset: ltc2952-poweroff: Switch to use hrtimer_setup() 2025-02-18 11:19:04 +01:00
Makefile power: reset: add Toradex Embedded Controller 2025-04-29 01:13:10 +02:00
msm-poweroff.c power: reset: msm-poweroff: Use devm_register_sys_off_handler(RESTART) 2024-02-13 02:17:26 +01:00
mt6323-poweroff.c power: reset: mt6323-poweroff: Use devm_register_sys_off_handler(POWER_OFF) 2024-02-13 02:17:25 +01:00
nvmem-reboot-mode.c power: reset: nvmem-reboot-mode: quiet some device deferrals 2023-09-12 20:15:28 +02:00
ocelot-reset.c power: reset: ocelot: Convert to devm_platform_ioremap_resource() 2023-07-19 23:31:49 +02:00
odroid-go-ultra-poweroff.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
piix4-poweroff.c power: reset: piix4: add missing MODULE_DESCRIPTION() macro 2024-06-26 19:28:28 +02:00
pwr-mlxbf.c power: reset: pwr-mlxbf: support graceful shutdown 2024-08-27 19:31:19 +02:00
qcom-pon.c power: reset: qcom-pon: add support for pm8941-pon 2023-06-09 21:18:17 +02:00
qnap-poweroff.c power: Switch back to struct platform_driver::remove() 2024-10-21 15:51:42 +02:00
reboot-mode.c power: reset: reboot-mode: better compatibility with DT (replace ' ,/') 2025-04-28 00:05:31 +02:00
regulator-poweroff.c power: reset: regulator-poweroff: Use devm_register_sys_off_handler(POWER_OFF) 2024-02-13 02:17:26 +01:00
restart-poweroff.c power: reset: restart-poweroff: Use devm_register_sys_off_handler(POWER_OFF) 2024-02-13 02:17:26 +01:00
rmobile-reset.c power: reset: rmobile-reset: Make sysc_base2 local 2024-02-26 15:09:11 +01:00
sc27xx-poweroff.c
st-poweroff.c power: reset: st-poweroff: use builtin_platform_driver() to simplify code 2023-09-12 20:25:54 +02:00
syscon-poweroff.c power: reset: syscon-poweroff: Use devm_register_sys_off_handler(POWER_OFF) 2024-02-13 02:17:26 +01:00
syscon-reboot-mode.c
syscon-reboot.c power: reset: syscon-reboot: add gs101-specific reset 2025-05-01 00:41:31 +02:00
tdx-ec-poweroff.c power: reset: add Toradex Embedded Controller 2025-04-29 01:13:10 +02:00
tps65086-restart.c power: reset: tps65086-restart: Remove unneeded device data struct 2024-02-13 02:17:25 +01:00
vexpress-poweroff.c power: reset: vexpress: Use device_get_match_data() 2023-10-21 00:57:55 +02:00
xgene-reboot.c power: reset: xgene-reboot: Fix a NULL vs IS_ERR() test 2024-02-21 21:13:37 +01:00