diff options
author | Andy Green <andy.green@linaro.org> | 2014-12-08 03:07:34 +0800 |
---|---|---|
committer | Andy Green <andy.green@linaro.org> | 2014-12-18 21:55:57 +0800 |
commit | 28522dde70a773eee6b4124ddb8d0ca3ff8d3dee (patch) | |
tree | 77c7acdf069728d9bc66c58d50dc64cfd8cb981b | |
parent | b7ddafcb015bcaa8eff7307679651011304073d7 (diff) |
emmc hackmainline-basis-test-2014-12-18-2
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.dtsi | 39 | ||||
-rw-r--r-- | drivers/mmc/core/core.c | 2 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci.c | 3 |
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)); |