b405db6c01
The MMC block needs 3 external datas to work : - is the MMC card put in "read-only mode" ? - is a MMC card inserted or removed ? - enable power towards the MMC card Several platforms provide these controls through gpios. Expand the platform_data to request and use these gpios is set up by board code. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Acked-by: Pierre.Ossman <pierre@ossman.eu> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
28 lines
991 B
C
28 lines
991 B
C
#ifndef ASMARM_ARCH_MMC_H
|
|
#define ASMARM_ARCH_MMC_H
|
|
|
|
#include <linux/mmc/host.h>
|
|
#include <linux/interrupt.h>
|
|
|
|
struct device;
|
|
struct mmc_host;
|
|
|
|
struct pxamci_platform_data {
|
|
unsigned int ocr_mask; /* available voltages */
|
|
unsigned long detect_delay; /* delay in jiffies before detecting cards after interrupt */
|
|
int (*init)(struct device *, irq_handler_t , void *);
|
|
int (*get_ro)(struct device *);
|
|
void (*setpower)(struct device *, unsigned int);
|
|
void (*exit)(struct device *, void *);
|
|
int gpio_card_detect; /* gpio detecting card insertion */
|
|
int gpio_card_ro; /* gpio detecting read only toggle */
|
|
bool gpio_card_ro_invert; /* gpio ro is inverted */
|
|
int gpio_power; /* gpio powering up MMC bus */
|
|
bool gpio_power_invert; /* gpio power is inverted */
|
|
};
|
|
|
|
extern void pxa_set_mci_info(struct pxamci_platform_data *info);
|
|
extern void pxa3xx_set_mci2_info(struct pxamci_platform_data *info);
|
|
extern void pxa3xx_set_mci3_info(struct pxamci_platform_data *info);
|
|
|
|
#endif
|