blob: 4787b12b45bd488777bf42f727676748304d67ea [file] [log] [blame]
#ifndef LINUX_MMC_SDHCI_PCI_DATA_H
#define LINUX_MMC_SDHCI_PCI_DATA_H
struct pci_dev;
struct sdhci_pci_data {
struct pci_dev *pdev;
int slotno;
int rst_n_gpio; /* Set to -EINVAL if unused */
int cd_gpio; /* Set to -EINVAL if unused */
int quirks;
int quirks2;
int platform_quirks; /* Platform related quirks */
int (*setup)(struct sdhci_pci_data *data);
void (*cleanup)(struct sdhci_pci_data *data);
int (*power_up)(void *data);
void (*register_embedded_control)(void *dev_id,
void (*virtual_cd)(void *dev_id, int card_present));
int (*flis_check)(void *data, unsigned int clk);
};
/* Some Pre-Silicon platform not support all SDHCI HCs of the SoC */
#define PLFM_QUIRK_NO_HOST_CTRL_HW (1<<0)
/* Some Pre-Silicon platform do not support eMMC boot partition access */
#define PLFM_QUIRK_NO_EMMC_BOOT_PART (1<<1)
/* Some Pre-Silicon platform do not support eMMC or SD High Speed */
#define PLFM_QUIRK_NO_HIGH_SPEED (1<<2)
/* For the platform which don't have the SD card slot */
#define PLFM_QUIRK_NO_SDCARD_SLOT (1<<3)
extern struct sdhci_pci_data *(*sdhci_pci_get_data)(struct pci_dev *pdev,
int slotno);
extern int sdhci_pci_spt_drive_strength;
#endif