Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef ASMARM_ARCH_MMC_H
0003 #define ASMARM_ARCH_MMC_H
0004 
0005 #include <linux/interrupt.h>
0006 #include <linux/mmc/host.h>
0007 
0008 struct device;
0009 
0010 /* board specific SDHC data, optional.
0011  * If not present, a writable card with 3,3V is assumed.
0012  */
0013 struct imxmmc_platform_data {
0014     /* Return values for the get_ro callback should be:
0015      *   0 for a read/write card
0016      *   1 for a read-only card
0017      *   -ENOSYS when not supported (equal to NULL callback)
0018      *   or a negative errno value when something bad happened
0019      */
0020     int (*get_ro)(struct device *);
0021 
0022     /* board specific hook to (de)initialize the SD slot.
0023      * The board code can call 'handler' on a card detection
0024      * change giving data as argument.
0025      */
0026     int (*init)(struct device *dev, irq_handler_t handler, void *data);
0027     void (*exit)(struct device *dev, void *data);
0028 
0029     /* available voltages. If not given, assume
0030      * MMC_VDD_32_33 | MMC_VDD_33_34
0031      */
0032     unsigned int ocr_avail;
0033 
0034     /* adjust slot voltage */
0035     void (*setpower)(struct device *, unsigned int vdd);
0036 
0037     /* enable card detect using DAT3 */
0038     int dat3_card_detect;
0039 };
0040 
0041 #endif