summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Green <andy.green@linaro.org>2014-12-08 03:07:34 +0800
committerAndy Green <andy.green@linaro.org>2014-12-18 21:55:57 +0800
commit28522dde70a773eee6b4124ddb8d0ca3ff8d3dee (patch)
tree77c7acdf069728d9bc66c58d50dc64cfd8cb981b
parentb7ddafcb015bcaa8eff7307679651011304073d7 (diff)
This lets the eMMC (alone) get probed. But there's a funny partition table, only p1 can be mounted. Signed-off-by: Andy Green <andy.green@linaro.org>
-rw-r--r--arch/arm/boot/dts/msm8916-qrd.dtsi39
-rw-r--r--drivers/mmc/core/core.c2
-rw-r--r--drivers/mmc/host/sdhci.c3
3 files changed, 23 insertions, 21 deletions
diff --git a/arch/arm/boot/dts/msm8916-qrd.dtsi b/arch/arm/boot/dts/msm8916-qrd.dtsi
index 445dca98a888..de44f03bee79 100644
--- a/arch/arm/boot/dts/msm8916-qrd.dtsi
+++ b/arch/arm/boot/dts/msm8916-qrd.dtsi
@@ -72,38 +72,35 @@
};
&sdhc_1 {
- vdd-supply = <&pm8916_l8>;
- qcom,vdd-voltage-level = <2900000 2900000>;
- qcom,vdd-current-level = <200 400000>;
-
- vdd-io-supply = <&pm8916_l5>;
- qcom,vdd-io-always-on;
- qcom,vdd-io-lpm-sup;
- qcom,vdd-io-voltage-level = <1800000 1800000>;
- qcom,vdd-io-current-level = <200 60000>;
-
+// vmmc-supply = <&pm8916_l8>;
+// vqmmc-supply = <&pm8916_l5>;
+ voltage-ranges = <1800 1800>, <1800 1800>;
+
+ bus-width = <8>;
+ non-removable;
+ cap-sd-highspeed;
+ cap-mmc-highspeed;
+ mmc-hs200-1_8v;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
- qcom,nonremovable;
-
- status = "ok";
+ status = "ok";
};
&sdhc_2 {
- vdd-supply = <&pm8916_l11>;
- qcom,vdd-voltage-level = <2800000 2950000>;
- qcom,vdd-current-level = <15000 400000>;
-
- vdd-io-supply = <&pm8916_l12>;
- qcom,vdd-io-voltage-level = <1800000 2950000>;
- qcom,vdd-io-current-level = <200 50000>;
+ vmmc-supply = <&pm8916_l11>;
+ vqmmc-supply = <&pm8916_l12>;
+ voltage-ranges = <1800 1800>, <2950 2950>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
+ bus-width = <4>;
+ cap-sd-highspeed;
+ sd-uhs-ddr50;
+
#address-cells = <0>;
interrupt-parent = <&sdhc_2>;
interrupts = <0 1 2>;
@@ -115,7 +112,7 @@
interrupt-names = "hc_irq", "pwr_irq", "status_irq";
cd-gpios = <&msm_gpio 38 0x0>;
- status = "ok";
+ //status = "ok";
};
&spmi_bus {
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index f26a5f1d926d..b11f5405f628 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -45,6 +45,8 @@
#include "sd_ops.h"
#include "sdio_ops.h"
+#define DEBUG 1
+
/* If the device is not responding */
#define MMC_CORE_TIMEOUT_MS (10 * 60 * 1000) /* 10 minute timeout */
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ada1a3ea3a87..b5784751ed8f 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3162,6 +3162,9 @@ int sdhci_add_host(struct sdhci_host *host)
if (host->ocr_avail_mmc)
mmc->ocr_avail_mmc &= host->ocr_avail_mmc;
+ // !!!
+ mmc->ocr_avail |= MMC_VDD_165_195; // | MMC_VDD_32_33 | MMC_VDD_33_34;
+
if (mmc->ocr_avail == 0) {
pr_err("%s: Hardware doesn't report any "
"support voltages.\n", mmc_hostname(mmc));