board-msm7x27a-storage: Do not add SDC3 and SDC4 for QRD3/7 devices
QRD3/QRD7 does not have eMMC internal card.Hence do not add these
SD controllers during MMC init. Also modify the interrupt card
detection gpio's polarity for QRD3 / QRD7 devices.
Change-Id: I9cd2e4e7b048293d539938b5e5e845ae95a21824
Signed-off-by: Aparna Mallavarapu <aparnam@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-msm7627a-storage.c b/arch/arm/mach-msm/board-msm7627a-storage.c
index e4ee52e..564c59d 100644
--- a/arch/arm/mach-msm/board-msm7627a-storage.c
+++ b/arch/arm/mach-msm/board-msm7627a-storage.c
@@ -151,7 +151,9 @@
static void gpio_sdc1_config(void)
{
if (machine_is_msm7627a_qrd1() || machine_is_msm7627a_evb()
- || machine_is_msm8625_evb())
+ || machine_is_msm8625_evb()
+ || machine_is_msm7627a_qrd3()
+ || machine_is_msm8625_qrd7())
gpio_sdc1_hw_det = 42;
}
@@ -253,7 +255,9 @@
if (!status) {
if (machine_is_msm7627a_qrd1() ||
machine_is_msm7627a_evb() ||
- machine_is_msm8625_evb())
+ machine_is_msm8625_evb() ||
+ machine_is_msm7627a_qrd3() ||
+ machine_is_msm8625_qrd7())
status = !gpio_get_value(gpio_sdc1_hw_det);
else
status = gpio_get_value(gpio_sdc1_hw_det);
@@ -367,11 +371,15 @@
{
/* eMMC slot */
#ifdef CONFIG_MMC_MSM_SDC3_SUPPORT
- if (mmc_regulator_init(3, "emmc", 3000000))
- return;
- sdc3_plat_data.swfi_latency = msm7627a_power_collapse_latency(
+
+ /* There is no eMMC on SDC3 for QRD3 based devices */
+ if (!(machine_is_msm7627a_qrd3() || machine_is_msm8625_qrd7())) {
+ if (mmc_regulator_init(3, "emmc", 3000000))
+ return;
+ sdc3_plat_data.swfi_latency = msm7627a_power_collapse_latency(
MSM_PM_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT);
- msm_add_sdcc(3, &sdc3_plat_data);
+ msm_add_sdcc(3, &sdc3_plat_data);
+ }
#endif
/* Micro-SD slot */
#ifdef CONFIG_MMC_MSM_SDC1_SUPPORT
@@ -392,9 +400,12 @@
/* Not Used */
#if (defined(CONFIG_MMC_MSM_SDC4_SUPPORT)\
&& !defined(CONFIG_MMC_MSM_SDC3_8_BIT_SUPPORT))
- if (mmc_regulator_init(4, "smps3", 1800000))
- return;
- msm_add_sdcc(4, &sdc4_plat_data);
+ /* There is no SDC4 for QRD3/7 based devices */
+ if (!(machine_is_msm7627a_qrd3() || machine_is_msm8625_qrd7())) {
+ if (mmc_regulator_init(4, "smps3", 1800000))
+ return;
+ msm_add_sdcc(4, &sdc4_plat_data);
+ }
#endif
}
#endif