diff options
author | Mattias Wallin <mattias.wallin@stericsson.com> | 2010-12-02 10:20:42 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@stericsson.com> | 2010-12-08 07:14:13 -0500 |
commit | fcbd458e95316fe5031f1b8eaf5e66ce8f3c3146 (patch) | |
tree | 504699aded7b00e11de6019af68381fcdf0beecf /arch/arm/mach-ux500/cpu-db8500.c | |
parent | fbf1eadf950da1f5f5ed2e454d2f191f90fe1ebe (diff) |
ARM: ux500: prcmu db8500 v2 support
This patch adds support for db8500 chip version 2.
The TCDM memory address of the PRCMU is changed and
dynamic detection of that is added.
Signed-off-by: Mattias Wallin <mattias.wallin@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Diffstat (limited to 'arch/arm/mach-ux500/cpu-db8500.c')
-rw-r--r-- | arch/arm/mach-ux500/cpu-db8500.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 5966f353890f..b78970c08ebc 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -40,7 +40,6 @@ static struct platform_device *platform_devs[] __initdata = { | |||
40 | /* minimum static i/o mapping required to boot U8500 platforms */ | 40 | /* minimum static i/o mapping required to boot U8500 platforms */ |
41 | static struct map_desc u8500_io_desc[] __initdata = { | 41 | static struct map_desc u8500_io_desc[] __initdata = { |
42 | __IO_DEV_DESC(U8500_PRCMU_BASE, SZ_4K), | 42 | __IO_DEV_DESC(U8500_PRCMU_BASE, SZ_4K), |
43 | __IO_DEV_DESC(U8500_PRCMU_TCDM_BASE, SZ_4K), | ||
44 | __IO_DEV_DESC(U8500_GPIO0_BASE, SZ_4K), | 43 | __IO_DEV_DESC(U8500_GPIO0_BASE, SZ_4K), |
45 | __IO_DEV_DESC(U8500_GPIO1_BASE, SZ_4K), | 44 | __IO_DEV_DESC(U8500_GPIO1_BASE, SZ_4K), |
46 | __IO_DEV_DESC(U8500_GPIO2_BASE, SZ_4K), | 45 | __IO_DEV_DESC(U8500_GPIO2_BASE, SZ_4K), |
@@ -48,13 +47,18 @@ static struct map_desc u8500_io_desc[] __initdata = { | |||
48 | __MEM_DEV_DESC(U8500_BOOT_ROM_BASE, SZ_1M), | 47 | __MEM_DEV_DESC(U8500_BOOT_ROM_BASE, SZ_1M), |
49 | }; | 48 | }; |
50 | 49 | ||
51 | static struct map_desc u8500ed_io_desc[] __initdata = { | 50 | static struct map_desc u8500_ed_io_desc[] __initdata = { |
52 | __IO_DEV_DESC(U8500_MTU0_BASE_ED, SZ_4K), | 51 | __IO_DEV_DESC(U8500_MTU0_BASE_ED, SZ_4K), |
53 | __IO_DEV_DESC(U8500_CLKRST7_BASE_ED, SZ_8K), | 52 | __IO_DEV_DESC(U8500_CLKRST7_BASE_ED, SZ_8K), |
54 | }; | 53 | }; |
55 | 54 | ||
56 | static struct map_desc u8500v1_io_desc[] __initdata = { | 55 | static struct map_desc u8500_v1_io_desc[] __initdata = { |
57 | __IO_DEV_DESC(U8500_MTU0_BASE, SZ_4K), | 56 | __IO_DEV_DESC(U8500_MTU0_BASE, SZ_4K), |
57 | __IO_DEV_DESC(U8500_PRCMU_TCDM_BASE_V1, SZ_4K), | ||
58 | }; | ||
59 | |||
60 | static struct map_desc u8500_v2_io_desc[] __initdata = { | ||
61 | __IO_DEV_DESC(U8500_PRCMU_TCDM_BASE, SZ_4K), | ||
58 | }; | 62 | }; |
59 | 63 | ||
60 | /* | 64 | /* |
@@ -127,9 +131,11 @@ void __init u8500_map_io(void) | |||
127 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); | 131 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); |
128 | 132 | ||
129 | if (cpu_is_u8500ed()) | 133 | if (cpu_is_u8500ed()) |
130 | iotable_init(u8500ed_io_desc, ARRAY_SIZE(u8500ed_io_desc)); | 134 | iotable_init(u8500_ed_io_desc, ARRAY_SIZE(u8500_ed_io_desc)); |
131 | else | 135 | else if (cpu_is_u8500v1()) |
132 | iotable_init(u8500v1_io_desc, ARRAY_SIZE(u8500v1_io_desc)); | 136 | iotable_init(u8500_v1_io_desc, ARRAY_SIZE(u8500_v1_io_desc)); |
137 | else if (cpu_is_u8500v2()) | ||
138 | iotable_init(u8500_v2_io_desc, ARRAY_SIZE(u8500_v2_io_desc)); | ||
133 | 139 | ||
134 | /* Read out the ASIC ID as early as we can */ | 140 | /* Read out the ASIC ID as early as we can */ |
135 | get_db8500_asic_id(); | 141 | get_db8500_asic_id(); |