power.c 517 B

123456789101112131415161718192021222324252627282930
  1. // SPDX-License-Identifier: GPL-2.0
  2. // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
  3. #include <linux/reboot.h>
  4. void (*pm_power_off)(void);
  5. EXPORT_SYMBOL(pm_power_off);
  6. void machine_power_off(void)
  7. {
  8. local_irq_disable();
  9. if (pm_power_off)
  10. pm_power_off();
  11. asm volatile ("bkpt");
  12. }
  13. void machine_halt(void)
  14. {
  15. local_irq_disable();
  16. if (pm_power_off)
  17. pm_power_off();
  18. asm volatile ("bkpt");
  19. }
  20. void machine_restart(char *cmd)
  21. {
  22. local_irq_disable();
  23. do_kernel_restart(cmd);
  24. asm volatile ("bkpt");
  25. }