aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/board-ap4evb.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-27 19:06:17 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-27 19:06:17 -0400
commit48d554418d3bfbba5e9dc1ebdf352f1b1f3ff4ee (patch)
tree696bdc0c1087e82c6493c852bca514bb0fcd7881 /arch/arm/mach-shmobile/board-ap4evb.c
parentd61b7a572b292e2be409e13b4b3adf475f18fb29 (diff)
parent2cbe23e3a432e3d09a849adb197c8fcc09e7391d (diff)
Merge tag 'timer' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull "ARM: timer cleanup work" from Arnd Bergmann: "These are split out from the generic soc and driver updates because there was a lot of conflicting work by multiple people. Marc Zyngier worked on simplifying the "localtimer" interfaces, and some of the platforms are touching the same code as they move to device tree based booting. Signed-off-by: Arnd Bergmann <arnd@arndb.de>" * tag 'timer' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (61 commits) ARM: tegra: select USB_ULPI if USB is selected arm/tegra: pcie: fix return value of function ARM: ux500: fix compilation after local timer rework ARM: shmobile: remove additional __io() macro use ARM: local timers: make the runtime registration interface mandatory ARM: local timers: convert MSM to runtime registration interface ARM: local timers: convert exynos to runtime registration interface ARM: smp_twd: remove old local timer interface ARM: imx6q: convert to twd_local_timer_register() interface ARM: highbank: convert to twd_local_timer_register() interface ARM: ux500: convert to twd_local_timer_register() interface ARM: shmobile: convert to twd_local_timer_register() interface ARM: tegra: convert to twd_local_timer_register() interface ARM: plat-versatile: convert to twd_local_timer_register() interface ARM: OMAP4: convert to twd_local_timer_register() interface ARM: smp_twd: add device tree support ARM: smp_twd: add runtime registration support ARM: local timers: introduce a new registration interface ARM: smp_twd: make local_timer_stop a symbol instead of a #define ARM: mach-shmobile: default to no earlytimer ...
Diffstat (limited to 'arch/arm/mach-shmobile/board-ap4evb.c')
-rw-r--r--arch/arm/mach-shmobile/board-ap4evb.c44
1 files changed, 6 insertions, 38 deletions
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index f90ba5b850a..262f8def557 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -61,8 +61,6 @@
61 61
62#include <asm/mach-types.h> 62#include <asm/mach-types.h>
63#include <asm/mach/arch.h> 63#include <asm/mach/arch.h>
64#include <asm/mach/map.h>
65#include <asm/mach/time.h>
66#include <asm/setup.h> 64#include <asm/setup.h>
67 65
68/* 66/*
@@ -1188,27 +1186,6 @@ static struct i2c_board_info i2c1_devices[] = {
1188 }, 1186 },
1189}; 1187};
1190 1188
1191static struct map_desc ap4evb_io_desc[] __initdata = {
1192 /* create a 1:1 entity map for 0xe6xxxxxx
1193 * used by CPGA, INTC and PFC.
1194 */
1195 {
1196 .virtual = 0xe6000000,
1197 .pfn = __phys_to_pfn(0xe6000000),
1198 .length = 256 << 20,
1199 .type = MT_DEVICE_NONSHARED
1200 },
1201};
1202
1203static void __init ap4evb_map_io(void)
1204{
1205 iotable_init(ap4evb_io_desc, ARRAY_SIZE(ap4evb_io_desc));
1206
1207 /* setup early devices and console here as well */
1208 sh7372_add_early_devices();
1209 shmobile_setup_console();
1210}
1211
1212#define GPIO_PORT9CR 0xE6051009 1189#define GPIO_PORT9CR 0xE6051009
1213#define GPIO_PORT10CR 0xE605100A 1190#define GPIO_PORT10CR 0xE605100A
1214#define USCCR1 0xE6058144 1191#define USCCR1 0xE6058144
@@ -1217,6 +1194,9 @@ static void __init ap4evb_init(void)
1217 u32 srcr4; 1194 u32 srcr4;
1218 struct clk *clk; 1195 struct clk *clk;
1219 1196
1197 /* External clock source */
1198 clk_set_rate(&sh7372_dv_clki_clk, 27000000);
1199
1220 sh7372_pinmux_init(); 1200 sh7372_pinmux_init();
1221 1201
1222 /* enable SCIFA0 */ 1202 /* enable SCIFA0 */
@@ -1453,23 +1433,11 @@ static void __init ap4evb_init(void)
1453 pm_clk_add(&lcdc1_device.dev, "hdmi"); 1433 pm_clk_add(&lcdc1_device.dev, "hdmi");
1454} 1434}
1455 1435
1456static void __init ap4evb_timer_init(void)
1457{
1458 sh7372_clock_init();
1459 shmobile_timer.init();
1460
1461 /* External clock source */
1462 clk_set_rate(&sh7372_dv_clki_clk, 27000000);
1463}
1464
1465static struct sys_timer ap4evb_timer = {
1466 .init = ap4evb_timer_init,
1467};
1468
1469MACHINE_START(AP4EVB, "ap4evb") 1436MACHINE_START(AP4EVB, "ap4evb")
1470 .map_io = ap4evb_map_io, 1437 .map_io = sh7372_map_io,
1438 .init_early = sh7372_add_early_devices,
1471 .init_irq = sh7372_init_irq, 1439 .init_irq = sh7372_init_irq,
1472 .handle_irq = shmobile_handle_irq_intc, 1440 .handle_irq = shmobile_handle_irq_intc,
1473 .init_machine = ap4evb_init, 1441 .init_machine = ap4evb_init,
1474 .timer = &ap4evb_timer, 1442 .timer = &shmobile_timer,
1475MACHINE_END 1443MACHINE_END