diff options
Diffstat (limited to 'arch/arm/mach-versatile')
-rw-r--r-- | arch/arm/mach-versatile/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-versatile/clock.c | 65 | ||||
-rw-r--r-- | arch/arm/mach-versatile/clock.h | 20 | ||||
-rw-r--r-- | arch/arm/mach-versatile/core.c | 194 | ||||
-rw-r--r-- | arch/arm/mach-versatile/include/mach/clkdev.h | 9 | ||||
-rw-r--r-- | arch/arm/mach-versatile/include/mach/entry-macro.S | 1 | ||||
-rw-r--r-- | arch/arm/mach-versatile/include/mach/hardware.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-versatile/include/mach/platform.h | 26 |
8 files changed, 41 insertions, 279 deletions
diff --git a/arch/arm/mach-versatile/Makefile b/arch/arm/mach-versatile/Makefile index ba81e70ed813..97cf4d831b0c 100644 --- a/arch/arm/mach-versatile/Makefile +++ b/arch/arm/mach-versatile/Makefile | |||
@@ -2,7 +2,7 @@ | |||
2 | # Makefile for the linux kernel. | 2 | # Makefile for the linux kernel. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := core.o clock.o | 5 | obj-y := core.o |
6 | obj-$(CONFIG_ARCH_VERSATILE_PB) += versatile_pb.o | 6 | obj-$(CONFIG_ARCH_VERSATILE_PB) += versatile_pb.o |
7 | obj-$(CONFIG_MACH_VERSATILE_AB) += versatile_ab.o | 7 | obj-$(CONFIG_MACH_VERSATILE_AB) += versatile_ab.o |
8 | obj-$(CONFIG_PCI) += pci.o | 8 | obj-$(CONFIG_PCI) += pci.o |
diff --git a/arch/arm/mach-versatile/clock.c b/arch/arm/mach-versatile/clock.c deleted file mode 100644 index c50a44ea7ee6..000000000000 --- a/arch/arm/mach-versatile/clock.c +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-versatile/clock.c | ||
3 | * | ||
4 | * Copyright (C) 2004 ARM Limited. | ||
5 | * Written by Deep Blue Solutions Limited. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/device.h> | ||
14 | #include <linux/list.h> | ||
15 | #include <linux/errno.h> | ||
16 | #include <linux/err.h> | ||
17 | #include <linux/string.h> | ||
18 | #include <linux/clk.h> | ||
19 | #include <linux/mutex.h> | ||
20 | |||
21 | #include <asm/clkdev.h> | ||
22 | #include <asm/hardware/icst307.h> | ||
23 | |||
24 | #include "clock.h" | ||
25 | |||
26 | int clk_enable(struct clk *clk) | ||
27 | { | ||
28 | return 0; | ||
29 | } | ||
30 | EXPORT_SYMBOL(clk_enable); | ||
31 | |||
32 | void clk_disable(struct clk *clk) | ||
33 | { | ||
34 | } | ||
35 | EXPORT_SYMBOL(clk_disable); | ||
36 | |||
37 | unsigned long clk_get_rate(struct clk *clk) | ||
38 | { | ||
39 | return clk->rate; | ||
40 | } | ||
41 | EXPORT_SYMBOL(clk_get_rate); | ||
42 | |||
43 | long clk_round_rate(struct clk *clk, unsigned long rate) | ||
44 | { | ||
45 | struct icst307_vco vco; | ||
46 | vco = icst307_khz_to_vco(clk->params, rate / 1000); | ||
47 | return icst307_khz(clk->params, vco) * 1000; | ||
48 | } | ||
49 | EXPORT_SYMBOL(clk_round_rate); | ||
50 | |||
51 | int clk_set_rate(struct clk *clk, unsigned long rate) | ||
52 | { | ||
53 | int ret = -EIO; | ||
54 | |||
55 | if (clk->setvco) { | ||
56 | struct icst307_vco vco; | ||
57 | |||
58 | vco = icst307_khz_to_vco(clk->params, rate / 1000); | ||
59 | clk->rate = icst307_khz(clk->params, vco) * 1000; | ||
60 | clk->setvco(clk, vco); | ||
61 | ret = 0; | ||
62 | } | ||
63 | return ret; | ||
64 | } | ||
65 | EXPORT_SYMBOL(clk_set_rate); | ||
diff --git a/arch/arm/mach-versatile/clock.h b/arch/arm/mach-versatile/clock.h deleted file mode 100644 index 03468fdc3e58..000000000000 --- a/arch/arm/mach-versatile/clock.h +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-versatile/clock.h | ||
3 | * | ||
4 | * Copyright (C) 2004 ARM Limited. | ||
5 | * Written by Deep Blue Solutions Limited. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | struct module; | ||
12 | struct icst307_params; | ||
13 | |||
14 | struct clk { | ||
15 | unsigned long rate; | ||
16 | const struct icst307_params *params; | ||
17 | u32 oscoff; | ||
18 | void *data; | ||
19 | void (*setvco)(struct clk *, struct icst307_vco vco); | ||
20 | }; | ||
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index 3b1a4ee01815..3dff8641b03f 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
@@ -28,19 +28,15 @@ | |||
28 | #include <linux/amba/clcd.h> | 28 | #include <linux/amba/clcd.h> |
29 | #include <linux/amba/pl061.h> | 29 | #include <linux/amba/pl061.h> |
30 | #include <linux/amba/mmci.h> | 30 | #include <linux/amba/mmci.h> |
31 | #include <linux/clocksource.h> | ||
32 | #include <linux/clockchips.h> | ||
33 | #include <linux/cnt32_to_63.h> | ||
34 | #include <linux/io.h> | 31 | #include <linux/io.h> |
35 | #include <linux/gfp.h> | 32 | #include <linux/gfp.h> |
36 | 33 | ||
37 | #include <asm/clkdev.h> | 34 | #include <asm/clkdev.h> |
38 | #include <asm/system.h> | 35 | #include <asm/system.h> |
39 | #include <mach/hardware.h> | ||
40 | #include <asm/irq.h> | 36 | #include <asm/irq.h> |
41 | #include <asm/leds.h> | 37 | #include <asm/leds.h> |
42 | #include <asm/hardware/arm_timer.h> | 38 | #include <asm/hardware/arm_timer.h> |
43 | #include <asm/hardware/icst307.h> | 39 | #include <asm/hardware/icst.h> |
44 | #include <asm/hardware/vic.h> | 40 | #include <asm/hardware/vic.h> |
45 | #include <asm/mach-types.h> | 41 | #include <asm/mach-types.h> |
46 | 42 | ||
@@ -49,9 +45,12 @@ | |||
49 | #include <asm/mach/irq.h> | 45 | #include <asm/mach/irq.h> |
50 | #include <asm/mach/time.h> | 46 | #include <asm/mach/time.h> |
51 | #include <asm/mach/map.h> | 47 | #include <asm/mach/map.h> |
48 | #include <mach/clkdev.h> | ||
49 | #include <mach/hardware.h> | ||
50 | #include <mach/platform.h> | ||
51 | #include <plat/timer-sp.h> | ||
52 | 52 | ||
53 | #include "core.h" | 53 | #include "core.h" |
54 | #include "clock.h" | ||
55 | 54 | ||
56 | /* | 55 | /* |
57 | * All IO addresses are mapped onto VA 0xFFFx.xxxx, where x.xxxx | 56 | * All IO addresses are mapped onto VA 0xFFFx.xxxx, where x.xxxx |
@@ -59,7 +58,6 @@ | |||
59 | * | 58 | * |
60 | * Setup a VA for the Versatile Vectored Interrupt Controller. | 59 | * Setup a VA for the Versatile Vectored Interrupt Controller. |
61 | */ | 60 | */ |
62 | #define __io_address(n) __io(IO_ADDRESS(n)) | ||
63 | #define VA_VIC_BASE __io_address(VERSATILE_VIC_BASE) | 61 | #define VA_VIC_BASE __io_address(VERSATILE_VIC_BASE) |
64 | #define VA_SIC_BASE __io_address(VERSATILE_SIC_BASE) | 62 | #define VA_SIC_BASE __io_address(VERSATILE_SIC_BASE) |
65 | 63 | ||
@@ -229,27 +227,6 @@ void __init versatile_map_io(void) | |||
229 | iotable_init(versatile_io_desc, ARRAY_SIZE(versatile_io_desc)); | 227 | iotable_init(versatile_io_desc, ARRAY_SIZE(versatile_io_desc)); |
230 | } | 228 | } |
231 | 229 | ||
232 | #define VERSATILE_REFCOUNTER (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_24MHz_OFFSET) | ||
233 | |||
234 | /* | ||
235 | * This is the Versatile sched_clock implementation. This has | ||
236 | * a resolution of 41.7ns, and a maximum value of about 35583 days. | ||
237 | * | ||
238 | * The return value is guaranteed to be monotonic in that range as | ||
239 | * long as there is always less than 89 seconds between successive | ||
240 | * calls to this function. | ||
241 | */ | ||
242 | unsigned long long sched_clock(void) | ||
243 | { | ||
244 | unsigned long long v = cnt32_to_63(readl(VERSATILE_REFCOUNTER)); | ||
245 | |||
246 | /* the <<1 gets rid of the cnt_32_to_63 top bit saving on a bic insn */ | ||
247 | v *= 125<<1; | ||
248 | do_div(v, 3<<1); | ||
249 | |||
250 | return v; | ||
251 | } | ||
252 | |||
253 | 230 | ||
254 | #define VERSATILE_FLASHCTRL (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_FLASH_OFFSET) | 231 | #define VERSATILE_FLASHCTRL (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_FLASH_OFFSET) |
255 | 232 | ||
@@ -380,33 +357,40 @@ static struct mmci_platform_data mmc0_plat_data = { | |||
380 | /* | 357 | /* |
381 | * Clock handling | 358 | * Clock handling |
382 | */ | 359 | */ |
383 | static const struct icst307_params versatile_oscvco_params = { | 360 | static const struct icst_params versatile_oscvco_params = { |
384 | .ref = 24000, | 361 | .ref = 24000000, |
385 | .vco_max = 200000, | 362 | .vco_max = ICST307_VCO_MAX, |
363 | .vco_min = ICST307_VCO_MIN, | ||
386 | .vd_min = 4 + 8, | 364 | .vd_min = 4 + 8, |
387 | .vd_max = 511 + 8, | 365 | .vd_max = 511 + 8, |
388 | .rd_min = 1 + 2, | 366 | .rd_min = 1 + 2, |
389 | .rd_max = 127 + 2, | 367 | .rd_max = 127 + 2, |
368 | .s2div = icst307_s2div, | ||
369 | .idx2s = icst307_idx2s, | ||
390 | }; | 370 | }; |
391 | 371 | ||
392 | static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco) | 372 | static void versatile_oscvco_set(struct clk *clk, struct icst_vco vco) |
393 | { | 373 | { |
394 | void __iomem *sys = __io_address(VERSATILE_SYS_BASE); | 374 | void __iomem *sys_lock = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET; |
395 | void __iomem *sys_lock = sys + VERSATILE_SYS_LOCK_OFFSET; | ||
396 | u32 val; | 375 | u32 val; |
397 | 376 | ||
398 | val = readl(sys + clk->oscoff) & ~0x7ffff; | 377 | val = readl(clk->vcoreg) & ~0x7ffff; |
399 | val |= vco.v | (vco.r << 9) | (vco.s << 16); | 378 | val |= vco.v | (vco.r << 9) | (vco.s << 16); |
400 | 379 | ||
401 | writel(0xa05f, sys_lock); | 380 | writel(0xa05f, sys_lock); |
402 | writel(val, sys + clk->oscoff); | 381 | writel(val, clk->vcoreg); |
403 | writel(0, sys_lock); | 382 | writel(0, sys_lock); |
404 | } | 383 | } |
405 | 384 | ||
385 | static const struct clk_ops osc4_clk_ops = { | ||
386 | .round = icst_clk_round, | ||
387 | .set = icst_clk_set, | ||
388 | .setvco = versatile_oscvco_set, | ||
389 | }; | ||
390 | |||
406 | static struct clk osc4_clk = { | 391 | static struct clk osc4_clk = { |
392 | .ops = &osc4_clk_ops, | ||
407 | .params = &versatile_oscvco_params, | 393 | .params = &versatile_oscvco_params, |
408 | .oscoff = VERSATILE_SYS_OSCCLCD_OFFSET, | ||
409 | .setvco = versatile_oscvco_set, | ||
410 | }; | 394 | }; |
411 | 395 | ||
412 | /* | 396 | /* |
@@ -852,6 +836,8 @@ void __init versatile_init(void) | |||
852 | { | 836 | { |
853 | int i; | 837 | int i; |
854 | 838 | ||
839 | osc4_clk.vcoreg = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSCCLCD_OFFSET; | ||
840 | |||
855 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); | 841 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); |
856 | 842 | ||
857 | platform_device_register(&versatile_flash_device); | 843 | platform_device_register(&versatile_flash_device); |
@@ -875,120 +861,6 @@ void __init versatile_init(void) | |||
875 | #define TIMER1_VA_BASE (__io_address(VERSATILE_TIMER0_1_BASE) + 0x20) | 861 | #define TIMER1_VA_BASE (__io_address(VERSATILE_TIMER0_1_BASE) + 0x20) |
876 | #define TIMER2_VA_BASE __io_address(VERSATILE_TIMER2_3_BASE) | 862 | #define TIMER2_VA_BASE __io_address(VERSATILE_TIMER2_3_BASE) |
877 | #define TIMER3_VA_BASE (__io_address(VERSATILE_TIMER2_3_BASE) + 0x20) | 863 | #define TIMER3_VA_BASE (__io_address(VERSATILE_TIMER2_3_BASE) + 0x20) |
878 | #define VA_IC_BASE __io_address(VERSATILE_VIC_BASE) | ||
879 | |||
880 | /* | ||
881 | * How long is the timer interval? | ||
882 | */ | ||
883 | #define TIMER_INTERVAL (TICKS_PER_uSEC * mSEC_10) | ||
884 | #if TIMER_INTERVAL >= 0x100000 | ||
885 | #define TIMER_RELOAD (TIMER_INTERVAL >> 8) | ||
886 | #define TIMER_DIVISOR (TIMER_CTRL_DIV256) | ||
887 | #define TICKS2USECS(x) (256 * (x) / TICKS_PER_uSEC) | ||
888 | #elif TIMER_INTERVAL >= 0x10000 | ||
889 | #define TIMER_RELOAD (TIMER_INTERVAL >> 4) /* Divide by 16 */ | ||
890 | #define TIMER_DIVISOR (TIMER_CTRL_DIV16) | ||
891 | #define TICKS2USECS(x) (16 * (x) / TICKS_PER_uSEC) | ||
892 | #else | ||
893 | #define TIMER_RELOAD (TIMER_INTERVAL) | ||
894 | #define TIMER_DIVISOR (TIMER_CTRL_DIV1) | ||
895 | #define TICKS2USECS(x) ((x) / TICKS_PER_uSEC) | ||
896 | #endif | ||
897 | |||
898 | static void timer_set_mode(enum clock_event_mode mode, | ||
899 | struct clock_event_device *clk) | ||
900 | { | ||
901 | unsigned long ctrl; | ||
902 | |||
903 | switch(mode) { | ||
904 | case CLOCK_EVT_MODE_PERIODIC: | ||
905 | writel(TIMER_RELOAD, TIMER0_VA_BASE + TIMER_LOAD); | ||
906 | |||
907 | ctrl = TIMER_CTRL_PERIODIC; | ||
908 | ctrl |= TIMER_CTRL_32BIT | TIMER_CTRL_IE | TIMER_CTRL_ENABLE; | ||
909 | break; | ||
910 | case CLOCK_EVT_MODE_ONESHOT: | ||
911 | /* period set, and timer enabled in 'next_event' hook */ | ||
912 | ctrl = TIMER_CTRL_ONESHOT; | ||
913 | ctrl |= TIMER_CTRL_32BIT | TIMER_CTRL_IE; | ||
914 | break; | ||
915 | case CLOCK_EVT_MODE_UNUSED: | ||
916 | case CLOCK_EVT_MODE_SHUTDOWN: | ||
917 | default: | ||
918 | ctrl = 0; | ||
919 | } | ||
920 | |||
921 | writel(ctrl, TIMER0_VA_BASE + TIMER_CTRL); | ||
922 | } | ||
923 | |||
924 | static int timer_set_next_event(unsigned long evt, | ||
925 | struct clock_event_device *unused) | ||
926 | { | ||
927 | unsigned long ctrl = readl(TIMER0_VA_BASE + TIMER_CTRL); | ||
928 | |||
929 | writel(evt, TIMER0_VA_BASE + TIMER_LOAD); | ||
930 | writel(ctrl | TIMER_CTRL_ENABLE, TIMER0_VA_BASE + TIMER_CTRL); | ||
931 | |||
932 | return 0; | ||
933 | } | ||
934 | |||
935 | static struct clock_event_device timer0_clockevent = { | ||
936 | .name = "timer0", | ||
937 | .shift = 32, | ||
938 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, | ||
939 | .set_mode = timer_set_mode, | ||
940 | .set_next_event = timer_set_next_event, | ||
941 | }; | ||
942 | |||
943 | /* | ||
944 | * IRQ handler for the timer | ||
945 | */ | ||
946 | static irqreturn_t versatile_timer_interrupt(int irq, void *dev_id) | ||
947 | { | ||
948 | struct clock_event_device *evt = &timer0_clockevent; | ||
949 | |||
950 | writel(1, TIMER0_VA_BASE + TIMER_INTCLR); | ||
951 | |||
952 | evt->event_handler(evt); | ||
953 | |||
954 | return IRQ_HANDLED; | ||
955 | } | ||
956 | |||
957 | static struct irqaction versatile_timer_irq = { | ||
958 | .name = "Versatile Timer Tick", | ||
959 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, | ||
960 | .handler = versatile_timer_interrupt, | ||
961 | }; | ||
962 | |||
963 | static cycle_t versatile_get_cycles(struct clocksource *cs) | ||
964 | { | ||
965 | return ~readl(TIMER3_VA_BASE + TIMER_VALUE); | ||
966 | } | ||
967 | |||
968 | static struct clocksource clocksource_versatile = { | ||
969 | .name = "timer3", | ||
970 | .rating = 200, | ||
971 | .read = versatile_get_cycles, | ||
972 | .mask = CLOCKSOURCE_MASK(32), | ||
973 | .shift = 20, | ||
974 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
975 | }; | ||
976 | |||
977 | static int __init versatile_clocksource_init(void) | ||
978 | { | ||
979 | /* setup timer3 as free-running clocksource */ | ||
980 | writel(0, TIMER3_VA_BASE + TIMER_CTRL); | ||
981 | writel(0xffffffff, TIMER3_VA_BASE + TIMER_LOAD); | ||
982 | writel(0xffffffff, TIMER3_VA_BASE + TIMER_VALUE); | ||
983 | writel(TIMER_CTRL_32BIT | TIMER_CTRL_ENABLE | TIMER_CTRL_PERIODIC, | ||
984 | TIMER3_VA_BASE + TIMER_CTRL); | ||
985 | |||
986 | clocksource_versatile.mult = | ||
987 | clocksource_khz2mult(1000, clocksource_versatile.shift); | ||
988 | clocksource_register(&clocksource_versatile); | ||
989 | |||
990 | return 0; | ||
991 | } | ||
992 | 864 | ||
993 | /* | 865 | /* |
994 | * Set up timer interrupt, and return the current time in seconds. | 866 | * Set up timer interrupt, and return the current time in seconds. |
@@ -1017,22 +889,8 @@ static void __init versatile_timer_init(void) | |||
1017 | writel(0, TIMER2_VA_BASE + TIMER_CTRL); | 889 | writel(0, TIMER2_VA_BASE + TIMER_CTRL); |
1018 | writel(0, TIMER3_VA_BASE + TIMER_CTRL); | 890 | writel(0, TIMER3_VA_BASE + TIMER_CTRL); |
1019 | 891 | ||
1020 | /* | 892 | sp804_clocksource_init(TIMER3_VA_BASE); |
1021 | * Make irqs happen for the system timer | 893 | sp804_clockevents_init(TIMER0_VA_BASE, IRQ_TIMERINT0_1); |
1022 | */ | ||
1023 | setup_irq(IRQ_TIMERINT0_1, &versatile_timer_irq); | ||
1024 | |||
1025 | versatile_clocksource_init(); | ||
1026 | |||
1027 | timer0_clockevent.mult = | ||
1028 | div_sc(1000000, NSEC_PER_SEC, timer0_clockevent.shift); | ||
1029 | timer0_clockevent.max_delta_ns = | ||
1030 | clockevent_delta2ns(0xffffffff, &timer0_clockevent); | ||
1031 | timer0_clockevent.min_delta_ns = | ||
1032 | clockevent_delta2ns(0xf, &timer0_clockevent); | ||
1033 | |||
1034 | timer0_clockevent.cpumask = cpumask_of(0); | ||
1035 | clockevents_register_device(&timer0_clockevent); | ||
1036 | } | 894 | } |
1037 | 895 | ||
1038 | struct sys_timer versatile_timer = { | 896 | struct sys_timer versatile_timer = { |
diff --git a/arch/arm/mach-versatile/include/mach/clkdev.h b/arch/arm/mach-versatile/include/mach/clkdev.h index 04b37a89801c..e58d0771b64e 100644 --- a/arch/arm/mach-versatile/include/mach/clkdev.h +++ b/arch/arm/mach-versatile/include/mach/clkdev.h | |||
@@ -1,6 +1,15 @@ | |||
1 | #ifndef __ASM_MACH_CLKDEV_H | 1 | #ifndef __ASM_MACH_CLKDEV_H |
2 | #define __ASM_MACH_CLKDEV_H | 2 | #define __ASM_MACH_CLKDEV_H |
3 | 3 | ||
4 | #include <plat/clock.h> | ||
5 | |||
6 | struct clk { | ||
7 | unsigned long rate; | ||
8 | const struct clk_ops *ops; | ||
9 | const struct icst_params *params; | ||
10 | void __iomem *vcoreg; | ||
11 | }; | ||
12 | |||
4 | #define __clk_get(clk) ({ 1; }) | 13 | #define __clk_get(clk) ({ 1; }) |
5 | #define __clk_put(clk) do { } while (0) | 14 | #define __clk_put(clk) do { } while (0) |
6 | 15 | ||
diff --git a/arch/arm/mach-versatile/include/mach/entry-macro.S b/arch/arm/mach-versatile/include/mach/entry-macro.S index 8c8020980585..e6f7c1663160 100644 --- a/arch/arm/mach-versatile/include/mach/entry-macro.S +++ b/arch/arm/mach-versatile/include/mach/entry-macro.S | |||
@@ -8,6 +8,7 @@ | |||
8 | * warranty of any kind, whether express or implied. | 8 | * warranty of any kind, whether express or implied. |
9 | */ | 9 | */ |
10 | #include <mach/hardware.h> | 10 | #include <mach/hardware.h> |
11 | #include <mach/platform.h> | ||
11 | #include <asm/hardware/vic.h> | 12 | #include <asm/hardware/vic.h> |
12 | 13 | ||
13 | .macro disable_fiq | 14 | .macro disable_fiq |
diff --git a/arch/arm/mach-versatile/include/mach/hardware.h b/arch/arm/mach-versatile/include/mach/hardware.h index 7aa906c93154..4f8f99aac938 100644 --- a/arch/arm/mach-versatile/include/mach/hardware.h +++ b/arch/arm/mach-versatile/include/mach/hardware.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #define __ASM_ARCH_HARDWARE_H | 23 | #define __ASM_ARCH_HARDWARE_H |
24 | 24 | ||
25 | #include <asm/sizes.h> | 25 | #include <asm/sizes.h> |
26 | #include <mach/platform.h> | ||
27 | 26 | ||
28 | /* | 27 | /* |
29 | * PCI space virtual addresses | 28 | * PCI space virtual addresses |
@@ -49,4 +48,6 @@ | |||
49 | /* macro to get at IO space when running virtually */ | 48 | /* macro to get at IO space when running virtually */ |
50 | #define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000) | 49 | #define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000) |
51 | 50 | ||
51 | #define __io_address(n) __io(IO_ADDRESS(n)) | ||
52 | |||
52 | #endif | 53 | #endif |
diff --git a/arch/arm/mach-versatile/include/mach/platform.h b/arch/arm/mach-versatile/include/mach/platform.h index 83207395191a..ec087407b163 100644 --- a/arch/arm/mach-versatile/include/mach/platform.h +++ b/arch/arm/mach-versatile/include/mach/platform.h | |||
@@ -205,7 +205,7 @@ | |||
205 | #define VERSATILE_CLCD_BASE 0x10120000 /* CLCD */ | 205 | #define VERSATILE_CLCD_BASE 0x10120000 /* CLCD */ |
206 | #define VERSATILE_DMAC_BASE 0x10130000 /* DMA controller */ | 206 | #define VERSATILE_DMAC_BASE 0x10130000 /* DMA controller */ |
207 | #define VERSATILE_VIC_BASE 0x10140000 /* Vectored interrupt controller */ | 207 | #define VERSATILE_VIC_BASE 0x10140000 /* Vectored interrupt controller */ |
208 | #define VERSATILE_PERIPH_BASE 0x10150000 /* off-chip peripherals alias from */ | 208 | #define VERSATILE_PERIPH_BASE 0x10150000 /* off-chip peripherals alias from */ |
209 | /* 0x10000000 - 0x100FFFFF */ | 209 | /* 0x10000000 - 0x100FFFFF */ |
210 | #define VERSATILE_AHBM_BASE 0x101D0000 /* AHB monitor */ | 210 | #define VERSATILE_AHBM_BASE 0x101D0000 /* AHB monitor */ |
211 | #define VERSATILE_SCTL_BASE 0x101E0000 /* System controller */ | 211 | #define VERSATILE_SCTL_BASE 0x101E0000 /* System controller */ |
@@ -213,7 +213,7 @@ | |||
213 | #define VERSATILE_TIMER0_1_BASE 0x101E2000 /* Timer 0 and 1 */ | 213 | #define VERSATILE_TIMER0_1_BASE 0x101E2000 /* Timer 0 and 1 */ |
214 | #define VERSATILE_TIMER2_3_BASE 0x101E3000 /* Timer 2 and 3 */ | 214 | #define VERSATILE_TIMER2_3_BASE 0x101E3000 /* Timer 2 and 3 */ |
215 | #define VERSATILE_GPIO0_BASE 0x101E4000 /* GPIO port 0 */ | 215 | #define VERSATILE_GPIO0_BASE 0x101E4000 /* GPIO port 0 */ |
216 | #define VERSATILE_GPIO1_BASE 0x101E5000 /* GPIO port 1 */ | 216 | #define VERSATILE_GPIO1_BASE 0x101E5000 /* GPIO port 1 */ |
217 | #define VERSATILE_GPIO2_BASE 0x101E6000 /* GPIO port 2 */ | 217 | #define VERSATILE_GPIO2_BASE 0x101E6000 /* GPIO port 2 */ |
218 | #define VERSATILE_GPIO3_BASE 0x101E7000 /* GPIO port 3 */ | 218 | #define VERSATILE_GPIO3_BASE 0x101E7000 /* GPIO port 3 */ |
219 | #define VERSATILE_RTC_BASE 0x101E8000 /* Real Time Clock */ | 219 | #define VERSATILE_RTC_BASE 0x101E8000 /* Real Time Clock */ |
@@ -379,12 +379,6 @@ | |||
379 | #define SIC_INT_PCI3 30 | 379 | #define SIC_INT_PCI3 30 |
380 | 380 | ||
381 | 381 | ||
382 | /* | ||
383 | * Clean base - dummy | ||
384 | * | ||
385 | */ | ||
386 | #define CLEAN_BASE VERSATILE_BOOT_ROM_HI | ||
387 | |||
388 | /* | 382 | /* |
389 | * System controller bit assignment | 383 | * System controller bit assignment |
390 | */ | 384 | */ |
@@ -397,20 +391,6 @@ | |||
397 | #define VERSATILE_TIMER4_EnSel 21 | 391 | #define VERSATILE_TIMER4_EnSel 21 |
398 | 392 | ||
399 | 393 | ||
400 | #define MAX_TIMER 2 | ||
401 | #define MAX_PERIOD 699050 | ||
402 | #define TICKS_PER_uSEC 1 | ||
403 | |||
404 | /* | ||
405 | * These are useconds NOT ticks. | ||
406 | * | ||
407 | */ | ||
408 | #define mSEC_1 1000 | ||
409 | #define mSEC_5 (mSEC_1 * 5) | ||
410 | #define mSEC_10 (mSEC_1 * 10) | ||
411 | #define mSEC_25 (mSEC_1 * 25) | ||
412 | #define SEC_1 (mSEC_1 * 1000) | ||
413 | |||
414 | #define VERSATILE_CSR_BASE 0x10000000 | 394 | #define VERSATILE_CSR_BASE 0x10000000 |
415 | #define VERSATILE_CSR_SIZE 0x10000000 | 395 | #define VERSATILE_CSR_SIZE 0x10000000 |
416 | 396 | ||
@@ -432,5 +412,3 @@ | |||
432 | #endif | 412 | #endif |
433 | 413 | ||
434 | #endif | 414 | #endif |
435 | |||
436 | /* END */ | ||