aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ux500/cpu-db8500.c
diff options
context:
space:
mode:
authorMattias Wallin <mattias.wallin@stericsson.com>2010-12-02 10:20:42 -0500
committerLinus Walleij <linus.walleij@stericsson.com>2010-12-08 07:14:13 -0500
commitfcbd458e95316fe5031f1b8eaf5e66ce8f3c3146 (patch)
tree504699aded7b00e11de6019af68381fcdf0beecf /arch/arm/mach-ux500/cpu-db8500.c
parentfbf1eadf950da1f5f5ed2e454d2f191f90fe1ebe (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.c18
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 */
41static struct map_desc u8500_io_desc[] __initdata = { 41static 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
51static struct map_desc u8500ed_io_desc[] __initdata = { 50static 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
56static struct map_desc u8500v1_io_desc[] __initdata = { 55static 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
60static 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();