ARM: mach-shmobile: r8a7779 map_io and init_early update
authorMagnus Damm <damm@opensource.se>
Wed, 29 Feb 2012 12:37:43 +0000 (21:37 +0900)
committerRafael J. Wysocki <rjw@sisk.pl>
Mon, 12 Mar 2012 21:19:42 +0000 (22:19 +0100)
Update the r8a7779 SoC and the Marzen board to make use of
the functions r8a7779_map_io() and r8a7779_add_early_devices().

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
arch/arm/mach-shmobile/board-marzen.c
arch/arm/mach-shmobile/include/mach/common.h
arch/arm/mach-shmobile/setup-r8a7779.c

index f0e02c0ce99f0989261db03739a50a7b9ceeccd6..43a77d912b4c6699e7a913f4b27011b38c03e513 100644 (file)
@@ -33,7 +33,6 @@
 #include <mach/common.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
-#include <asm/mach/map.h>
 #include <asm/mach/time.h>
 #include <asm/hardware/gic.h>
 #include <asm/traps.h>
@@ -72,49 +71,6 @@ static struct platform_device *marzen_devices[] __initdata = {
        &eth_device,
 };
 
-static struct map_desc marzen_io_desc[] __initdata = {
-       /* 2M entity map for 0xf0000000 (MPCORE) */
-       {
-               .virtual        = 0xf0000000,
-               .pfn            = __phys_to_pfn(0xf0000000),
-               .length         = SZ_2M,
-               .type           = MT_DEVICE_NONSHARED
-       },
-       /* 16M entity map for 0xfexxxxxx (DMAC-S/HPBREG/INTC2/LRAM/DBSC) */
-       {
-               .virtual        = 0xfe000000,
-               .pfn            = __phys_to_pfn(0xfe000000),
-               .length         = SZ_16M,
-               .type           = MT_DEVICE_NONSHARED
-       },
-};
-
-static void __init marzen_map_io(void)
-{
-       iotable_init(marzen_io_desc, ARRAY_SIZE(marzen_io_desc));
-}
-
-static void __init marzen_init_early(void)
-{
-       r8a7779_add_early_devices();
-
-       /* Early serial console setup is not included here due to
-        * memory map collisions. The SCIF serial ports in r8a7779
-        * are difficult to entity map 1:1 due to collision with the
-        * virtual memory range used by the coherent DMA code on ARM.
-        *
-        * Anyone wanting to debug early can remove UPF_IOREMAP from
-        * the sh-sci serial console platform data, adjust mapbase
-        * to a static M:N virt:phys mapping that needs to be added to
-        * the mappings passed with iotable_init() above.
-        *
-        * Then add a call to shmobile_setup_console() from this function.
-        *
-        * As a final step pass earlyprint=sh-sci.2,115200 on the kernel
-        * command line.
-        */
-}
-
 static void __init marzen_init(void)
 {
        r8a7779_pinmux_init();
@@ -147,8 +103,8 @@ struct sys_timer marzen_timer = {
 };
 
 MACHINE_START(MARZEN, "marzen")
-       .map_io         = marzen_map_io,
-       .init_early     = marzen_init_early,
+       .map_io         = r8a7779_map_io,
+       .init_early     = r8a7779_add_early_devices,
        .nr_irqs        = NR_IRQS_LEGACY,
        .init_irq       = r8a7779_init_irq,
        .handle_irq     = gic_handle_irq,
index deabdf4e36eec10a410e5aa1e6fccf275f45dd54..c1b77d588bb3dbab2b59464ac8ef45fe4fc1677c 100644 (file)
@@ -67,6 +67,7 @@ extern void r8a7740_clock_init(u8 md_ck);
 extern void r8a7740_pinmux_init(void);
 
 extern void r8a7779_init_irq(void);
+extern void r8a7779_map_io(void);
 extern void r8a7779_add_early_devices(void);
 extern void r8a7779_add_standard_devices(void);
 extern void r8a7779_clock_init(void);
index 4725663bd032ffed23fe97bbb75d88437a202eec..4378b4dea1dc8ef4a42a7cc8fe2875e6e3988bfb 100644 (file)
 #include <mach/common.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+
+static struct map_desc r8a7779_io_desc[] __initdata = {
+       /* 2M entity map for 0xf0000000 (MPCORE) */
+       {
+               .virtual        = 0xf0000000,
+               .pfn            = __phys_to_pfn(0xf0000000),
+               .length         = SZ_2M,
+               .type           = MT_DEVICE_NONSHARED
+       },
+       /* 16M entity map for 0xfexxxxxx (DMAC-S/HPBREG/INTC2/LRAM/DBSC) */
+       {
+               .virtual        = 0xfe000000,
+               .pfn            = __phys_to_pfn(0xfe000000),
+               .length         = SZ_16M,
+               .type           = MT_DEVICE_NONSHARED
+       },
+};
+
+void __init r8a7779_map_io(void)
+{
+       iotable_init(r8a7779_io_desc, ARRAY_SIZE(r8a7779_io_desc));
+}
 
 static struct plat_sci_port scif0_platform_data = {
        .mapbase        = 0xffe40000,
@@ -236,4 +259,20 @@ void __init r8a7779_add_early_devices(void)
 {
        early_platform_add_devices(r8a7779_early_devices,
                                   ARRAY_SIZE(r8a7779_early_devices));
+
+       /* Early serial console setup is not included here due to
+        * memory map collisions. The SCIF serial ports in r8a7779
+        * are difficult to entity map 1:1 due to collision with the
+        * virtual memory range used by the coherent DMA code on ARM.
+        *
+        * Anyone wanting to debug early can remove UPF_IOREMAP from
+        * the sh-sci serial console platform data, adjust mapbase
+        * to a static M:N virt:phys mapping that needs to be added to
+        * the mappings passed with iotable_init() above.
+        *
+        * Then add a call to shmobile_setup_console() from this function.
+        *
+        * As a final step pass earlyprint=sh-sci.2,115200 on the kernel
+        * command line in case of the marzen board.
+        */
 }