aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/board-g3evm.c
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2010-05-20 10:49:28 -0400
committerPaul Mundt <lethal@linux-sh.org>2010-05-22 04:22:57 -0400
commit4f0836b4f9b9bf807719f203205f251a7a46ebd9 (patch)
tree72327b27e411d10c26dec250355c69cc50fbc47a /arch/arm/mach-shmobile/board-g3evm.c
parent83ca5c87cb4bac32f8e0cf7f0c640bfcf310bb5d (diff)
ARM: mach-shmobile: sh7367 clock framework V2
This patch is V2 of clock framework tables/code for sh7367. MSTP support is included for the following hardware blocks: KEYSC, SCIF, IIC, IRDA, FLCTL, VOU, SIU, USB, SDHI and UIO. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile/board-g3evm.c')
-rw-r--r--arch/arm/mach-shmobile/board-g3evm.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/arch/arm/mach-shmobile/board-g3evm.c b/arch/arm/mach-shmobile/board-g3evm.c
index 16d292dc26df..a8f20cb0b7d2 100644
--- a/arch/arm/mach-shmobile/board-g3evm.c
+++ b/arch/arm/mach-shmobile/board-g3evm.c
@@ -37,6 +37,7 @@
37#include <asm/mach-types.h> 37#include <asm/mach-types.h>
38#include <asm/mach/arch.h> 38#include <asm/mach/arch.h>
39#include <asm/mach/map.h> 39#include <asm/mach/map.h>
40#include <asm/mach/time.h>
40 41
41/* 42/*
42 * IrDA 43 * IrDA
@@ -259,9 +260,8 @@ static void __init g3evm_map_io(void)
259{ 260{
260 iotable_init(g3evm_io_desc, ARRAY_SIZE(g3evm_io_desc)); 261 iotable_init(g3evm_io_desc, ARRAY_SIZE(g3evm_io_desc));
261 262
262 /* setup early devices, clocks and console here as well */ 263 /* setup early devices and console here as well */
263 sh7367_add_early_devices(); 264 sh7367_add_early_devices();
264 sh7367_clock_init();
265 shmobile_setup_console(); 265 shmobile_setup_console();
266} 266}
267 267
@@ -298,9 +298,6 @@ static void __init g3evm_init(void)
298 gpio_request(GPIO_FN_EXTLP, NULL); 298 gpio_request(GPIO_FN_EXTLP, NULL);
299 gpio_request(GPIO_FN_IDIN, NULL); 299 gpio_request(GPIO_FN_IDIN, NULL);
300 300
301 /* enable clock in SYMSTPCR2 */
302 __raw_writel(__raw_readl(0xe6158048) & ~(1 << 22), 0xe6158048);
303
304 /* setup USB phy */ 301 /* setup USB phy */
305 __raw_writew(0x0300, 0xe605810a); /* USBCR1 */ 302 __raw_writew(0x0300, 0xe605810a); /* USBCR1 */
306 __raw_writew(0x00e0, 0xe60581c0); /* CPFCH */ 303 __raw_writew(0x00e0, 0xe60581c0); /* CPFCH */
@@ -356,11 +353,21 @@ static void __init g3evm_init(void)
356 platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices)); 353 platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices));
357} 354}
358 355
356static void __init g3evm_timer_init(void)
357{
358 sh7367_clock_init();
359 shmobile_timer.init();
360}
361
362static struct sys_timer g3evm_timer = {
363 .init = g3evm_timer_init,
364};
365
359MACHINE_START(G3EVM, "g3evm") 366MACHINE_START(G3EVM, "g3evm")
360 .phys_io = 0xe6000000, 367 .phys_io = 0xe6000000,
361 .io_pg_offst = ((0xe6000000) >> 18) & 0xfffc, 368 .io_pg_offst = ((0xe6000000) >> 18) & 0xfffc,
362 .map_io = g3evm_map_io, 369 .map_io = g3evm_map_io,
363 .init_irq = sh7367_init_irq, 370 .init_irq = sh7367_init_irq,
364 .init_machine = g3evm_init, 371 .init_machine = g3evm_init,
365 .timer = &shmobile_timer, 372 .timer = &g3evm_timer,
366MACHINE_END 373MACHINE_END