diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-04-25 07:59:26 -0400 |
---|---|---|
committer | Chris Ball <chris@printf.net> | 2014-05-22 08:33:11 -0400 |
commit | 96d7b78cfc2fd6b1539704e2d33239dbaa097cc4 (patch) | |
tree | e29d9cc9bbf57aa5f4941cd2d4534bd39130ade4 | |
parent | 13e645012dff774895906058163ae244f47b9b81 (diff) |
mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function
Add sdhci_set_uhs_signaling() and always call the set_uhs_signaling
method. This avoids quirks being added into sdhci_set_uhs_signaling().
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Tested-by: Markus Pargmann <mpa@pengutronix.de>
Tested-by: Stephen Warren <swarren@nvidia.com>
[Ulf Hansson] Resolved conflict
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
-rw-r--r-- | drivers/mmc/host/sdhci-acpi.c | 2 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-bcm-kona.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-bcm2835.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-cns3xxx.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-dove.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-of-arasan.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-of-esdhc.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-of-hlwd.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-pci.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-pltfm.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-pxav2.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-pxav3.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-s3c.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-sirf.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-spear.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-tegra.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci.c | 44 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci.h | 1 |
18 files changed, 42 insertions, 20 deletions
diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c index 323e2a688563..8ce3c28cb76e 100644 --- a/drivers/mmc/host/sdhci-acpi.c +++ b/drivers/mmc/host/sdhci-acpi.c | |||
@@ -106,6 +106,7 @@ static const struct sdhci_ops sdhci_acpi_ops_dflt = { | |||
106 | .enable_dma = sdhci_acpi_enable_dma, | 106 | .enable_dma = sdhci_acpi_enable_dma, |
107 | .set_bus_width = sdhci_set_bus_width, | 107 | .set_bus_width = sdhci_set_bus_width, |
108 | .reset = sdhci_reset, | 108 | .reset = sdhci_reset, |
109 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
109 | }; | 110 | }; |
110 | 111 | ||
111 | static const struct sdhci_ops sdhci_acpi_ops_int = { | 112 | static const struct sdhci_ops sdhci_acpi_ops_int = { |
@@ -113,6 +114,7 @@ static const struct sdhci_ops sdhci_acpi_ops_int = { | |||
113 | .enable_dma = sdhci_acpi_enable_dma, | 114 | .enable_dma = sdhci_acpi_enable_dma, |
114 | .set_bus_width = sdhci_set_bus_width, | 115 | .set_bus_width = sdhci_set_bus_width, |
115 | .reset = sdhci_reset, | 116 | .reset = sdhci_reset, |
117 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
116 | .hw_reset = sdhci_acpi_int_hw_reset, | 118 | .hw_reset = sdhci_acpi_int_hw_reset, |
117 | }; | 119 | }; |
118 | 120 | ||
diff --git a/drivers/mmc/host/sdhci-bcm-kona.c b/drivers/mmc/host/sdhci-bcm-kona.c index e610811c09b0..dd780c315a63 100644 --- a/drivers/mmc/host/sdhci-bcm-kona.c +++ b/drivers/mmc/host/sdhci-bcm-kona.c | |||
@@ -212,6 +212,7 @@ static struct sdhci_ops sdhci_bcm_kona_ops = { | |||
212 | .platform_send_init_74_clocks = sdhci_bcm_kona_init_74_clocks, | 212 | .platform_send_init_74_clocks = sdhci_bcm_kona_init_74_clocks, |
213 | .set_bus_width = sdhci_set_bus_width, | 213 | .set_bus_width = sdhci_set_bus_width, |
214 | .reset = sdhci_reset, | 214 | .reset = sdhci_reset, |
215 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
215 | .card_event = sdhci_bcm_kona_card_event, | 216 | .card_event = sdhci_bcm_kona_card_event, |
216 | }; | 217 | }; |
217 | 218 | ||
diff --git a/drivers/mmc/host/sdhci-bcm2835.c b/drivers/mmc/host/sdhci-bcm2835.c index 74906d6008e1..46af9a439d7b 100644 --- a/drivers/mmc/host/sdhci-bcm2835.c +++ b/drivers/mmc/host/sdhci-bcm2835.c | |||
@@ -136,6 +136,7 @@ static const struct sdhci_ops bcm2835_sdhci_ops = { | |||
136 | .get_min_clock = bcm2835_sdhci_get_min_clock, | 136 | .get_min_clock = bcm2835_sdhci_get_min_clock, |
137 | .set_bus_width = sdhci_set_bus_width, | 137 | .set_bus_width = sdhci_set_bus_width, |
138 | .reset = sdhci_reset, | 138 | .reset = sdhci_reset, |
139 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
139 | }; | 140 | }; |
140 | 141 | ||
141 | static const struct sdhci_pltfm_data bcm2835_sdhci_pdata = { | 142 | static const struct sdhci_pltfm_data bcm2835_sdhci_pdata = { |
diff --git a/drivers/mmc/host/sdhci-cns3xxx.c b/drivers/mmc/host/sdhci-cns3xxx.c index 587d73ef33ff..14b74075589a 100644 --- a/drivers/mmc/host/sdhci-cns3xxx.c +++ b/drivers/mmc/host/sdhci-cns3xxx.c | |||
@@ -81,6 +81,7 @@ static const struct sdhci_ops sdhci_cns3xxx_ops = { | |||
81 | .set_clock = sdhci_cns3xxx_set_clock, | 81 | .set_clock = sdhci_cns3xxx_set_clock, |
82 | .set_bus_width = sdhci_set_bus_width, | 82 | .set_bus_width = sdhci_set_bus_width, |
83 | .reset = sdhci_reset, | 83 | .reset = sdhci_reset, |
84 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
84 | }; | 85 | }; |
85 | 86 | ||
86 | static const struct sdhci_pltfm_data sdhci_cns3xxx_pdata = { | 87 | static const struct sdhci_pltfm_data sdhci_cns3xxx_pdata = { |
diff --git a/drivers/mmc/host/sdhci-dove.c b/drivers/mmc/host/sdhci-dove.c index 8ef4ab52f8e0..0d315f4496c8 100644 --- a/drivers/mmc/host/sdhci-dove.c +++ b/drivers/mmc/host/sdhci-dove.c | |||
@@ -89,6 +89,7 @@ static const struct sdhci_ops sdhci_dove_ops = { | |||
89 | .set_clock = sdhci_set_clock, | 89 | .set_clock = sdhci_set_clock, |
90 | .set_bus_width = sdhci_set_bus_width, | 90 | .set_bus_width = sdhci_set_bus_width, |
91 | .reset = sdhci_reset, | 91 | .reset = sdhci_reset, |
92 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
92 | }; | 93 | }; |
93 | 94 | ||
94 | static const struct sdhci_pltfm_data sdhci_dove_pdata = { | 95 | static const struct sdhci_pltfm_data sdhci_dove_pdata = { |
diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c index f0ee594f25d1..5bd1092310f2 100644 --- a/drivers/mmc/host/sdhci-of-arasan.c +++ b/drivers/mmc/host/sdhci-of-arasan.c | |||
@@ -57,6 +57,7 @@ static struct sdhci_ops sdhci_arasan_ops = { | |||
57 | .get_timeout_clock = sdhci_arasan_get_timeout_clock, | 57 | .get_timeout_clock = sdhci_arasan_get_timeout_clock, |
58 | .set_bus_width = sdhci_set_bus_width, | 58 | .set_bus_width = sdhci_set_bus_width, |
59 | .reset = sdhci_reset, | 59 | .reset = sdhci_reset, |
60 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
60 | }; | 61 | }; |
61 | 62 | ||
62 | static struct sdhci_pltfm_data sdhci_arasan_pdata = { | 63 | static struct sdhci_pltfm_data sdhci_arasan_pdata = { |
diff --git a/drivers/mmc/host/sdhci-of-esdhc.c b/drivers/mmc/host/sdhci-of-esdhc.c index c4f8cd3f83c8..fcaeae5f55b8 100644 --- a/drivers/mmc/host/sdhci-of-esdhc.c +++ b/drivers/mmc/host/sdhci-of-esdhc.c | |||
@@ -309,6 +309,7 @@ static const struct sdhci_ops sdhci_esdhc_ops = { | |||
309 | .adma_workaround = esdhci_of_adma_workaround, | 309 | .adma_workaround = esdhci_of_adma_workaround, |
310 | .set_bus_width = esdhc_pltfm_set_bus_width, | 310 | .set_bus_width = esdhc_pltfm_set_bus_width, |
311 | .reset = sdhci_reset, | 311 | .reset = sdhci_reset, |
312 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
312 | }; | 313 | }; |
313 | 314 | ||
314 | static const struct sdhci_pltfm_data sdhci_esdhc_pdata = { | 315 | static const struct sdhci_pltfm_data sdhci_esdhc_pdata = { |
diff --git a/drivers/mmc/host/sdhci-of-hlwd.c b/drivers/mmc/host/sdhci-of-hlwd.c index a4a1f0f2c0a0..b341661369a2 100644 --- a/drivers/mmc/host/sdhci-of-hlwd.c +++ b/drivers/mmc/host/sdhci-of-hlwd.c | |||
@@ -61,6 +61,7 @@ static const struct sdhci_ops sdhci_hlwd_ops = { | |||
61 | .set_clock = sdhci_set_clock, | 61 | .set_clock = sdhci_set_clock, |
62 | .set_bus_width = sdhci_set_bus_width, | 62 | .set_bus_width = sdhci_set_bus_width, |
63 | .reset = sdhci_reset, | 63 | .reset = sdhci_reset, |
64 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
64 | }; | 65 | }; |
65 | 66 | ||
66 | static const struct sdhci_pltfm_data sdhci_hlwd_pdata = { | 67 | static const struct sdhci_pltfm_data sdhci_hlwd_pdata = { |
diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c index b3a28f6b170e..52c42fcc284c 100644 --- a/drivers/mmc/host/sdhci-pci.c +++ b/drivers/mmc/host/sdhci-pci.c | |||
@@ -1082,6 +1082,7 @@ static const struct sdhci_ops sdhci_pci_ops = { | |||
1082 | .enable_dma = sdhci_pci_enable_dma, | 1082 | .enable_dma = sdhci_pci_enable_dma, |
1083 | .set_bus_width = sdhci_pci_set_bus_width, | 1083 | .set_bus_width = sdhci_pci_set_bus_width, |
1084 | .reset = sdhci_reset, | 1084 | .reset = sdhci_reset, |
1085 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
1085 | .hw_reset = sdhci_pci_hw_reset, | 1086 | .hw_reset = sdhci_pci_hw_reset, |
1086 | }; | 1087 | }; |
1087 | 1088 | ||
diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c index 1fb89f44bd58..7e834fb78f42 100644 --- a/drivers/mmc/host/sdhci-pltfm.c +++ b/drivers/mmc/host/sdhci-pltfm.c | |||
@@ -48,6 +48,7 @@ static const struct sdhci_ops sdhci_pltfm_ops = { | |||
48 | .set_clock = sdhci_set_clock, | 48 | .set_clock = sdhci_set_clock, |
49 | .set_bus_width = sdhci_set_bus_width, | 49 | .set_bus_width = sdhci_set_bus_width, |
50 | .reset = sdhci_reset, | 50 | .reset = sdhci_reset, |
51 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
51 | }; | 52 | }; |
52 | 53 | ||
53 | #ifdef CONFIG_OF | 54 | #ifdef CONFIG_OF |
diff --git a/drivers/mmc/host/sdhci-pxav2.c b/drivers/mmc/host/sdhci-pxav2.c index db5257bf032e..3c0f3c0a1cc8 100644 --- a/drivers/mmc/host/sdhci-pxav2.c +++ b/drivers/mmc/host/sdhci-pxav2.c | |||
@@ -116,6 +116,7 @@ static const struct sdhci_ops pxav2_sdhci_ops = { | |||
116 | .get_max_clock = sdhci_pltfm_clk_get_max_clock, | 116 | .get_max_clock = sdhci_pltfm_clk_get_max_clock, |
117 | .set_bus_width = pxav2_mmc_set_bus_width, | 117 | .set_bus_width = pxav2_mmc_set_bus_width, |
118 | .reset = pxav2_reset, | 118 | .reset = pxav2_reset, |
119 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
119 | }; | 120 | }; |
120 | 121 | ||
121 | #ifdef CONFIG_OF | 122 | #ifdef CONFIG_OF |
diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c index 05574104a254..f4f128947561 100644 --- a/drivers/mmc/host/sdhci-pxav3.c +++ b/drivers/mmc/host/sdhci-pxav3.c | |||
@@ -229,6 +229,7 @@ static const struct sdhci_ops pxav3_sdhci_ops = { | |||
229 | .get_max_clock = sdhci_pltfm_clk_get_max_clock, | 229 | .get_max_clock = sdhci_pltfm_clk_get_max_clock, |
230 | .set_bus_width = sdhci_set_bus_width, | 230 | .set_bus_width = sdhci_set_bus_width, |
231 | .reset = pxav3_reset, | 231 | .reset = pxav3_reset, |
232 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
232 | }; | 233 | }; |
233 | 234 | ||
234 | static struct sdhci_pltfm_data sdhci_pxav3_pdata = { | 235 | static struct sdhci_pltfm_data sdhci_pxav3_pdata = { |
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c index 9e6f1c52982c..781b8a943d38 100644 --- a/drivers/mmc/host/sdhci-s3c.c +++ b/drivers/mmc/host/sdhci-s3c.c | |||
@@ -371,6 +371,7 @@ static struct sdhci_ops sdhci_s3c_ops = { | |||
371 | .get_min_clock = sdhci_s3c_get_min_clock, | 371 | .get_min_clock = sdhci_s3c_get_min_clock, |
372 | .set_bus_width = sdhci_s3c_set_bus_width, | 372 | .set_bus_width = sdhci_s3c_set_bus_width, |
373 | .reset = sdhci_reset, | 373 | .reset = sdhci_reset, |
374 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
374 | }; | 375 | }; |
375 | 376 | ||
376 | static void sdhci_s3c_notify_change(struct platform_device *dev, int state) | 377 | static void sdhci_s3c_notify_change(struct platform_device *dev, int state) |
diff --git a/drivers/mmc/host/sdhci-sirf.c b/drivers/mmc/host/sdhci-sirf.c index 3b775348b470..17004531d089 100644 --- a/drivers/mmc/host/sdhci-sirf.c +++ b/drivers/mmc/host/sdhci-sirf.c | |||
@@ -32,6 +32,7 @@ static struct sdhci_ops sdhci_sirf_ops = { | |||
32 | .get_max_clock = sdhci_sirf_get_max_clk, | 32 | .get_max_clock = sdhci_sirf_get_max_clk, |
33 | .set_bus_width = sdhci_set_bus_width, | 33 | .set_bus_width = sdhci_set_bus_width, |
34 | .reset = sdhci_reset, | 34 | .reset = sdhci_reset, |
35 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
35 | }; | 36 | }; |
36 | 37 | ||
37 | static struct sdhci_pltfm_data sdhci_sirf_pdata = { | 38 | static struct sdhci_pltfm_data sdhci_sirf_pdata = { |
diff --git a/drivers/mmc/host/sdhci-spear.c b/drivers/mmc/host/sdhci-spear.c index 8bf64ab36720..9d535c7336ef 100644 --- a/drivers/mmc/host/sdhci-spear.c +++ b/drivers/mmc/host/sdhci-spear.c | |||
@@ -41,6 +41,7 @@ static const struct sdhci_ops sdhci_pltfm_ops = { | |||
41 | .set_clock = sdhci_set_clock, | 41 | .set_clock = sdhci_set_clock, |
42 | .set_bus_width = sdhci_set_bus_width, | 42 | .set_bus_width = sdhci_set_bus_width, |
43 | .reset = sdhci_reset, | 43 | .reset = sdhci_reset, |
44 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
44 | }; | 45 | }; |
45 | 46 | ||
46 | #ifdef CONFIG_OF | 47 | #ifdef CONFIG_OF |
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index a0a8b5cc3b0c..d06b6ff60432 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c | |||
@@ -156,6 +156,7 @@ static const struct sdhci_ops tegra_sdhci_ops = { | |||
156 | .set_clock = sdhci_set_clock, | 156 | .set_clock = sdhci_set_clock, |
157 | .set_bus_width = tegra_sdhci_set_bus_width, | 157 | .set_bus_width = tegra_sdhci_set_bus_width, |
158 | .reset = tegra_sdhci_reset, | 158 | .reset = tegra_sdhci_reset, |
159 | .set_uhs_signaling = sdhci_set_uhs_signaling, | ||
159 | }; | 160 | }; |
160 | 161 | ||
161 | static const struct sdhci_pltfm_data sdhci_tegra20_pdata = { | 162 | static const struct sdhci_pltfm_data sdhci_tegra20_pdata = { |
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 69e58d071b33..0073aae0adcb 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c | |||
@@ -1404,6 +1404,29 @@ void sdhci_set_bus_width(struct sdhci_host *host, int width) | |||
1404 | } | 1404 | } |
1405 | EXPORT_SYMBOL_GPL(sdhci_set_bus_width); | 1405 | EXPORT_SYMBOL_GPL(sdhci_set_bus_width); |
1406 | 1406 | ||
1407 | void sdhci_set_uhs_signaling(struct sdhci_host *host, unsigned timing) | ||
1408 | { | ||
1409 | u16 ctrl_2; | ||
1410 | |||
1411 | ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); | ||
1412 | /* Select Bus Speed Mode for host */ | ||
1413 | ctrl_2 &= ~SDHCI_CTRL_UHS_MASK; | ||
1414 | if ((timing == MMC_TIMING_MMC_HS200) || | ||
1415 | (timing == MMC_TIMING_UHS_SDR104)) | ||
1416 | ctrl_2 |= SDHCI_CTRL_UHS_SDR104; | ||
1417 | else if (timing == MMC_TIMING_UHS_SDR12) | ||
1418 | ctrl_2 |= SDHCI_CTRL_UHS_SDR12; | ||
1419 | else if (timing == MMC_TIMING_UHS_SDR25) | ||
1420 | ctrl_2 |= SDHCI_CTRL_UHS_SDR25; | ||
1421 | else if (timing == MMC_TIMING_UHS_SDR50) | ||
1422 | ctrl_2 |= SDHCI_CTRL_UHS_SDR50; | ||
1423 | else if ((timing == MMC_TIMING_UHS_DDR50) || | ||
1424 | (timing == MMC_TIMING_MMC_DDR52)) | ||
1425 | ctrl_2 |= SDHCI_CTRL_UHS_DDR50; | ||
1426 | sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); | ||
1427 | } | ||
1428 | EXPORT_SYMBOL_GPL(sdhci_set_uhs_signaling); | ||
1429 | |||
1407 | static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios) | 1430 | static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios) |
1408 | { | 1431 | { |
1409 | unsigned long flags; | 1432 | unsigned long flags; |
@@ -1514,26 +1537,7 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios) | |||
1514 | clk &= ~SDHCI_CLOCK_CARD_EN; | 1537 | clk &= ~SDHCI_CLOCK_CARD_EN; |
1515 | sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); | 1538 | sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); |
1516 | 1539 | ||
1517 | if (host->ops->set_uhs_signaling) | 1540 | host->ops->set_uhs_signaling(host, ios->timing); |
1518 | host->ops->set_uhs_signaling(host, ios->timing); | ||
1519 | else { | ||
1520 | ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); | ||
1521 | /* Select Bus Speed Mode for host */ | ||
1522 | ctrl_2 &= ~SDHCI_CTRL_UHS_MASK; | ||
1523 | if ((ios->timing == MMC_TIMING_MMC_HS200) || | ||
1524 | (ios->timing == MMC_TIMING_UHS_SDR104)) | ||
1525 | ctrl_2 |= SDHCI_CTRL_UHS_SDR104; | ||
1526 | else if (ios->timing == MMC_TIMING_UHS_SDR12) | ||
1527 | ctrl_2 |= SDHCI_CTRL_UHS_SDR12; | ||
1528 | else if (ios->timing == MMC_TIMING_UHS_SDR25) | ||
1529 | ctrl_2 |= SDHCI_CTRL_UHS_SDR25; | ||
1530 | else if (ios->timing == MMC_TIMING_UHS_SDR50) | ||
1531 | ctrl_2 |= SDHCI_CTRL_UHS_SDR50; | ||
1532 | else if ((ios->timing == MMC_TIMING_UHS_DDR50) || | ||
1533 | (ios->timing == MMC_TIMING_MMC_DDR52)) | ||
1534 | ctrl_2 |= SDHCI_CTRL_UHS_DDR50; | ||
1535 | sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); | ||
1536 | } | ||
1537 | 1541 | ||
1538 | if (!(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN) && | 1542 | if (!(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN) && |
1539 | ((ios->timing == MMC_TIMING_UHS_SDR12) || | 1543 | ((ios->timing == MMC_TIMING_UHS_SDR12) || |
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index 3179a8053019..7a35395e5f56 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h | |||
@@ -403,6 +403,7 @@ static inline bool sdhci_sdio_irq_enabled(struct sdhci_host *host) | |||
403 | void sdhci_set_clock(struct sdhci_host *host, unsigned int clock); | 403 | void sdhci_set_clock(struct sdhci_host *host, unsigned int clock); |
404 | void sdhci_set_bus_width(struct sdhci_host *host, int width); | 404 | void sdhci_set_bus_width(struct sdhci_host *host, int width); |
405 | void sdhci_reset(struct sdhci_host *host, u8 mask); | 405 | void sdhci_reset(struct sdhci_host *host, u8 mask); |
406 | void sdhci_set_uhs_signaling(struct sdhci_host *host, unsigned timing); | ||
406 | 407 | ||
407 | #ifdef CONFIG_PM | 408 | #ifdef CONFIG_PM |
408 | extern int sdhci_suspend_host(struct sdhci_host *host); | 409 | extern int sdhci_suspend_host(struct sdhci_host *host); |