ARM: shmobile: r8a7740: Multiplatform support
authorMagnus Damm <damm+renesas@opensource.se>
Mon, 25 Aug 2014 03:36:53 +0000 (12:36 +0900)
committerSimon Horman <horms+renesas@verge.net.au>
Tue, 2 Sep 2014 01:04:08 +0000 (10:04 +0900)
Enable r8a7740 Multiplatform support for the generic r8a7740
machine vector. No board support is enabled, and the board
code for Armadillo 800 EVA DT Reference is left by itself.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/Kconfig
arch/arm/mach-shmobile/pm-r8a7740.c
arch/arm/mach-shmobile/r8a7740.h
arch/arm/mach-shmobile/setup-r8a7740.c

index e15dff790dbbbdc4aaa9937bbff18072828369b9..498162fb757e172f74b61ab82fafaeb35901c98a 100644 (file)
@@ -26,6 +26,11 @@ config ARCH_R7S72100
        bool "RZ/A1H (R7S72100)"
        select SYS_SUPPORTS_SH_MTU2
 
+config ARCH_R8A7740
+       bool "R-Mobile A1 (R8A77400)"
+       select ARCH_RMOBILE
+       select RENESAS_INTC_IRQPIN
+
 config ARCH_R8A7779
        bool "R-Car H1 (R8A77790)"
        select RENESAS_INTC_IRQPIN
index a0d44d537fa0bc87327e662cf74e3e8de0a02be0..4d327de35d9bad1370e8c7060b1f8370add0d8a6 100644 (file)
@@ -13,7 +13,7 @@
 #include "common.h"
 #include "pm-rmobile.h"
 
-#ifdef CONFIG_PM
+#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
 static int r8a7740_pd_a4s_suspend(void)
 {
        /*
@@ -58,8 +58,7 @@ void __init r8a7740_init_pm_domains(void)
        rmobile_init_domains(r8a7740_pm_domains, ARRAY_SIZE(r8a7740_pm_domains));
        pm_genpd_add_subdomain_names("A4S", "A3SP");
 }
-
-#endif /* CONFIG_PM */
+#endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */
 
 #ifdef CONFIG_SUSPEND
 static int r8a7740_enter_suspend(suspend_state_t suspend_state)
index 3352fb8650bae8a028d1d8d042610543675157e9..f369b4b0863d0bb38a2705e7c2fc12e83438c340 100644 (file)
@@ -53,10 +53,10 @@ extern void r8a7740_clock_init(u8 md_ck);
 extern void r8a7740_pinmux_init(void);
 extern void r8a7740_pm_init(void);
 
-#ifdef CONFIG_PM
+#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
 extern void __init r8a7740_init_pm_domains(void);
 #else
 static inline void r8a7740_init_pm_domains(void) {}
-#endif /* CONFIG_PM */
+#endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */
 
 #endif /* __ASM_R8A7740_H__ */
index 8fe270d874c2b701cc059c83cd48afbae46581a4..1e55c50522932d80a12d3983e418cf4630d21310 100644 (file)
@@ -36,6 +36,7 @@
 #include <asm/mach/map.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/time.h>
+#include <asm/hardware/cache-l2x0.h>
 
 #include "common.h"
 #include "dma-register.h"
@@ -813,7 +814,12 @@ void __init r8a7740_init_irq_of(void)
 
 static void __init r8a7740_generic_init(void)
 {
-       r8a7740_clock_init(0);
+       r8a7740_meram_workaround();
+
+#ifdef CONFIG_CACHE_L2X0
+       /* Shared attribute override enable, 32K*8way */
+       l2x0_init(IOMEM(0xf0002000), 0x00400000, 0xc20f0fff);
+#endif
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 }