mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-23 12:43:55 +08:00
b583f26d51
Decouple the HSMMC glue from the twl4030 as the only regulator provider, using the regulator framework instead. This makes the glue's "mmc-twl4030" name become a complete misnomer ... this code could probably all migrate into the HSMMC driver now. Tested on 3430SDP (SD and low-voltage MMC) and Beagle (SD), plus some other boards (including Overo) after they were converted to set up MMC regulators properly. Eventually all boards should just associate a regulator with each MMC controller they use. In some cases (Overo MMC2 and Pandora MMC3, at least) that would be a fixed-voltage regulator with no real software control. As a temporary hack (pending regulator-next updates to make the "fixed.c" regulator become usable) there's a new ocr_mask field for those boards. Patch updated with a fix for disabling vcc_aux by Adrian Hunter <adrian.hunter@nokia.com> Cc: Pierre Ossman <drzeus-list@drzeus.cx> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
35 lines
986 B
C
35 lines
986 B
C
/*
|
|
* MMC definitions for OMAP2
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
struct twl4030_hsmmc_info {
|
|
u8 mmc; /* controller 1/2/3 */
|
|
u8 wires; /* 1/4/8 wires */
|
|
bool transceiver; /* MMC-2 option */
|
|
bool ext_clock; /* use external pin for input clock */
|
|
bool cover_only; /* No card detect - just cover switch */
|
|
int gpio_cd; /* or -EINVAL */
|
|
int gpio_wp; /* or -EINVAL */
|
|
char *name; /* or NULL for default */
|
|
struct device *dev; /* returned: pointer to mmc adapter */
|
|
int ocr_mask; /* temporary HACK */
|
|
};
|
|
|
|
#if defined(CONFIG_REGULATOR) && \
|
|
(defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) || \
|
|
defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE))
|
|
|
|
void twl4030_mmc_init(struct twl4030_hsmmc_info *);
|
|
|
|
#else
|
|
|
|
static inline void twl4030_mmc_init(struct twl4030_hsmmc_info *info)
|
|
{
|
|
}
|
|
|
|
#endif
|