xref: /openbmc/linux/arch/arm/mach-omap1/reset.c (revision 95e9fd10)
1 /*
2  * OMAP1 reset support
3  */
4 #include <linux/kernel.h>
5 #include <linux/io.h>
6 
7 #include <plat/prcm.h>
8 
9 #include <mach/hardware.h>
10 
11 #include "common.h"
12 
13 void omap1_restart(char mode, const char *cmd)
14 {
15 	/*
16 	 * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28
17 	 * "Global Software Reset Affects Traffic Controller Frequency".
18 	 */
19 	if (cpu_is_omap5912()) {
20 		omap_writew(omap_readw(DPLL_CTL) & ~(1 << 4), DPLL_CTL);
21 		omap_writew(0x8, ARM_RSTCT1);
22 	}
23 
24 	omap_writew(1, ARM_RSTCT1);
25 }
26