aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSubramaniam Chanderashekarapuram2014-12-03 18:45:02 -0600
committerSubramaniam Chanderashekarapuram2014-12-03 18:45:02 -0600
commit4d11c0d7d79fdd2b4c9aee11ef1941fbff119578 (patch)
tree8cfef9ee6a7650f7b64a39ba91fd7c79f491299b
parent27bb55605c2931929152327f9b87e7209dcf7920 (diff)
parentf7f11715abc5669113383b0f73e3482c18f88949 (diff)
downloadkernel-audio-p-ti-android-3.8.y.tar.gz
kernel-audio-p-ti-android-3.8.y.tar.xz
kernel-audio-p-ti-android-3.8.y.zip
Merge branch 'p-ti-linux-3.8.y' of git://git.omapzoom.org/kernel/omap into p-ti-android-3.8.yp-ti-android-3.8.y
* 'p-ti-linux-3.8.y' of git://git.omapzoom.org/kernel/omap: arm: dra72: dts: Enable the HS200 property for MMC2 mmc: omap-hsmmc: Set HS200 via DT property Change-Id: I8c5fbead05a87ebce2d8b1fface4be8ecdfdce9a Signed-off-by: Subramaniam Chanderashekarapuram <subramaniam.ca@ti.com>
-rw-r--r--Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt1
-rw-r--r--arch/arm/boot/dts/dra72-evm.dts1
-rw-r--r--drivers/mmc/host/omap_hsmmc.c17
-rw-r--r--include/linux/platform_data/mmc-omap.h1
4 files changed, 10 insertions, 10 deletions
diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
index 826cc51e425f..489db582589f 100644
--- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
+++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
@@ -25,6 +25,7 @@ One tx and one rx pair is required.
25dma-names: DMA request names. These strings correspond 1:1 with 25dma-names: DMA request names. These strings correspond 1:1 with
26the ordered pairs in dmas. The RX request must be "rx" and the 26the ordered pairs in dmas. The RX request must be "rx" and the
27TX request must be "tx". 27TX request must be "tx".
28caps2-mmc-hs200-1_8v: the controller supports HS200 mode
28 29
29Examples: 30Examples:
30 31
diff --git a/arch/arm/boot/dts/dra72-evm.dts b/arch/arm/boot/dts/dra72-evm.dts
index 38fef89b3b99..fbe3622bb5e2 100644
--- a/arch/arm/boot/dts/dra72-evm.dts
+++ b/arch/arm/boot/dts/dra72-evm.dts
@@ -850,6 +850,7 @@
850 vmmc-supply = <&vmmc2_fixed>; 850 vmmc-supply = <&vmmc2_fixed>;
851 bus-width = <8>; 851 bus-width = <8>;
852 max-frequency = <192000000>; 852 max-frequency = <192000000>;
853 caps2-mmc-hs200-1_8v;
853 ti,non-removable; 854 ti,non-removable;
854 pinctrl-names = "default"; 855 pinctrl-names = "default";
855 pinctrl-0 = <&mmc2_pins>; 856 pinctrl-0 = <&mmc2_pins>;
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 37182f70a8ec..346ed86c31ee 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2135,6 +2135,9 @@ static struct omap_mmc_platform_data *of_get_hsmmc_pdata(struct device *dev)
2135 if (of_find_property(np, "ti,needs-special-hs-handling", NULL)) 2135 if (of_find_property(np, "ti,needs-special-hs-handling", NULL))
2136 pdata->slots[0].features |= HSMMC_HAS_HSPE_SUPPORT; 2136 pdata->slots[0].features |= HSMMC_HAS_HSPE_SUPPORT;
2137 2137
2138 if (of_find_property(np, "caps2-mmc-hs200-1_8v", NULL))
2139 pdata->slots[0].caps2 |= MMC_CAP2_HS200_1_8V_SDR | MMC_CAP2_HS200;
2140
2138 return pdata; 2141 return pdata;
2139} 2142}
2140#else 2143#else
@@ -2157,7 +2160,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
2157 unsigned tx_req, rx_req; 2160 unsigned tx_req, rx_req;
2158 struct dmaengine_chan_caps *dma_chan_caps; 2161 struct dmaengine_chan_caps *dma_chan_caps;
2159 struct pinctrl *pinctrl; 2162 struct pinctrl *pinctrl;
2160 u32 revision, capa2; 2163 u32 revision;
2161 2164
2162 match = of_match_device(of_match_ptr(omap_mmc_of_match), &pdev->dev); 2165 match = of_match_device(of_match_ptr(omap_mmc_of_match), &pdev->dev);
2163 if (match) { 2166 if (match) {
@@ -2287,15 +2290,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
2287 mmc->caps |= MMC_CAP_DRIVER_TYPE_A | MMC_CAP_DRIVER_TYPE_C | 2290 mmc->caps |= MMC_CAP_DRIVER_TYPE_A | MMC_CAP_DRIVER_TYPE_C |
2288 MMC_CAP_DRIVER_TYPE_D; 2291 MMC_CAP_DRIVER_TYPE_D;
2289 2292
2290 capa2 = OMAP_HSMMC_READ(host->base, CAPA2); 2293 if ((mmc_slot(host).caps2 & (MMC_CAP2_HS200_1_8V_SDR | MMC_CAP2_HS200)) &&
2291 if ((capa2 & SDR104) && (mmc->f_max > (2 * MMC_HIGH_DDR_MAX_DTR))) { 2294 (mmc->f_max > 2 * MMC_HIGH_DDR_MAX_DTR))
2292 mmc->caps |= MMC_CAP_UHS_SDR104 | MMC_CAP_UHS_SDR50; 2295 mmc->caps2 |= mmc_slot(host).caps2;
2293 mmc->caps2 |= MMC_CAP2_HS200_1_8V_SDR;
2294 }
2295 if (capa2 & SDR50)
2296 mmc->caps |= MMC_CAP_UHS_SDR50;
2297 if (capa2 & DDR50)
2298 mmc->caps |= MMC_CAP_UHS_DDR50;
2299 2296
2300 omap_hsmmc_conf_bus_power(host); 2297 omap_hsmmc_conf_bus_power(host);
2301 2298
diff --git a/include/linux/platform_data/mmc-omap.h b/include/linux/platform_data/mmc-omap.h
index 2bf1b30cb5dc..e104597ddf0b 100644
--- a/include/linux/platform_data/mmc-omap.h
+++ b/include/linux/platform_data/mmc-omap.h
@@ -76,6 +76,7 @@ struct omap_mmc_platform_data {
76 u8 wires; /* Used for the MMC driver on omap1 and 2420 */ 76 u8 wires; /* Used for the MMC driver on omap1 and 2420 */
77 u32 caps; /* Used for the MMC driver on 2430 and later */ 77 u32 caps; /* Used for the MMC driver on 2430 and later */
78 u32 pm_caps; /* PM capabilities of the mmc */ 78 u32 pm_caps; /* PM capabilities of the mmc */
79 u32 caps2;
79 80
80 /* 81 /*
81 * nomux means "standard" muxing is wrong on this board, and 82 * nomux means "standard" muxing is wrong on this board, and