diff options
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500-sdi.c')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-sdi.c | 65 |
1 files changed, 7 insertions, 58 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c index d1ae6a09979d..68c8375e45c6 100644 --- a/arch/arm/mach-ux500/board-mop500-sdi.c +++ b/arch/arm/mach-ux500/board-mop500-sdi.c | |||
@@ -12,59 +12,14 @@ | |||
12 | #include <linux/mmc/host.h> | 12 | #include <linux/mmc/host.h> |
13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
14 | 14 | ||
15 | #include <plat/pincfg.h> | ||
16 | #include <plat/ste_dma40.h> | 15 | #include <plat/ste_dma40.h> |
17 | #include <mach/devices.h> | 16 | #include <mach/devices.h> |
18 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
19 | 18 | ||
20 | #include "devices-db8500.h" | 19 | #include "devices-db8500.h" |
21 | #include "pins-db8500.h" | ||
22 | #include "board-mop500.h" | 20 | #include "board-mop500.h" |
23 | #include "ste-dma40-db8500.h" | 21 | #include "ste-dma40-db8500.h" |
24 | 22 | ||
25 | static pin_cfg_t mop500_sdi_pins[] = { | ||
26 | /* SDI0 (MicroSD slot) */ | ||
27 | GPIO18_MC0_CMDDIR, | ||
28 | GPIO19_MC0_DAT0DIR, | ||
29 | GPIO20_MC0_DAT2DIR, | ||
30 | GPIO21_MC0_DAT31DIR, | ||
31 | GPIO22_MC0_FBCLK, | ||
32 | GPIO23_MC0_CLK, | ||
33 | GPIO24_MC0_CMD, | ||
34 | GPIO25_MC0_DAT0, | ||
35 | GPIO26_MC0_DAT1, | ||
36 | GPIO27_MC0_DAT2, | ||
37 | GPIO28_MC0_DAT3, | ||
38 | |||
39 | /* SDI4 (on-board eMMC) */ | ||
40 | GPIO197_MC4_DAT3, | ||
41 | GPIO198_MC4_DAT2, | ||
42 | GPIO199_MC4_DAT1, | ||
43 | GPIO200_MC4_DAT0, | ||
44 | GPIO201_MC4_CMD, | ||
45 | GPIO202_MC4_FBCLK, | ||
46 | GPIO203_MC4_CLK, | ||
47 | GPIO204_MC4_DAT7, | ||
48 | GPIO205_MC4_DAT6, | ||
49 | GPIO206_MC4_DAT5, | ||
50 | GPIO207_MC4_DAT4, | ||
51 | }; | ||
52 | |||
53 | static pin_cfg_t mop500_sdi2_pins[] = { | ||
54 | /* SDI2 (POP eMMC) */ | ||
55 | GPIO128_MC2_CLK, | ||
56 | GPIO129_MC2_CMD, | ||
57 | GPIO130_MC2_FBCLK, | ||
58 | GPIO131_MC2_DAT0, | ||
59 | GPIO132_MC2_DAT1, | ||
60 | GPIO133_MC2_DAT2, | ||
61 | GPIO134_MC2_DAT3, | ||
62 | GPIO135_MC2_DAT4, | ||
63 | GPIO136_MC2_DAT5, | ||
64 | GPIO137_MC2_DAT6, | ||
65 | GPIO138_MC2_DAT7, | ||
66 | }; | ||
67 | |||
68 | /* | 23 | /* |
69 | * SDI 0 (MicroSD slot) | 24 | * SDI 0 (MicroSD slot) |
70 | */ | 25 | */ |
@@ -216,22 +171,16 @@ static struct mmci_platform_data mop500_sdi4_data = { | |||
216 | 171 | ||
217 | void __init mop500_sdi_init(void) | 172 | void __init mop500_sdi_init(void) |
218 | { | 173 | { |
219 | nmk_config_pins(mop500_sdi_pins, ARRAY_SIZE(mop500_sdi_pins)); | 174 | /* PoP:ed eMMC on top of DB8500 v1.0 has problems with high speed */ |
175 | if (!cpu_is_u8500v10()) | ||
176 | mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED; | ||
177 | db8500_add_sdi2(&mop500_sdi2_data); | ||
178 | |||
179 | /* On-board eMMC */ | ||
180 | db8500_add_sdi4(&mop500_sdi4_data); | ||
220 | 181 | ||
221 | /* | 182 | /* |
222 | * sdi0 will finally be added when the TC35892 initializes and calls | 183 | * sdi0 will finally be added when the TC35892 initializes and calls |
223 | * mop500_sdi_tc35892_init() above. | 184 | * mop500_sdi_tc35892_init() above. |
224 | */ | 185 | */ |
225 | |||
226 | /* PoP:ed eMMC */ | ||
227 | if (!cpu_is_u8500ed()) { | ||
228 | nmk_config_pins(mop500_sdi2_pins, ARRAY_SIZE(mop500_sdi2_pins)); | ||
229 | /* POP eMMC on v1.0 has problems with high speed */ | ||
230 | if (!cpu_is_u8500v10()) | ||
231 | mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED; | ||
232 | db8500_add_sdi2(&mop500_sdi2_data); | ||
233 | } | ||
234 | |||
235 | /* On-board eMMC */ | ||
236 | db8500_add_sdi4(&mop500_sdi4_data); | ||
237 | } | 186 | } |