1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef ASMARM_ARCH_MMC_H 3 #define ASMARM_ARCH_MMC_H 4 5 #include <linux/mmc/host.h> 6 #include <linux/interrupt.h> 7 8 struct device; 9 struct mmc_host; 10 11 struct pxamci_platform_data { 12 unsigned int ocr_mask; /* available voltages */ 13 unsigned long detect_delay_ms; /* delay in millisecond before detecting cards after interrupt */ 14 int (*init)(struct device *, irq_handler_t , void *); 15 int (*get_ro)(struct device *); 16 int (*setpower)(struct device *, unsigned int); 17 void (*exit)(struct device *, void *); 18 int gpio_card_detect; /* gpio detecting card insertion */ 19 int gpio_card_ro; /* gpio detecting read only toggle */ 20 bool gpio_card_ro_invert; /* gpio ro is inverted */ 21 int gpio_power; /* gpio powering up MMC bus */ 22 bool gpio_power_invert; /* gpio power is inverted */ 23 }; 24 25 extern void pxa_set_mci_info(struct pxamci_platform_data *info); 26 extern void pxa3xx_set_mci2_info(struct pxamci_platform_data *info); 27 extern void pxa3xx_set_mci3_info(struct pxamci_platform_data *info); 28 29 #endif 30