blob: 686b85bfb7a5d508d15c6c2828a31313dbe198ad [file] [log] [blame]
Robert P. J. Day100e9182011-05-27 16:04:03 -04001#ifndef LINUX_MMC_SH_MOBILE_SDHI_H
2#define LINUX_MMC_SH_MOBILE_SDHI_H
Guennadi Liakhovetski42051e82011-03-14 09:52:33 +01003
4#include <linux/types.h>
5
Guennadi Liakhovetski25958802011-05-11 16:51:15 +00006struct platform_device;
7struct tmio_mmc_data;
8
Simon Hormand5098cb2011-08-26 10:42:39 +02009#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
Guennadi Liakhovetski42051e82011-03-14 09:52:33 +010013struct sh_mobile_sdhi_info {
14 int dma_slave_tx;
15 int dma_slave_rx;
16 unsigned long tmio_flags;
17 unsigned long tmio_caps;
18 u32 tmio_ocr_mask; /* available MMC voltages */
Guennadi Liakhovetski58126c82012-02-09 22:57:10 +010019 unsigned int cd_gpio;
Guennadi Liakhovetski25958802011-05-11 16:51:15 +000020 struct tmio_mmc_data *pdata;
Guennadi Liakhovetski42051e82011-03-14 09:52:33 +010021 void (*set_pwr)(struct platform_device *pdev, int state);
22 int (*get_cd)(struct platform_device *pdev);
Bastian Hechte82b4ac2012-03-16 12:19:29 -040023
24 /* callbacks for board specific setup code */
25 int (*init)(struct platform_device *pdev);
26 void (*cleanup)(struct platform_device *pdev);
Guennadi Liakhovetski42051e82011-03-14 09:52:33 +010027};
28
Robert P. J. Day100e9182011-05-27 16:04:03 -040029#endif /* LINUX_MMC_SH_MOBILE_SDHI_H */