mmc: sdhci-pci: Avoid 3.3V signaling on some NI 904x
authorKyle Roeschley <kyle.roeschley@ni.com>
Fri, 13 Apr 2018 21:54:58 +0000 (16:54 -0500)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 2 May 2018 13:08:44 +0000 (15:08 +0200)
On some NI 904x devices, using 3.3V signaling for extended periods of
time will physically damage the pads connected to the SDHC, eventually
causing complete failure of the controller. To work around this,
require that we avoid 3.3V signaling.

Signed-off-by: Kyle Roeschley <kyle.roeschley@ni.com>
Signed-off-by: Jennifer Dahm <jennifer.dahm@ni.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-pci-core.c
drivers/mmc/host/sdhci-pci.h

index 78c25ad35fd27f019b24f2f4045f214b0e8b5ed5..9dfbd7f7e9fa7f20590698b055a7e78a4bafe44a 100644 (file)
@@ -832,6 +832,10 @@ static int byt_sd_probe_slot(struct sdhci_pci_slot *slot)
            slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_SD)
                slot->host->mmc_host_ops.get_cd = bxt_get_cd;
 
+       if (slot->chip->pdev->subsystem_vendor == PCI_VENDOR_ID_NI &&
+           slot->chip->pdev->subsystem_device == PCI_SUBDEVICE_ID_NI_78E3)
+               slot->host->mmc->caps2 |= MMC_CAP2_AVOID_3_3V;
+
        return 0;
 }
 
index 5cbcdc448f98fdcb53533f64fe4c176fd2796d70..db9cb54ef700c693e456d8c7a66b9178beaf051b 100644 (file)
@@ -54,6 +54,7 @@
 #define PCI_DEVICE_ID_REALTEK_5250     0x5250
 
 #define PCI_SUBDEVICE_ID_NI_7884       0x7884
+#define PCI_SUBDEVICE_ID_NI_78E3       0x78e3
 
 #define PCI_VENDOR_ID_ARASAN           0x16e6
 #define PCI_DEVICE_ID_ARASAN_PHY_EMMC  0x0670