aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host
diff options
context:
space:
mode:
authorXiaochen Shen <xiaochen.shen@intel.com>2010-10-04 10:24:52 -0400
committerChris Ball <cjb@laptop.org>2010-10-23 09:11:19 -0400
commit292290524e54724cab78e7e79a27a3b9a8b11483 (patch)
tree94eb61fab10b162ffd24e03731ec0993ebe25496 /drivers/mmc/host
parent225d85fe7ddca2985548d98e410f7baf4a5d6260 (diff)
mmc: sdhci: Intel Medfield support
Basic support for the Intel Medfield devices Give them their own quirks as we will need to update this later. Signed-off-by: Xiaochen Shen <xiaochen.shen@intel.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc/host')
-rw-r--r--drivers/mmc/host/sdhci-pci.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
index 4f5d6d00d33..ec4b81dd493 100644
--- a/drivers/mmc/host/sdhci-pci.c
+++ b/drivers/mmc/host/sdhci-pci.c
@@ -145,6 +145,14 @@ static const struct sdhci_pci_fixes sdhci_cafe = {
145 SDHCI_QUIRK_BROKEN_TIMEOUT_VAL, 145 SDHCI_QUIRK_BROKEN_TIMEOUT_VAL,
146}; 146};
147 147
148static const struct sdhci_pci_fixes sdhci_intel_mfd_sd = {
149 .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
150};
151
152static const struct sdhci_pci_fixes sdhci_intel_mfd_emmc_sdio = {
153 .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
154};
155
148static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) 156static int jmicron_pmos(struct sdhci_pci_chip *chip, int on)
149{ 157{
150 u8 scratch; 158 u8 scratch;
@@ -494,6 +502,46 @@ static const struct pci_device_id pci_ids[] __devinitdata = {
494 .driver_data = (kernel_ulong_t)&sdhci_via, 502 .driver_data = (kernel_ulong_t)&sdhci_via,
495 }, 503 },
496 504
505 {
506 .vendor = PCI_VENDOR_ID_INTEL,
507 .device = PCI_DEVICE_ID_INTEL_MFD_SD,
508 .subvendor = PCI_ANY_ID,
509 .subdevice = PCI_ANY_ID,
510 .driver_data = (kernel_ulong_t)&sdhci_intel_mfd_sd,
511 },
512
513 {
514 .vendor = PCI_VENDOR_ID_INTEL,
515 .device = PCI_DEVICE_ID_INTEL_MFD_SDIO1,
516 .subvendor = PCI_ANY_ID,
517 .subdevice = PCI_ANY_ID,
518 .driver_data = (kernel_ulong_t)&sdhci_intel_mfd_emmc_sdio,
519 },
520
521 {
522 .vendor = PCI_VENDOR_ID_INTEL,
523 .device = PCI_DEVICE_ID_INTEL_MFD_SDIO2,
524 .subvendor = PCI_ANY_ID,
525 .subdevice = PCI_ANY_ID,
526 .driver_data = (kernel_ulong_t)&sdhci_intel_mfd_emmc_sdio,
527 },
528
529 {
530 .vendor = PCI_VENDOR_ID_INTEL,
531 .device = PCI_DEVICE_ID_INTEL_MFD_EMMC0,
532 .subvendor = PCI_ANY_ID,
533 .subdevice = PCI_ANY_ID,
534 .driver_data = (kernel_ulong_t)&sdhci_intel_mfd_emmc_sdio,
535 },
536
537 {
538 .vendor = PCI_VENDOR_ID_INTEL,
539 .device = PCI_DEVICE_ID_INTEL_MFD_EMMC1,
540 .subvendor = PCI_ANY_ID,
541 .subdevice = PCI_ANY_ID,
542 .driver_data = (kernel_ulong_t)&sdhci_intel_mfd_emmc_sdio,
543 },
544
497 { /* Generic SD host controller */ 545 { /* Generic SD host controller */
498 PCI_DEVICE_CLASS((PCI_CLASS_SYSTEM_SDHCI << 8), 0xFFFF00) 546 PCI_DEVICE_CLASS((PCI_CLASS_SYSTEM_SDHCI << 8), 0xFFFF00)
499 }, 547 },