This driver parses the reboot commands like "reboot bootloader" and "reboot recovery" to get a boot mode described in the device tree , then call the write interfae to store the boot mode in mtk RGU (reset generation unit) non-volatile register, which can be read by the bootloader after system reboot, then the bootloader can take different action according to the mode stored. Freddy Hsin (4): power: reset: add reboot mode driver watchdog: populate reboot mode node in toprgu node of MTK RGU (Reset Generation Unit) soc: mediatek: add reboot-mode header dt-binding: power: reset: Add documentation for MTK RGU (Reset Gernation Unit) reboot driver .../devicetree/bindings/power/reset/mtk-reboot.txt | 30 +++++ drivers/power/reset/Kconfig | 11 ++ drivers/power/reset/Makefile | 1 + drivers/power/reset/mtk-reboot.c | 116 ++++++++++++++++++++ drivers/watchdog/mtk_wdt.c | 3 + include/dt-bindings/soc/mediatek,boot-mode.h | 17 +++ 6 files changed, 178 insertions(+) create mode 100644 Documentation/devicetree/bindings/power/reset/mtk-reboot.txt create mode 100644 drivers/power/reset/mtk-reboot.c create mode 100644 include/dt-bindings/soc/mediatek,boot-mode.h