2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
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 power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe 2022-06-09 21:08:38 +02:00
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 power: reset: hisi-reboot: add missing MODULE_DEVICE_TABLE 2021-04-09 13:50:01 +02:00
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 power: reset: linkstation-poweroff: add new device 2021-08-13 19:16:41 +02:00
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 power supply and reset changes for the v5.7 series 2020-04-05 13:47:57 -07:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
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