diff options
author | Olof Johansson <olof@lixom.net> | 2013-04-11 13:35:25 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2013-04-11 13:36:42 -0400 |
commit | 9251c6c0dc929d8eec6751c12ef312597f84e147 (patch) | |
tree | cf01bdb4884f59277caef88fc490191824f6fc8c /arch | |
parent | afa3a13da7c18f08b9c636fc25a67d40144c5e9b (diff) | |
parent | 65be2de17aae0fd94e55f7c4a474933cf4607ea2 (diff) |
Merge tag 'renesas-boards-lager-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/boards2
From Simon Horman:
Renesas ARM based SoC lager board updates for v3.10
* Use r8a7790 timer setup code to force the
arch timer to be enabled regardless of the bootloader setting
- This is necessary for the lager board to boot
This pull request is based on:
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git renesas-boards3-for-v3.10
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git renesas-soc-r8a7790-for-v3.10
The merge was made to provide the r8a7790 timer setup code
* tag 'renesas-boards-lager-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: use r8a7790 timer setup code on Lager
ARM: shmobile: force enable of r8a7790 arch timer
ARM: shmobile: Add second I/O range for r8a7790 PFC
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-shmobile/board-lager.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/r8a7790.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7790.c | 15 |
3 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm/mach-shmobile/board-lager.c b/arch/arm/mach-shmobile/board-lager.c index ea6f9e5d3500..f587187a8603 100644 --- a/arch/arm/mach-shmobile/board-lager.c +++ b/arch/arm/mach-shmobile/board-lager.c | |||
@@ -40,7 +40,7 @@ static const char *lager_boards_compat_dt[] __initdata = { | |||
40 | 40 | ||
41 | DT_MACHINE_START(LAGER_DT, "lager") | 41 | DT_MACHINE_START(LAGER_DT, "lager") |
42 | .init_irq = irqchip_init, | 42 | .init_irq = irqchip_init, |
43 | .init_time = shmobile_timer_init, | 43 | .init_time = r8a7790_timer_init, |
44 | .init_machine = lager_add_standard_devices, | 44 | .init_machine = lager_add_standard_devices, |
45 | .dt_compat = lager_boards_compat_dt, | 45 | .dt_compat = lager_boards_compat_dt, |
46 | MACHINE_END | 46 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7790.h b/arch/arm/mach-shmobile/include/mach/r8a7790.h index 9bd6f5c894bb..2e919e61fa0d 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7790.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7790.h | |||
@@ -4,5 +4,6 @@ | |||
4 | void r8a7790_add_standard_devices(void); | 4 | void r8a7790_add_standard_devices(void); |
5 | void r8a7790_clock_init(void); | 5 | void r8a7790_clock_init(void); |
6 | void r8a7790_pinmux_init(void); | 6 | void r8a7790_pinmux_init(void); |
7 | void r8a7790_timer_init(void); | ||
7 | 8 | ||
8 | #endif /* __ASM_R8A7790_H__ */ | 9 | #endif /* __ASM_R8A7790_H__ */ |
diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c index 481201a4f3f5..49de2d56f86d 100644 --- a/arch/arm/mach-shmobile/setup-r8a7790.c +++ b/arch/arm/mach-shmobile/setup-r8a7790.c | |||
@@ -31,6 +31,7 @@ | |||
31 | 31 | ||
32 | static const struct resource pfc_resources[] = { | 32 | static const struct resource pfc_resources[] = { |
33 | DEFINE_RES_MEM(0xe6060000, 0x250), | 33 | DEFINE_RES_MEM(0xe6060000, 0x250), |
34 | DEFINE_RES_MEM(0xe6050000, 0x5050), | ||
34 | }; | 35 | }; |
35 | 36 | ||
36 | void __init r8a7790_pinmux_init(void) | 37 | void __init r8a7790_pinmux_init(void) |
@@ -117,6 +118,18 @@ void __init r8a7790_add_standard_devices(void) | |||
117 | r8a7790_register_irqc(0); | 118 | r8a7790_register_irqc(0); |
118 | } | 119 | } |
119 | 120 | ||
121 | void __init r8a7790_timer_init(void) | ||
122 | { | ||
123 | void __iomem *cntcr; | ||
124 | |||
125 | /* make sure arch timer is started by setting bit 0 of CNTCT */ | ||
126 | cntcr = ioremap(0xe6080000, PAGE_SIZE); | ||
127 | iowrite32(1, cntcr); | ||
128 | iounmap(cntcr); | ||
129 | |||
130 | shmobile_timer_init(); | ||
131 | } | ||
132 | |||
120 | #ifdef CONFIG_USE_OF | 133 | #ifdef CONFIG_USE_OF |
121 | void __init r8a7790_add_standard_devices_dt(void) | 134 | void __init r8a7790_add_standard_devices_dt(void) |
122 | { | 135 | { |
@@ -131,7 +144,7 @@ static const char *r8a7790_boards_compat_dt[] __initdata = { | |||
131 | DT_MACHINE_START(R8A7790_DT, "Generic R8A7790 (Flattened Device Tree)") | 144 | DT_MACHINE_START(R8A7790_DT, "Generic R8A7790 (Flattened Device Tree)") |
132 | .init_irq = irqchip_init, | 145 | .init_irq = irqchip_init, |
133 | .init_machine = r8a7790_add_standard_devices_dt, | 146 | .init_machine = r8a7790_add_standard_devices_dt, |
134 | .init_time = shmobile_timer_init, | 147 | .init_time = r8a7790_timer_init, |
135 | .dt_compat = r8a7790_boards_compat_dt, | 148 | .dt_compat = r8a7790_boards_compat_dt, |
136 | MACHINE_END | 149 | MACHINE_END |
137 | #endif /* CONFIG_USE_OF */ | 150 | #endif /* CONFIG_USE_OF */ |