Browse Source

ARM: at91: factorise duplicated at91sam9 idle

Remove duplicated at91sam9xxxx_idle() functions introduced
by commit c9dfafb "ARM: mach-at91: move special idle code out of line".
Replace by a generic at91sam9_idle() function in setup.c common
location.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Jean-Christophe PLAGNIOL-VILLARD 13 years ago
parent
commit
0d78171672

+ 1 - 7
arch/arm/mach-at91/at91sam9260.c

@@ -329,15 +329,9 @@ static void __init at91sam9260_ioremap_registers(void)
 	at91sam9_ioremap_smc(0, AT91SAM9260_BASE_SMC);
 	at91sam9_ioremap_smc(0, AT91SAM9260_BASE_SMC);
 }
 }
 
 
-static void at91sam9260_idle(void)
-{
-	at91_sys_write(AT91_PMC_SCDR, AT91_PMC_PCK);
-	cpu_do_idle();
-}
-
 static void __init at91sam9260_initialize(void)
 static void __init at91sam9260_initialize(void)
 {
 {
-	arm_pm_idle = at91sam9260_idle;
+	arm_pm_idle = at91sam9_idle;
 	arm_pm_restart = at91sam9_alt_restart;
 	arm_pm_restart = at91sam9_alt_restart;
 	at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
 	at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
 			| (1 << AT91SAM9260_ID_IRQ2);
 			| (1 << AT91SAM9260_ID_IRQ2);

+ 1 - 7
arch/arm/mach-at91/at91sam9261.c

@@ -287,15 +287,9 @@ static void __init at91sam9261_ioremap_registers(void)
 	at91sam9_ioremap_smc(0, AT91SAM9261_BASE_SMC);
 	at91sam9_ioremap_smc(0, AT91SAM9261_BASE_SMC);
 }
 }
 
 
-static void at91sam9261_idle(void)
-{
-	at91_sys_write(AT91_PMC_SCDR, AT91_PMC_PCK);
-	cpu_do_idle();
-}
-
 static void __init at91sam9261_initialize(void)
 static void __init at91sam9261_initialize(void)
 {
 {
-	arm_pm_idle = at91sam9261_idle;
+	arm_pm_idle = at91sam9_idle;
 	arm_pm_restart = at91sam9_alt_restart;
 	arm_pm_restart = at91sam9_alt_restart;
 	at91_extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1)
 	at91_extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1)
 			| (1 << AT91SAM9261_ID_IRQ2);
 			| (1 << AT91SAM9261_ID_IRQ2);

+ 1 - 7
arch/arm/mach-at91/at91sam9263.c

@@ -308,15 +308,9 @@ static void __init at91sam9263_ioremap_registers(void)
 	at91sam9_ioremap_smc(1, AT91SAM9263_BASE_SMC1);
 	at91sam9_ioremap_smc(1, AT91SAM9263_BASE_SMC1);
 }
 }
 
 
-static void at91sam9263_idle(void)
-{
-	at91_sys_write(AT91_PMC_SCDR, AT91_PMC_PCK);
-	cpu_do_idle();
-}
-
 static void __init at91sam9263_initialize(void)
 static void __init at91sam9263_initialize(void)
 {
 {
-	arm_pm_idle = at91sam9263_idle;
+	arm_pm_idle = at91sam9_idle;
 	arm_pm_restart = at91sam9_alt_restart;
 	arm_pm_restart = at91sam9_alt_restart;
 	at91_extern_irq = (1 << AT91SAM9263_ID_IRQ0) | (1 << AT91SAM9263_ID_IRQ1);
 	at91_extern_irq = (1 << AT91SAM9263_ID_IRQ0) | (1 << AT91SAM9263_ID_IRQ1);
 
 

+ 1 - 7
arch/arm/mach-at91/at91sam9g45.c

@@ -317,12 +317,6 @@ static struct at91_gpio_bank at91sam9g45_gpio[] __initdata = {
 	}
 	}
 };
 };
 
 
-static void at91sam9g45_idle(void)
-{
-	at91_sys_write(AT91_PMC_SCDR, AT91_PMC_PCK);
-	cpu_do_idle();
-}
-
 /* --------------------------------------------------------------------
 /* --------------------------------------------------------------------
  *  AT91SAM9G45 processor initialization
  *  AT91SAM9G45 processor initialization
  * -------------------------------------------------------------------- */
  * -------------------------------------------------------------------- */
@@ -343,7 +337,7 @@ static void __init at91sam9g45_ioremap_registers(void)
 
 
 static void __init at91sam9g45_initialize(void)
 static void __init at91sam9g45_initialize(void)
 {
 {
-	arm_pm_idle = at91sam9g45_idle;
+	arm_pm_idle = at91sam9_idle;
 	arm_pm_restart = at91sam9g45_restart;
 	arm_pm_restart = at91sam9g45_restart;
 	at91_extern_irq = (1 << AT91SAM9G45_ID_IRQ0);
 	at91_extern_irq = (1 << AT91SAM9G45_ID_IRQ0);
 
 

+ 1 - 7
arch/arm/mach-at91/at91sam9rl.c

@@ -292,15 +292,9 @@ static void __init at91sam9rl_ioremap_registers(void)
 	at91sam9_ioremap_smc(0, AT91SAM9RL_BASE_SMC);
 	at91sam9_ioremap_smc(0, AT91SAM9RL_BASE_SMC);
 }
 }
 
 
-static void at91sam9rl_idle(void)
-{
-	at91_sys_write(AT91_PMC_SCDR, AT91_PMC_PCK);
-	cpu_do_idle();
-}
-
 static void __init at91sam9rl_initialize(void)
 static void __init at91sam9rl_initialize(void)
 {
 {
-	arm_pm_idle = at91sam9rl_idle;
+	arm_pm_idle = at91sam9_idle;
 	arm_pm_restart = at91sam9_alt_restart;
 	arm_pm_restart = at91sam9_alt_restart;
 	at91_extern_irq = (1 << AT91SAM9RL_ID_IRQ0);
 	at91_extern_irq = (1 << AT91SAM9RL_ID_IRQ0);
 
 

+ 8 - 0
arch/arm/mach-at91/clock.c

@@ -28,6 +28,8 @@
 #include <mach/at91_pmc.h>
 #include <mach/at91_pmc.h>
 #include <mach/cpu.h>
 #include <mach/cpu.h>
 
 
+#include <asm/proc-fns.h>
+
 #include "clock.h"
 #include "clock.h"
 #include "generic.h"
 #include "generic.h"
 
 
@@ -818,3 +820,9 @@ static int __init at91_clock_reset(void)
 	return 0;
 	return 0;
 }
 }
 late_initcall(at91_clock_reset);
 late_initcall(at91_clock_reset);
+
+void at91sam9_idle(void)
+{
+	at91_sys_write(AT91_PMC_SCDR, AT91_PMC_PCK);
+	cpu_do_idle();
+}

+ 3 - 0
arch/arm/mach-at91/generic.h

@@ -56,6 +56,9 @@ struct device;
 extern void at91_irq_suspend(void);
 extern void at91_irq_suspend(void);
 extern void at91_irq_resume(void);
 extern void at91_irq_resume(void);
 
 
+/* idle */
+extern void at91sam9_idle(void);
+
 /* reset */
 /* reset */
 extern void at91_ioremap_rstc(u32 base_addr);
 extern void at91_ioremap_rstc(u32 base_addr);
 extern void at91sam9_alt_restart(char, const char *);
 extern void at91sam9_alt_restart(char, const char *);