diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/mmc/host/sdhci-pci-core.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c index bbaddf18a1b3..d0ccc6729fd2 100644 --- a/drivers/mmc/host/sdhci-pci-core.c +++ b/drivers/mmc/host/sdhci-pci-core.c | |||
| @@ -392,6 +392,7 @@ static const struct sdhci_pci_fixes sdhci_intel_pch_sdio = { | |||
| 392 | 392 | ||
| 393 | enum { | 393 | enum { |
| 394 | INTEL_DSM_FNS = 0, | 394 | INTEL_DSM_FNS = 0, |
| 395 | INTEL_DSM_V18_SWITCH = 3, | ||
| 395 | INTEL_DSM_DRV_STRENGTH = 9, | 396 | INTEL_DSM_DRV_STRENGTH = 9, |
| 396 | INTEL_DSM_D3_RETUNE = 10, | 397 | INTEL_DSM_D3_RETUNE = 10, |
| 397 | }; | 398 | }; |
| @@ -557,6 +558,19 @@ static void intel_hs400_enhanced_strobe(struct mmc_host *mmc, | |||
| 557 | sdhci_writel(host, val, INTEL_HS400_ES_REG); | 558 | sdhci_writel(host, val, INTEL_HS400_ES_REG); |
| 558 | } | 559 | } |
| 559 | 560 | ||
| 561 | static void sdhci_intel_voltage_switch(struct sdhci_host *host) | ||
| 562 | { | ||
| 563 | struct sdhci_pci_slot *slot = sdhci_priv(host); | ||
| 564 | struct intel_host *intel_host = sdhci_pci_priv(slot); | ||
| 565 | struct device *dev = &slot->chip->pdev->dev; | ||
| 566 | u32 result = 0; | ||
| 567 | int err; | ||
| 568 | |||
| 569 | err = intel_dsm(intel_host, dev, INTEL_DSM_V18_SWITCH, &result); | ||
| 570 | pr_debug("%s: %s DSM error %d result %u\n", | ||
| 571 | mmc_hostname(host->mmc), __func__, err, result); | ||
| 572 | } | ||
| 573 | |||
| 560 | static const struct sdhci_ops sdhci_intel_byt_ops = { | 574 | static const struct sdhci_ops sdhci_intel_byt_ops = { |
| 561 | .set_clock = sdhci_set_clock, | 575 | .set_clock = sdhci_set_clock, |
| 562 | .set_power = sdhci_intel_set_power, | 576 | .set_power = sdhci_intel_set_power, |
| @@ -565,6 +579,7 @@ static const struct sdhci_ops sdhci_intel_byt_ops = { | |||
| 565 | .reset = sdhci_reset, | 579 | .reset = sdhci_reset, |
| 566 | .set_uhs_signaling = sdhci_set_uhs_signaling, | 580 | .set_uhs_signaling = sdhci_set_uhs_signaling, |
| 567 | .hw_reset = sdhci_pci_hw_reset, | 581 | .hw_reset = sdhci_pci_hw_reset, |
| 582 | .voltage_switch = sdhci_intel_voltage_switch, | ||
| 568 | }; | 583 | }; |
| 569 | 584 | ||
| 570 | static void byt_read_dsm(struct sdhci_pci_slot *slot) | 585 | static void byt_read_dsm(struct sdhci_pci_slot *slot) |
