1 #ifndef LINUX_MMC_SH_MOBILE_SDHI_H 2 #define LINUX_MMC_SH_MOBILE_SDHI_H 3 4 #include <linux/types.h> 5 6 struct platform_device; 7 struct 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 */ 17 struct sh_mobile_sdhi_ops { 18 void (*cd_wakeup)(const struct platform_device *pdev); 19 }; 20 21 struct 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