| 
33 | 33 |  */  | 
34 | 34 | #define PCI_DEVICE_ID_INTEL_PCH_SDIO00x8809  | 
35 | 35 | #define PCI_DEVICE_ID_INTEL_PCH_SDIO10x880a  | 
 | 36 | +#define PCI_DEVICE_ID_INTEL_BYT_EMMC0x0f14  | 
 | 37 | +#define PCI_DEVICE_ID_INTEL_BYT_SDIO0x0f15  | 
 | 38 | +#define PCI_DEVICE_ID_INTEL_BYT_SD0x0f16  | 
36 | 39 | 
 
  | 
37 | 40 | /*  | 
38 | 41 |  * PCI registers  | 
@@ -304,6 +307,33 @@ static const struct sdhci_pci_fixes sdhci_intel_pch_sdio = {  | 
304 | 307 | .probe_slot= pch_hc_probe_slot,  | 
305 | 308 | };  | 
306 | 309 | 
 
  | 
 | 310 | +static int byt_emmc_probe_slot(struct sdhci_pci_slot *slot)  | 
 | 311 | +{  | 
 | 312 | +slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE;  | 
 | 313 | +slot->host->mmc->caps2 |= MMC_CAP2_HC_ERASE_SZ;  | 
 | 314 | +return 0;  | 
 | 315 | +}  | 
 | 316 | + | 
 | 317 | +static int byt_sdio_probe_slot(struct sdhci_pci_slot *slot)  | 
 | 318 | +{  | 
 | 319 | +slot->host->mmc->caps |= MMC_CAP_POWER_OFF_CARD | MMC_CAP_NONREMOVABLE;  | 
 | 320 | +return 0;  | 
 | 321 | +}  | 
 | 322 | + | 
 | 323 | +static const struct sdhci_pci_fixes sdhci_intel_byt_emmc = {  | 
 | 324 | +.allow_runtime_pm = true,  | 
 | 325 | +.probe_slot= byt_emmc_probe_slot,  | 
 | 326 | +};  | 
 | 327 | + | 
 | 328 | +static const struct sdhci_pci_fixes sdhci_intel_byt_sdio = {  | 
 | 329 | +.quirks2= SDHCI_QUIRK2_HOST_OFF_CARD_ON,  | 
 | 330 | +.allow_runtime_pm = true,  | 
 | 331 | +.probe_slot= byt_sdio_probe_slot,  | 
 | 332 | +};  | 
 | 333 | + | 
 | 334 | +static const struct sdhci_pci_fixes sdhci_intel_byt_sd = {  | 
 | 335 | +};  | 
 | 336 | + | 
307 | 337 | /* O2Micro extra registers */  | 
308 | 338 | #define O2_SD_LOCK_WP0xD3  | 
309 | 339 | #define O2_SD_MULTI_VCC3V0xEE  | 
@@ -855,6 +885,30 @@ static const struct pci_device_id pci_ids[] = {  | 
855 | 885 | .driver_data= (kernel_ulong_t)&sdhci_intel_pch_sdio,  | 
856 | 886 | },  | 
857 | 887 | 
 
  | 
 | 888 | +{  | 
 | 889 | +.vendor= PCI_VENDOR_ID_INTEL,  | 
 | 890 | +.device= PCI_DEVICE_ID_INTEL_BYT_EMMC,  | 
 | 891 | +.subvendor= PCI_ANY_ID,  | 
 | 892 | +.subdevice= PCI_ANY_ID,  | 
 | 893 | +.driver_data= (kernel_ulong_t)&sdhci_intel_byt_emmc,  | 
 | 894 | +},  | 
 | 895 | + | 
 | 896 | +{  | 
 | 897 | +.vendor= PCI_VENDOR_ID_INTEL,  | 
 | 898 | +.device= PCI_DEVICE_ID_INTEL_BYT_SDIO,  | 
 | 899 | +.subvendor= PCI_ANY_ID,  | 
 | 900 | +.subdevice= PCI_ANY_ID,  | 
 | 901 | +.driver_data= (kernel_ulong_t)&sdhci_intel_byt_sdio,  | 
 | 902 | +},  | 
 | 903 | + | 
 | 904 | +{  | 
 | 905 | +.vendor= PCI_VENDOR_ID_INTEL,  | 
 | 906 | +.device= PCI_DEVICE_ID_INTEL_BYT_SD,  | 
 | 907 | +.subvendor= PCI_ANY_ID,  | 
 | 908 | +.subdevice= PCI_ANY_ID,  | 
 | 909 | +.driver_data= (kernel_ulong_t)&sdhci_intel_byt_sd,  | 
 | 910 | +},  | 
 | 911 | + | 
858 | 912 | {  | 
859 | 913 | .vendor= PCI_VENDOR_ID_O2,  | 
860 | 914 | .device= PCI_DEVICE_ID_O2_8120,  | 
 | 
0 commit comments