aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorMathieu J. Poirier <mathieu.poirier@linaro.org>2011-03-25 11:28:58 -0400
committerLinus Walleij <linus.walleij@linaro.org>2011-06-23 06:04:56 -0400
commit885d0fe40fb97d7f394c24ac9c88721015f852b3 (patch)
tree1a0dae48d31ca8cc3e791d2ec5c5bc17edd26c1b /arch/arm
parentd769d05498f78efdc1adff2075b3a58af40dbb76 (diff)
mach-ux500: Add SDI support for snowball board
With SDI support for the Snowball we can boot from the SD card. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Robert Marklund <robert.marklund@stericsson.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-ux500/board-mop500-sdi.c19
-rw-r--r--arch/arm/mach-ux500/board-mop500.c3
-rw-r--r--arch/arm/mach-ux500/board-mop500.h5
3 files changed, 20 insertions, 7 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c
index 5fbd6bc63cb1..d0cb9e5eb87c 100644
--- a/arch/arm/mach-ux500/board-mop500-sdi.c
+++ b/arch/arm/mach-ux500/board-mop500-sdi.c
@@ -216,15 +216,24 @@ void __init mop500_sdi_init(void)
216 /* PoP:ed eMMC on top of DB8500 v1.0 has problems with high speed */ 216 /* PoP:ed eMMC on top of DB8500 v1.0 has problems with high speed */
217 if (!cpu_is_u8500v10()) 217 if (!cpu_is_u8500v10())
218 mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED; 218 mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED;
219 db8500_add_sdi2(&mop500_sdi2_data, periphid); 219 /* sdi2 on snowball is in ATL_B mode for FSMC (LAN) */
220 if (!machine_is_snowball())
221 db8500_add_sdi2(&mop500_sdi2_data, periphid);
220 222
221 /* On-board eMMC */ 223 /* On-board eMMC */
222 db8500_add_sdi4(&mop500_sdi4_data, periphid); 224 db8500_add_sdi4(&mop500_sdi4_data, periphid);
223 225
224 if (machine_is_hrefv60()) { 226 if (machine_is_hrefv60() || machine_is_snowball()) {
225 mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO; 227 if (machine_is_hrefv60()) {
226 sdi0_en = HREFV60_SDMMC_EN_GPIO; 228 mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO;
227 sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO; 229 sdi0_en = HREFV60_SDMMC_EN_GPIO;
230 sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO;
231 } else if (machine_is_snowball()) {
232 mop500_sdi0_data.gpio_cd = SNOWBALL_SDMMC_CD_GPIO;
233 mop500_sdi0_data.cd_invert = true;
234 sdi0_en = SNOWBALL_SDMMC_EN_GPIO;
235 sdi0_vsel = SNOWBALL_SDMMC_1V8_3V_GPIO;
236 }
228 sdi0_configure(); 237 sdi0_configure();
229 } 238 }
230 239
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index e3bbb5506dd1..4eead1a0786b 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -573,8 +573,7 @@ static void __init mop500_init_machine(void)
573 ARRAY_SIZE(mop500_platform_devs)); 573 ARRAY_SIZE(mop500_platform_devs));
574 574
575 mop500_i2c_init(); 575 mop500_i2c_init();
576 if (!machine_is_snowball()) 576 mop500_sdi_init();
577 mop500_sdi_init();
578 mop500_spi_init(); 577 mop500_spi_init();
579 mop500_uart_init(); 578 mop500_uart_init();
580 579
diff --git a/arch/arm/mach-ux500/board-mop500.h b/arch/arm/mach-ux500/board-mop500.h
index 03a31cc9b084..ee77a8970c33 100644
--- a/arch/arm/mach-ux500/board-mop500.h
+++ b/arch/arm/mach-ux500/board-mop500.h
@@ -7,6 +7,11 @@
7#ifndef __BOARD_MOP500_H 7#ifndef __BOARD_MOP500_H
8#define __BOARD_MOP500_H 8#define __BOARD_MOP500_H
9 9
10/* snowball GPIO for MMC card */
11#define SNOWBALL_SDMMC_EN_GPIO 217
12#define SNOWBALL_SDMMC_1V8_3V_GPIO 228
13#define SNOWBALL_SDMMC_CD_GPIO 218
14
10/* HREFv60-specific GPIO assignments, this board has no GPIO expander */ 15/* HREFv60-specific GPIO assignments, this board has no GPIO expander */
11#define HREFV60_TOUCH_RST_GPIO 143 16#define HREFV60_TOUCH_RST_GPIO 143
12#define HREFV60_PROX_SENSE_GPIO 217 17#define HREFV60_PROX_SENSE_GPIO 217