diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2014-01-27 12:30:39 +0100 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2014-01-27 12:30:39 +0100 |
commit | 9c16e834ca41a069b4b6bdbd471bb8da6eb96373 (patch) | |
tree | f8d38959bbe124c6f2d8659097a84762e71b2bf1 | |
parent | 2939f05630869e46c664534cfd652f9560ba7a47 (diff) |
sd-card: bringup external SD
-rw-r--r-- | arch/arm/mach-mx6/board-apalis_imx6.c | 27 | ||||
-rw-r--r-- | arch/arm/mach-mx6/pads-apalis_imx6.h | 5 |
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), |