summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorB38613 <B38613@freescale.com>2012-05-18 18:14:56 +0800
committerB38613 <B38613@freescale.com>2012-05-18 18:26:05 +0800
commitd90c6891f4c686c655d96c6c928ad2815e85963d (patch)
tree02af3d2f8e7a169093a14d63685792ba8218f63a /arch
parent55c52aad613adf491842c746f72a88289ce94faa (diff)
ENGR00209686-1:sdio:suspend/resume issue
1.add MMC_PM_WAKE_SDIO_IRQ capability, it should be used together with MMC_PM_KEEP_POWER although not support SDIO wakeup in function. 2.add MMC_CAP_NONREMOVABLE to describe imx6's three sdhc devices's removable feature.Now emmc is permanent,sdio and sd is removable instead of all default were permanent before. According to this feature, detimine whether reinit card or not in resume. Signed-off-by: B38613 <B38613@freescale.com> (cherry picked from commit f60b5fc7755b1d7bc1d5cc177f1f98398fb2c578)
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabresd.c3
-rw-r--r--arch/arm/plat-mxc/include/mach/esdhc.h8
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabresd.c b/arch/arm/mach-mx6/board-mx6q_sabresd.c
index 3ddbe1056a4a..7548d8981514 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabresd.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabresd.c
@@ -212,6 +212,7 @@ static const struct esdhc_platform_data mx6q_sabresd_sd2_data __initconst = {
.keep_power_at_suspend = 1,
.support_8bit = 1,
.delay_line = 0,
+ .cd_type = ESDHC_CD_CONTROLLER,
};
static const struct esdhc_platform_data mx6q_sabresd_sd3_data __initconst = {
@@ -220,6 +221,7 @@ static const struct esdhc_platform_data mx6q_sabresd_sd3_data __initconst = {
.keep_power_at_suspend = 1,
.support_8bit = 1,
.delay_line = 0,
+ .cd_type = ESDHC_CD_CONTROLLER,
};
static const struct esdhc_platform_data mx6q_sabresd_sd4_data __initconst = {
@@ -227,6 +229,7 @@ static const struct esdhc_platform_data mx6q_sabresd_sd4_data __initconst = {
.keep_power_at_suspend = 1,
.support_8bit = 1,
.delay_line = 0,
+ .cd_type = ESDHC_CD_PERMANENT,
};
static const struct anatop_thermal_platform_data
diff --git a/arch/arm/plat-mxc/include/mach/esdhc.h b/arch/arm/plat-mxc/include/mach/esdhc.h
index 1862c70ac13d..71ce14956495 100644
--- a/arch/arm/plat-mxc/include/mach/esdhc.h
+++ b/arch/arm/plat-mxc/include/mach/esdhc.h
@@ -10,6 +10,13 @@
#ifndef __ASM_ARCH_IMX_ESDHC_H
#define __ASM_ARCH_IMX_ESDHC_H
+enum cd_types {
+ ESDHC_CD_NONE, /* no CD, neither controller nor gpio */
+ ESDHC_CD_CONTROLLER, /* mmc controller internal CD */
+ ESDHC_CD_GPIO, /* external gpio pin for CD */
+ ESDHC_CD_PERMANENT, /* no CD, card permanently wired to host */
+};
+
/**
* struct esdhc_platform_data - optional platform data for esdhc on i.MX
*
@@ -22,6 +29,7 @@
struct esdhc_platform_data {
unsigned int wp_gpio;
unsigned int cd_gpio;
+ enum cd_types cd_type;
unsigned int always_present;
unsigned int support_18v;
unsigned int support_8bit;