summaryrefslogtreecommitdiff
path: root/arch/arm/mach-spear/spear3xx.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-12-02 20:59:57 +0400
committerArnd Bergmann <arnd@arndb.de>2013-03-12 20:39:58 +0400
commitd9909ebe650f028459b9be5a2321fee520b446b0 (patch)
tree09736f1e19ed89396841a2654e4d8b901ac73334 /arch/arm/mach-spear/spear3xx.c
parent2b9c613c4ee1756664fcbf6fc4926fee3e7139c3 (diff)
downloadlinux-d9909ebe650f028459b9be5a2321fee520b446b0.tar.xz
ARM: spear: make clock driver independent of headers
Device drivers should not access MMIO registers through hardcoded platform specific address constants. Instead, we can pass the MMIO token to the spear clock driver in the initialization routine to contain that knowledge in the platform code itself. Ideally, the clock driver would use of_iomap() or similar to get the address, and that can be used later, but for now, this is the minimal change. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Diffstat (limited to 'arch/arm/mach-spear/spear3xx.c')
-rw-r--r--arch/arm/mach-spear/spear3xx.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/mach-spear/spear3xx.c b/arch/arm/mach-spear/spear3xx.c
index be0c94d04d50..0227c97797cd 100644
--- a/arch/arm/mach-spear/spear3xx.c
+++ b/arch/arm/mach-spear/spear3xx.c
@@ -21,6 +21,7 @@
#include "pl080.h"
#include "generic.h"
#include <mach/spear.h>
+#include <mach/misc_regs.h>
/* ssp device registration */
struct pl022_ssp_controller pl022_plat_data = {
@@ -67,12 +68,12 @@ struct pl08x_platform_data pl080_plat_data = {
*/
struct map_desc spear3xx_io_desc[] __initdata = {
{
- .virtual = VA_SPEAR_ICM1_2_BASE,
+ .virtual = (unsigned long)VA_SPEAR_ICM1_2_BASE,
.pfn = __phys_to_pfn(SPEAR_ICM1_2_BASE),
.length = SZ_16M,
.type = MT_DEVICE
}, {
- .virtual = VA_SPEAR_ICM3_SMI_CTRL_BASE,
+ .virtual = (unsigned long)VA_SPEAR_ICM3_SMI_CTRL_BASE,
.pfn = __phys_to_pfn(SPEAR_ICM3_SMI_CTRL_BASE),
.length = SZ_16M,
.type = MT_DEVICE
@@ -90,7 +91,7 @@ void __init spear3xx_timer_init(void)
char pclk_name[] = "pll3_clk";
struct clk *gpt_clk, *pclk;
- spear3xx_clk_init();
+ spear3xx_clk_init(MISC_BASE, VA_SPEAR320_SOC_CONFIG_BASE);
/* get the system timer clock */
gpt_clk = clk_get_sys("gpt0", NULL);