1#ifndef LINUX_MMC_SH_MOBILE_SDHI_H 2#define LINUX_MMC_SH_MOBILE_SDHI_H 3 4#include <linux/types.h> 5 6struct platform_device; 7struct tmio_mmc_data; 8 9#define SH_MOBILE_SDHI_IRQ_CARD_DETECT "card_detect" 10#define SH_MOBILE_SDHI_IRQ_SDCARD "sdcard" 11#define SH_MOBILE_SDHI_IRQ_SDIO "sdio" 12 13/** 14 * struct sh_mobile_sdhi_ops - SDHI driver callbacks 15 * @cd_wakeup: trigger a card-detection run 16 */ 17struct sh_mobile_sdhi_ops { 18 void (*cd_wakeup)(const struct platform_device *pdev); 19}; 20 21struct sh_mobile_sdhi_info { 22 int dma_slave_tx; 23 int dma_slave_rx; 24 unsigned long tmio_flags; 25 unsigned long tmio_caps; 26 u32 tmio_ocr_mask; /* available MMC voltages */ 27 unsigned int cd_gpio; 28 struct tmio_mmc_data *pdata; 29 void (*set_pwr)(struct platform_device *pdev, int state); 30 int (*get_cd)(struct platform_device *pdev); 31 32 /* callbacks for board specific setup code */ 33 int (*init)(struct platform_device *pdev, 34 const struct sh_mobile_sdhi_ops *ops); 35 void (*cleanup)(struct platform_device *pdev); 36}; 37 38#endif /* LINUX_MMC_SH_MOBILE_SDHI_H */ 39