diff options
author | Rabin Vincent <rabin.vincent@stericsson.com> | 2010-02-28 23:05:56 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-03-19 14:29:45 -0400 |
commit | 75a36ee01e860be693220f1c40e2c04fb6cc69ba (patch) | |
tree | 7a4dc1f66d6d4621ac82dceb8829503c6118c283 /arch/arm/mach-ux500/cpu-u8500.c | |
parent | cc2c13342508d52cf08ea81f639b5de69607fd5d (diff) |
ARM: 5963/1: ux500: add support for u8500 v1 revision
Add cpu_is_u8500{ed/v1}() functions to determine the variant based on
the CPU id, add the changed peripheral addresses, and fixup the MTU
address.
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Acked-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-ux500/cpu-u8500.c')
-rw-r--r-- | arch/arm/mach-ux500/cpu-u8500.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/arch/arm/mach-ux500/cpu-u8500.c b/arch/arm/mach-ux500/cpu-u8500.c index 588b0596a635..f368504d2af7 100644 --- a/arch/arm/mach-ux500/cpu-u8500.c +++ b/arch/arm/mach-ux500/cpu-u8500.c | |||
@@ -40,15 +40,27 @@ static struct map_desc u8500_io_desc[] __initdata = { | |||
40 | __IO_DEV_DESC(U8500_UART2_BASE, SZ_4K), | 40 | __IO_DEV_DESC(U8500_UART2_BASE, SZ_4K), |
41 | __IO_DEV_DESC(U8500_GIC_CPU_BASE, SZ_4K), | 41 | __IO_DEV_DESC(U8500_GIC_CPU_BASE, SZ_4K), |
42 | __IO_DEV_DESC(U8500_GIC_DIST_BASE, SZ_4K), | 42 | __IO_DEV_DESC(U8500_GIC_DIST_BASE, SZ_4K), |
43 | __IO_DEV_DESC(U8500_MTU0_BASE, SZ_4K), | ||
44 | __IO_DEV_DESC(U8500_TWD_BASE, SZ_4K), | 43 | __IO_DEV_DESC(U8500_TWD_BASE, SZ_4K), |
45 | __IO_DEV_DESC(U8500_SCU_BASE, SZ_4K), | 44 | __IO_DEV_DESC(U8500_SCU_BASE, SZ_4K), |
46 | __IO_DEV_DESC(U8500_BACKUPRAM0_BASE, SZ_8K), | 45 | __IO_DEV_DESC(U8500_BACKUPRAM0_BASE, SZ_8K), |
47 | }; | 46 | }; |
48 | 47 | ||
48 | static struct map_desc u8500ed_io_desc[] __initdata = { | ||
49 | __IO_DEV_DESC(U8500_MTU0_BASE_ED, SZ_4K), | ||
50 | }; | ||
51 | |||
52 | static struct map_desc u8500v1_io_desc[] __initdata = { | ||
53 | __IO_DEV_DESC(U8500_MTU0_BASE_V1, SZ_4K), | ||
54 | }; | ||
55 | |||
49 | void __init u8500_map_io(void) | 56 | void __init u8500_map_io(void) |
50 | { | 57 | { |
51 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); | 58 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); |
59 | |||
60 | if (cpu_is_u8500ed()) | ||
61 | iotable_init(u8500ed_io_desc, ARRAY_SIZE(u8500ed_io_desc)); | ||
62 | else | ||
63 | iotable_init(u8500v1_io_desc, ARRAY_SIZE(u8500v1_io_desc)); | ||
52 | } | 64 | } |
53 | 65 | ||
54 | void __init u8500_init_irq(void) | 66 | void __init u8500_init_irq(void) |
@@ -75,7 +87,10 @@ static void __init u8500_timer_init(void) | |||
75 | twd_base = __io_address(U8500_TWD_BASE); | 87 | twd_base = __io_address(U8500_TWD_BASE); |
76 | #endif | 88 | #endif |
77 | /* Setup the MTU base */ | 89 | /* Setup the MTU base */ |
78 | mtu_base = __io_address(U8500_MTU0_BASE); | 90 | if (cpu_is_u8500ed()) |
91 | mtu_base = __io_address(U8500_MTU0_BASE_ED); | ||
92 | else | ||
93 | mtu_base = __io_address(U8500_MTU0_BASE_V1); | ||
79 | 94 | ||
80 | nmdk_timer_init(); | 95 | nmdk_timer_init(); |
81 | } | 96 | } |