 2ddbc4e2f9
			
		
	
	
	2ddbc4e2f9
	
	
	
		
			
			The soft reset register address and reset value to be written are incorrect for the SEAD-3 platform. This patch fixes them such that the SEAD-3 can actually perform a soft reset instead of causing an exception. Also remove usage of 'include/asm/mips-boards/generic.h' header file. Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/5454/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			916 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			916 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * This file is subject to the terms and conditions of the GNU General Public
 | |
|  * License.  See the file "COPYING" in the main directory of this archive
 | |
|  * for more details.
 | |
|  *
 | |
|  * Copyright (C) 2012 MIPS Technologies, Inc.  All rights reserved.
 | |
|  */
 | |
| #include <linux/io.h>
 | |
| #include <linux/pm.h>
 | |
| 
 | |
| #include <asm/reboot.h>
 | |
| 
 | |
| #define SOFTRES_REG	0x1f000050
 | |
| #define GORESET		0x4d
 | |
| 
 | |
| static void mips_machine_restart(char *command)
 | |
| {
 | |
| 	unsigned int __iomem *softres_reg =
 | |
| 		ioremap(SOFTRES_REG, sizeof(unsigned int));
 | |
| 
 | |
| 	__raw_writel(GORESET, softres_reg);
 | |
| }
 | |
| 
 | |
| static void mips_machine_halt(void)
 | |
| {
 | |
| 	unsigned int __iomem *softres_reg =
 | |
| 		ioremap(SOFTRES_REG, sizeof(unsigned int));
 | |
| 
 | |
| 	__raw_writel(GORESET, softres_reg);
 | |
| }
 | |
| 
 | |
| static int __init mips_reboot_setup(void)
 | |
| {
 | |
| 	_machine_restart = mips_machine_restart;
 | |
| 	_machine_halt = mips_machine_halt;
 | |
| 	pm_power_off = mips_machine_halt;
 | |
| 
 | |
| 	return 0;
 | |
| }
 | |
| arch_initcall(mips_reboot_setup);
 |