summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2014-01-27 12:30:39 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2014-01-27 12:30:39 +0100
commit9c16e834ca41a069b4b6bdbd471bb8da6eb96373 (patch)
treef8d38959bbe124c6f2d8659097a84762e71b2bf1
parent2939f05630869e46c664534cfd652f9560ba7a47 (diff)
sd-card: bringup external SD
-rw-r--r--arch/arm/mach-mx6/board-apalis_imx6.c27
-rw-r--r--arch/arm/mach-mx6/pads-apalis_imx6.h5
2 files changed, 22 insertions, 10 deletions
diff --git a/arch/arm/mach-mx6/board-apalis_imx6.c b/arch/arm/mach-mx6/board-apalis_imx6.c
index 1b03997e1abd..7c92296e874f 100644
--- a/arch/arm/mach-mx6/board-apalis_imx6.c
+++ b/arch/arm/mach-mx6/board-apalis_imx6.c
@@ -80,8 +80,8 @@
#define GP_SD1_CD IMX_GPIO_NR(4, 20) /* Apalis MMC1 */
#define GP_SD1_WP (-1)
-#define GP_SD4_CD IMX_GPIO_NR(6, 14) /* Apalis SD1 */
-#define GP_SD4_WP (-1)
+#define GP_SD2_CD IMX_GPIO_NR(6, 14) /* Apalis SD1 */
+#define GP_SD2_WP (-1)
#define GP_ECSPI1_CS1 IMX_GPIO_NR(3, 19)
#define GP_USB_OTG_PWR IMX_GPIO_NR(3, 22)
#define GP_CAP_TCH_INT1 IMX_GPIO_NR(1, 9)
@@ -231,16 +231,29 @@ static struct esdhc_platform_data sd2_data = {
};
#endif
+/* Apalis eMMC */
static struct esdhc_platform_data sd3_data = {
+ .always_present = 1,
.cd_gpio = -1,
.wp_gpio = -1,
+ .support_8bit = 1,
.keep_power_at_suspend = 1,
.platform_pad_change = plt_sd_pad_change,
};
-static const struct esdhc_platform_data sd4_data __initconst = {
- .cd_gpio = GP_SD4_CD,
- .wp_gpio = -1,
+/* Apalis MMC1 */
+static const struct esdhc_platform_data sd1_data __initconst = {
+ .cd_gpio = GP_SD1_CD,
+ .wp_gpio = GP_SD1_WP,
+ .support_8bit = 1,
+ .keep_power_at_suspend = 1,
+ .platform_pad_change = plt_sd_pad_change,
+};
+
+/* Apalis SD1 */
+static const struct esdhc_platform_data sd2_data __initconst = {
+ .cd_gpio = GP_SD2_CD,
+ .wp_gpio = GP_SD2_WP,
.keep_power_at_suspend = 1,
.platform_pad_change = plt_sd_pad_change,
};
@@ -1309,7 +1322,6 @@ static void __init board_init(void)
#ifdef TODO /* Audio */
if (isn6) {
audio_data.ext_port = 3;
- sd3_data.wp_gpio = -1 ;
IOMUX_SETUP(nitrogen6x_pads);
} else {
IOMUX_SETUP(sabrelite_pads);
@@ -1409,8 +1421,9 @@ static void __init board_init(void)
imx6q_add_anatop_thermal_imx(1, &anatop_thermal_data);
imx6_init_fec(fec_data);
imx6q_add_pm_imx(0, &pm_data);
+ imx6q_add_sdhci_usdhc_imx(0, &sd1_data);
+ imx6q_add_sdhci_usdhc_imx(1, &sd2_data);
imx6q_add_sdhci_usdhc_imx(2, &sd3_data);
- imx6q_add_sdhci_usdhc_imx(3, &sd4_data);
imx_add_viv_gpu(&imx6_gpu_data, &imx6_gpu_pdata);
init_usb();
if (cpu_is_mx6q())
diff --git a/arch/arm/mach-mx6/pads-apalis_imx6.h b/arch/arm/mach-mx6/pads-apalis_imx6.h
index f4a1e8f99a49..13f2a10ff8ce 100644
--- a/arch/arm/mach-mx6/pads-apalis_imx6.h
+++ b/arch/arm/mach-mx6/pads-apalis_imx6.h
@@ -299,6 +299,8 @@ static iomux_v3_cfg_t MX6NAME(common_pads)[] = {
NEW_PAD_CTRL(MX6PAD(NANDF_D1__USDHC1_DAT5), MX6(USDHC_PAD_CTRL_22KPU_40OHM_50MHZ)),
NEW_PAD_CTRL(MX6PAD(NANDF_D2__USDHC1_DAT6), MX6(USDHC_PAD_CTRL_22KPU_40OHM_50MHZ)),
NEW_PAD_CTRL(MX6PAD(NANDF_D3__USDHC1_DAT7), MX6(USDHC_PAD_CTRL_22KPU_40OHM_50MHZ)),
+ /* Apalis SD1 */
+ SD_PINS(2, USDHC_PAD_CTRL_22KPU_40OHM_50MHZ),
/* Apalis eMMC */
SD_PINS(3, USDHC_PAD_CTRL_22KPU_40OHM_50MHZ),
NEW_PAD_CTRL(MX6PAD(SD3_DAT4__USDHC3_DAT4), MX6(USDHC_PAD_CTRL_22KPU_40OHM_50MHZ)),
@@ -306,9 +308,6 @@ static iomux_v3_cfg_t MX6NAME(common_pads)[] = {
NEW_PAD_CTRL(MX6PAD(SD3_DAT6__USDHC3_DAT6), MX6(USDHC_PAD_CTRL_22KPU_40OHM_50MHZ)),
NEW_PAD_CTRL(MX6PAD(SD3_DAT7__USDHC3_DAT7), MX6(USDHC_PAD_CTRL_22KPU_40OHM_50MHZ)),
MX6PAD(SD3_RST__USDHC3_RST),
- /* Apalis SD1 */
- SD_PINS(2, USDHC_PAD_CTRL_22KPU_40OHM_50MHZ),
-
/* USBOTG ID pin */
MX6PAD(ENET_RX_ER__ANATOP_USBOTG_ID),