This series introduces sysreset + reboot-mode drivers for PM8916 PON. Additionally, fastboot gains support for driving DM reboot-mode, so that `fastboot reboot bootloader` works as you'd expect.
This series should be considered supplementary and slightly alternative to Aswin's NVMEM-based approach currently on the list. I cherry-picked Aswin's commit for adding reboot-mode detection to mach-snapdragon board code. I think a native PON driver for the older (non-SDAM) PMICs should exist, rather than trying to bridge the gap with synthetic NVMEM DT nodes. The main issue is that we'd need to define these overrides for every device/SoC-family since those nodes don't (and won't?) exist in the mainline kernel. The other main differences between this series and Aswin's are: * A sysreset driver is implemented, in addition to reboot-mode. This is what makes the poweroff command work on MSM8916 and other older platforms lacking a (sane, or any at all) PSCI implementation. * The DM reboot-mode-driven fastboot_set_reboot_flag implementation, which is what makes `fastboot reboot bootloader` work. I think the PON infra introduced in this series can be generalized out beyond PM8916, but I decided to stop here and leave further generalization up to a follow-up series (or follow-up version, depending on feedback!) Link: https://lore.kernel.org/u-boot/[email protected]/ Signed-off-by: Sam Day <[email protected]> --- Aswin Murugan (1): mach-snapdragon: Integrate reboot-mode handling Sam Day (10): button: qcom-pmic: introduce exported setup method drivers: misc: pm8916_pon: add glue driver qcom_defconfig: enable PM8916_PON drivers: misc: pm8916_pon: support setting reboot type sysreset: qcom-pshold: PM8916 PON reset type support qcom_defconfig: enable poweroff command reboot-mode: pm8916-pon: add new driver reboot-mode: reboot method activation support fastboot: DM_REBOOT_MODE reset support qcom_defconfig: enable reboot modes arch/arm/mach-snapdragon/board.c | 56 +++++++-- configs/qcom_defconfig | 5 + drivers/button/button-qcom-pmic.c | 7 +- drivers/fastboot/Kconfig | 7 ++ drivers/fastboot/Makefile | 1 + drivers/fastboot/fb_reboot_mode.c | 51 ++++++++ drivers/misc/Kconfig | 7 ++ drivers/misc/Makefile | 1 + drivers/misc/pm8916_pon.c | 167 +++++++++++++++++++++++++++ drivers/reboot-mode/Makefile | 1 + drivers/reboot-mode/reboot-mode-pm8916-pon.c | 88 ++++++++++++++ drivers/reboot-mode/reboot-mode-uclass.c | 18 +++ drivers/sysreset/sysreset_qcom-pshold.c | 9 ++ include/button/qcom-pmic.h | 17 +++ include/pm8916_pon.h | 18 +++ include/reboot-mode/reboot-mode.h | 12 ++ 16 files changed, 450 insertions(+), 15 deletions(-) --- base-commit: 75daa277941702bf58c88d65c0cb6ed962899d9e change-id: 20260603-pm8916-pon-738d766b8006 Best regards, -- Sam Day <[email protected]>

