1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * Thomas Horsten <thh@lasat.com> 4 * Copyright (C) 2000 LASAT Networks A/S. 5 * 6 * Reset the LASAT board. 7 */ 8 #include <linux/kernel.h> 9 #include <linux/pm.h> 10 11 #include <asm/reboot.h> 12 #include <asm/lasat/lasat.h> 13 14 #include "picvue.h" 15 #include "prom.h" 16 17 static void lasat_machine_restart(char *command); 18 static void lasat_machine_halt(void); 19 20 /* Used to set machine to boot in service mode via /proc interface */ 21 int lasat_boot_to_service; 22 lasat_machine_restart(char * command)23static void lasat_machine_restart(char *command) 24 { 25 local_irq_disable(); 26 27 if (lasat_boot_to_service) { 28 *(volatile unsigned int *)0xa0000024 = 0xdeadbeef; 29 *(volatile unsigned int *)0xa00000fc = 0xfedeabba; 30 } 31 *lasat_misc->reset_reg = 0xbedead; 32 for (;;) ; 33 } 34 lasat_machine_halt(void)35static void lasat_machine_halt(void) 36 { 37 local_irq_disable(); 38 39 prom_monitor(); 40 for (;;) ; 41 } 42 lasat_reboot_setup(void)43void lasat_reboot_setup(void) 44 { 45 _machine_restart = lasat_machine_restart; 46 _machine_halt = lasat_machine_halt; 47 pm_power_off = lasat_machine_halt; 48 } 49