 6a7d2c6256
			
		
	
	
	6a7d2c6256
	
	
	
		
			
			The newly introduced function is to be used as .restart callback for ARMv7-M machines. The used register is architecturally defined, so it should work for all M-class machines. Acked-by: Jonathan Austin <jonathan.austin@arm.com> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
		
			
				
	
	
		
			19 lines
		
	
	
	
		
			531 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
	
		
			531 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2013 Uwe Kleine-Koenig for Pengutronix
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify it under
 | |
|  * the terms of the GNU General Public License version 2 as published by the
 | |
|  * Free Software Foundation.
 | |
|  */
 | |
| #include <linux/io.h>
 | |
| #include <linux/reboot.h>
 | |
| #include <asm/barrier.h>
 | |
| #include <asm/v7m.h>
 | |
| 
 | |
| void armv7m_restart(enum reboot_mode mode, const char *cmd)
 | |
| {
 | |
| 	dsb();
 | |
| 	__raw_writel(V7M_SCB_AIRCR_VECTKEY | V7M_SCB_AIRCR_SYSRESETREQ,
 | |
| 			BASEADDR_V7M_SCB + V7M_SCB_AIRCR);
 | |
| 	dsb();
 | |
| }
 |