1 /* 2 * include/linux/amba/mmci.h 3 */ 4 #ifndef AMBA_MMCI_H 5 #define AMBA_MMCI_H 6 7 #include <linux/mmc/host.h> 8 #include <linux/mmc/card.h> 9 #include <linux/mmc/sdio_func.h> 10 11 struct embedded_sdio_data { 12 struct sdio_cis cis; 13 struct sdio_cccr cccr; 14 struct sdio_embedded_func *funcs; 15 int num_funcs; 16 }; 17 18 /** 19 * struct mmci_platform_data - platform configuration for the MMCI 20 * (also known as PL180) block. 21 * @ocr_mask: available voltages on the 4 pins from the block, this 22 * is ignored if a regulator is used, see the MMC_VDD_* masks in 23 * mmc/host.h 24 * @ios_handler: a callback function to act on specfic ios changes, 25 * used for example to control a levelshifter 26 * mask into a value to be binary (or set some other custom bits 27 * in MMCIPWR) or:ed and written into the MMCIPWR register of the 28 * block. May also control external power based on the power_mode. 29 * @status: if no GPIO read function was given to the block in 30 * gpio_wp (below) this function will be called to determine 31 * whether a card is present in the MMC slot or not 32 * @gpio_wp: read this GPIO pin to see if the card is write protected 33 * @gpio_cd: read this GPIO pin to detect card insertion 34 * @cd_invert: true if the gpio_cd pin value is active low 35 */ 36 struct mmci_platform_data { 37 unsigned int ocr_mask; 38 int (*ios_handler)(struct device *, struct mmc_ios *); 39 unsigned int (*status)(struct device *); 40 int gpio_wp; 41 int gpio_cd; 42 bool cd_invert; 43 struct embedded_sdio_data *embedded_sdio; 44 }; 45 46 #endif 47