a829abf8da
The em_x270_mci_setpower() and em_x270_usb_hub_init() functions call regulator_enable(), which may return an error that must be checked. This changes the em_x270_usb_hub_init() function to bail out if it fails, and changes the pxamci_platform_data->setpower callback so that the a failed em_x270_mci_setpower call can be propagated by the pxamci driver into the mmc core. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Mike Rapoport <mike@compulab.co.il> Cc: Paul Gortmaker <paul.gortmaker@windriver.com> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: Haojian Zhuang <haojian.zhuang@gmail.com> Acked-by: Chris Ball <cjb@laptop.org> [olof: fixed order of regulator_enable() and test in em_x270_usb_hub_init] Signed-off-by: Olof Johansson <olof@lixom.net>
28 lines
997 B
C
28 lines
997 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_ms; /* delay in millisecond before detecting cards after interrupt */
|
|
int (*init)(struct device *, irq_handler_t , void *);
|
|
int (*get_ro)(struct device *);
|
|
int (*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
|