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 some place like special register or sram, which can be read by the bootloader after system reboot, then the bootloader can take different action according to the mode stored. This is commonly used on Android based devices, in order to reboot the device into fastboot or recovery mode. Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> Reviewed-by: Moritz Fischer <moritz.fischer@ettus.com> Tested-by: John Stultz <john.stultz@linaro.org> Acked-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Andy Yan <andy.yan@rock-chips.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Sebastian Reichel <sre@kernel.org> Git-commit: 4fcd504edbf7c793325511c2df8dcd083958e28a Git-repo: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ Change-Id: Id65f6b9186e7a5209542a380bae31a1d8933b931 Signed-off-by: Wufeng.jiang <wufeng.jiang@codeaurora.org> Signed-off-by: Xiaogang Cui <xiaogang@codeaurora.org>
14 lines
372 B
C
14 lines
372 B
C
#ifndef __REBOOT_MODE_H__
|
|
#define __REBOOT_MODE_H__
|
|
|
|
struct reboot_mode_driver {
|
|
struct device *dev;
|
|
struct list_head head;
|
|
int (*write)(struct reboot_mode_driver *reboot, unsigned int magic);
|
|
struct notifier_block reboot_notifier;
|
|
};
|
|
|
|
int reboot_mode_register(struct reboot_mode_driver *reboot);
|
|
int reboot_mode_unregister(struct reboot_mode_driver *reboot);
|
|
|
|
#endif
|