diff options
author | Subramaniam Chanderashekarapuram | 2014-12-03 18:45:02 -0600 |
---|---|---|
committer | Subramaniam Chanderashekarapuram | 2014-12-03 18:45:02 -0600 |
commit | 4d11c0d7d79fdd2b4c9aee11ef1941fbff119578 (patch) | |
tree | 8cfef9ee6a7650f7b64a39ba91fd7c79f491299b | |
parent | 27bb55605c2931929152327f9b87e7209dcf7920 (diff) | |
parent | f7f11715abc5669113383b0f73e3482c18f88949 (diff) | |
download | kernel-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.txt | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/dra72-evm.dts | 1 | ||||
-rw-r--r-- | drivers/mmc/host/omap_hsmmc.c | 17 | ||||
-rw-r--r-- | include/linux/platform_data/mmc-omap.h | 1 |
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. | |||
25 | dma-names: DMA request names. These strings correspond 1:1 with | 25 | dma-names: DMA request names. These strings correspond 1:1 with |
26 | the ordered pairs in dmas. The RX request must be "rx" and the | 26 | the ordered pairs in dmas. The RX request must be "rx" and the |
27 | TX request must be "tx". | 27 | TX request must be "tx". |
28 | caps2-mmc-hs200-1_8v: the controller supports HS200 mode | ||
28 | 29 | ||
29 | Examples: | 30 | Examples: |
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 |