/* linux/drivers/mmc/host/sdhci-pci.c - SDHCI on PCI bus interface * * Copyright (C) 2005-2008 Pierre Ossman, All Rights Reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * Thanks to the following companies for their support: * * - JMicron (hardware and technical support) */#include<linux/delay.h>#include<linux/highmem.h>#include<linux/module.h>#include<linux/pci.h>#include<linux/dma-mapping.h>#include<linux/slab.h>#include<linux/device.h>#include<linux/mmc/host.h>#include<linux/scatterlist.h>#include<linux/io.h>#include<linux/gpio.h>#include<linux/pm_runtime.h>#include<linux/mmc/sdhci-pci-data.h>#include"sdhci.h"/* * PCI device IDs */#define PCI_DEVICE_ID_INTEL_PCH_SDIO0 0x8809#define PCI_DEVICE_ID_INTEL_PCH_SDIO1 0x880a/* * PCI registers */#define PCI_SDHCI_IFPIO 0x00#define PCI_SDHCI_IFDMA 0x01#define PCI_SDHCI_IFVENDOR 0x02#define PCI_SLOT_INFO 0x40 /* 8 bits */#define PCI_SLOT_INFO_SLOTS(x) ((x >> 4) & 7)#define PCI_SLOT_INFO_FIRST_BAR_MASK 0x07#define MAX_SLOTS 8structsdhci_pci_chip;structsdhci_pci_slot;structsdhci_pci_fixes{unsignedintquirks;unsignedintquirks2;boolallow_runtime_pm;int(*probe)(structsdhci_pci_chip*);int(*probe_slot)(struct