diff options
author | Magnus Damm <damm@opensource.se> | 2010-05-20 10:49:28 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-05-22 04:22:57 -0400 |
commit | 4f0836b4f9b9bf807719f203205f251a7a46ebd9 (patch) | |
tree | 72327b27e411d10c26dec250355c69cc50fbc47a /arch/arm/mach-shmobile/board-g3evm.c | |
parent | 83ca5c87cb4bac32f8e0cf7f0c640bfcf310bb5d (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.c | 19 |
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 | ||
356 | static void __init g3evm_timer_init(void) | ||
357 | { | ||
358 | sh7367_clock_init(); | ||
359 | shmobile_timer.init(); | ||
360 | } | ||
361 | |||
362 | static struct sys_timer g3evm_timer = { | ||
363 | .init = g3evm_timer_init, | ||
364 | }; | ||
365 | |||
359 | MACHINE_START(G3EVM, "g3evm") | 366 | MACHINE_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, |
366 | MACHINE_END | 373 | MACHINE_END |