summaryrefslogtreecommitdiff
path: root/multitech/recipes/linux/linux-2.6.39-at91/linux-2.6.39.4-at91sam9260-reset.patch
blob: af63d5cd73b5075c9ab3ce943ec13934cd816bfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Index: linux-2.6.39.4/arch/arm/mach-at91/at91sam9260.c
===================================================================
--- linux-2.6.39.4.orig/arch/arm/mach-at91/at91sam9260.c	2012-09-17 16:25:08.248303296 -0500
+++ linux-2.6.39.4/arch/arm/mach-at91/at91sam9260.c	2012-09-17 16:25:45.316033835 -0500
@@ -310,6 +310,11 @@
 	iotable_init(at91sam9xe_sram_desc, ARRAY_SIZE(at91sam9xe_sram_desc));
 }
 
+static void at91sam9260_reset(void)
+{
+	at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
+}
+
 void __init at91sam9260_initialize(unsigned long main_clock)
 {
 	/* Map peripherals */
@@ -322,7 +327,8 @@
 	else
 		iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc));
 
-	at91_arch_reset = at91sam9_alt_reset;
+	// jjg: use old reset routine, alt reset is not reliable
+	at91_arch_reset = at91sam9260_reset;
 	pm_power_off = at91sam9260_poweroff;
 	at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
 			| (1 << AT91SAM9260_ID_IRQ2);