diff options
author | Olof Johansson <olof@lixom.net> | 2012-03-13 17:38:09 -0700 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-03-13 17:38:09 -0700 |
commit | ae0b82504e515fdb9bc23c0b770d2b30efd49dc9 (patch) | |
tree | 665d1f26b32f9e68346a9529388fbadec519e865 /arch/arm/mach-shmobile/setup-r8a7779.c | |
parent | f7c8faedf98aa5ec372e0191078ac7fe1e7fb067 (diff) | |
parent | a6e24019468009a21b674e392d74283a90f415dd (diff) | |
download | linux-ae0b82504e515fdb9bc23c0b770d2b30efd49dc9.tar.gz |
Merge branch 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/renesas into next/soc
* 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/renesas: (234 commits)
ARM: shmobile: remove additional __io() macro use
ARM: mach-shmobile: default to no earlytimer
ARM: mach-shmobile: r8a7779 and Marzen timer rework
ARM: mach-shmobile: r8a7740 and Bonito timer rework
ARM: mach-shmobile: sh73a0, AG5EVM and Kota2 timer rework
ARM: mach-shmobile: sh7372, AP4EVB and Mackerel timer rework
ARM: mach-shmobile: sh7377 and G4EVM timer rework
ARM: mach-shmobile: sh7367 and G3EVM timer rework
ARM: mach-shmobile: add shmobile_earlytimer_init()
ARM: mach-shmobile: Move sh7372 AP4EVB external clk setup
ARM: mach-shmobile: Move sh7372 Mackerel external clk setup
ARM: mach-shmobile: rename clk_init() to shmobile_clk_init()
ARM: mach-shmobile: r8a7779 L2 cache support
ARM: mach-shmobile: r8a7779 map_io and init_early update
ARM: mach-shmobile: r8a7740 map_io and init_early update
ARM: mach-shmobile: sh73a0 map_io and init_early update
ARM: mach-shmobile: sh7372 map_io and init_early update
ARM: mach-shmobile: sh7377 map_io and init_early update
ARM: mach-shmobile: sh7367 map_io and init_early update
sh: remove clk_ops
...
(includes an update to v3.3-rc7)
Conflicts:
arch/arm/mach-omap2/id.c
Diffstat (limited to 'arch/arm/mach-shmobile/setup-r8a7779.c')
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7779.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c index 4725663bd032..6820d785493d 100644 --- a/arch/arm/mach-shmobile/setup-r8a7779.c +++ b/arch/arm/mach-shmobile/setup-r8a7779.c @@ -33,6 +33,31 @@ #include <mach/common.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> +#include <asm/mach/time.h> +#include <asm/mach/map.h> +#include <asm/hardware/cache-l2x0.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, @@ -219,6 +244,10 @@ static struct platform_device *r8a7779_late_devices[] __initdata = { void __init r8a7779_add_standard_devices(void) { +#ifdef CONFIG_CACHE_L2X0 + /* Early BRESP enable, Shared attribute override enable, 64K*16way */ + l2x0_init((void __iomem __force *)(0xf0100000), 0x40470000, 0x82000fff); +#endif r8a7779_pm_init(); r8a7779_init_pm_domain(&r8a7779_sh4a); @@ -232,8 +261,33 @@ void __init r8a7779_add_standard_devices(void) ARRAY_SIZE(r8a7779_late_devices)); } +static void __init r8a7779_earlytimer_init(void) +{ + r8a7779_clock_init(); + shmobile_earlytimer_init(); +} + 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. + */ + + /* override timer setup with soc-specific code */ + shmobile_timer.init = r8a7779_earlytimer_init; } |