diff options
Diffstat (limited to 'arch/arm/mach-shmobile/clock-emev2.c')
-rw-r--r-- | arch/arm/mach-shmobile/clock-emev2.c | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/arch/arm/mach-shmobile/clock-emev2.c b/arch/arm/mach-shmobile/clock-emev2.c index 4710f1847bb7..5ac13ba71d54 100644 --- a/arch/arm/mach-shmobile/clock-emev2.c +++ b/arch/arm/mach-shmobile/clock-emev2.c | |||
@@ -40,7 +40,6 @@ | |||
40 | #define USIB2SCLKDIV 0x65c | 40 | #define USIB2SCLKDIV 0x65c |
41 | #define USIB3SCLKDIV 0x660 | 41 | #define USIB3SCLKDIV 0x660 |
42 | #define STI_CLKSEL 0x688 | 42 | #define STI_CLKSEL 0x688 |
43 | #define SMU_GENERAL_REG0 0x7c0 | ||
44 | 43 | ||
45 | /* not pretty, but hey */ | 44 | /* not pretty, but hey */ |
46 | static void __iomem *smu_base; | 45 | static void __iomem *smu_base; |
@@ -51,11 +50,6 @@ static void emev2_smu_write(unsigned long value, int offs) | |||
51 | iowrite32(value, smu_base + offs); | 50 | iowrite32(value, smu_base + offs); |
52 | } | 51 | } |
53 | 52 | ||
54 | void emev2_set_boot_vector(unsigned long value) | ||
55 | { | ||
56 | emev2_smu_write(value, SMU_GENERAL_REG0); | ||
57 | } | ||
58 | |||
59 | static struct clk_mapping smu_mapping = { | 53 | static struct clk_mapping smu_mapping = { |
60 | .phys = EMEV2_SMU_BASE, | 54 | .phys = EMEV2_SMU_BASE, |
61 | .len = PAGE_SIZE, | 55 | .len = PAGE_SIZE, |
@@ -205,23 +199,11 @@ static struct clk_lookup lookups[] = { | |||
205 | void __init emev2_clock_init(void) | 199 | void __init emev2_clock_init(void) |
206 | { | 200 | { |
207 | int k, ret = 0; | 201 | int k, ret = 0; |
208 | static int is_setup; | ||
209 | |||
210 | /* yuck, this is ugly as hell, but the non-smp case of clocks | ||
211 | * code is now designed to rely on ioremap() instead of static | ||
212 | * entity maps. in the case of smp we need access to the SMU | ||
213 | * register earlier than ioremap() is actually working without | ||
214 | * any static maps. to enable SMP in ugly but with dynamic | ||
215 | * mappings we have to call emev2_clock_init() from different | ||
216 | * places depending on UP and SMP... | ||
217 | */ | ||
218 | if (is_setup++) | ||
219 | return; | ||
220 | 202 | ||
221 | smu_base = ioremap(EMEV2_SMU_BASE, PAGE_SIZE); | 203 | smu_base = ioremap(EMEV2_SMU_BASE, PAGE_SIZE); |
222 | BUG_ON(!smu_base); | 204 | BUG_ON(!smu_base); |
223 | 205 | ||
224 | /* setup STI timer to run on 37.768 kHz and deassert reset */ | 206 | /* setup STI timer to run on 32.768 kHz and deassert reset */ |
225 | emev2_smu_write(0, STI_CLKSEL); | 207 | emev2_smu_write(0, STI_CLKSEL); |
226 | emev2_smu_write(1, STI_RSTCTRL); | 208 | emev2_smu_write(1, STI_RSTCTRL); |
227 | 209 | ||