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