mirror of https://gitee.com/openkylin/linux.git
omap_hsmmc: allow compile without regulator framework
It is still possible to use the omap_hsmmc module without the regulator framework. Accordingly, ifdef out regulator-specific functions. Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
e0eb242446
commit
b702b1060a
|
@ -236,6 +236,8 @@ static int omap_hsmmc_resume_cdirq(struct device *dev, int slot)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_REGULATOR
|
||||||
|
|
||||||
static int omap_hsmmc_1_set_power(struct device *dev, int slot, int power_on,
|
static int omap_hsmmc_1_set_power(struct device *dev, int slot, int power_on,
|
||||||
int vdd)
|
int vdd)
|
||||||
{
|
{
|
||||||
|
@ -357,59 +359,6 @@ static int omap_hsmmc_23_set_sleep(struct device *dev, int slot, int sleep,
|
||||||
return regulator_enable(host->vcc_aux);
|
return regulator_enable(host->vcc_aux);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int omap_hsmmc_gpio_init(struct omap_mmc_platform_data *pdata)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (gpio_is_valid(pdata->slots[0].switch_pin)) {
|
|
||||||
pdata->suspend = omap_hsmmc_suspend_cdirq;
|
|
||||||
pdata->resume = omap_hsmmc_resume_cdirq;
|
|
||||||
if (pdata->slots[0].cover)
|
|
||||||
pdata->slots[0].get_cover_state =
|
|
||||||
omap_hsmmc_get_cover_state;
|
|
||||||
else
|
|
||||||
pdata->slots[0].card_detect = omap_hsmmc_card_detect;
|
|
||||||
pdata->slots[0].card_detect_irq =
|
|
||||||
gpio_to_irq(pdata->slots[0].switch_pin);
|
|
||||||
ret = gpio_request(pdata->slots[0].switch_pin, "mmc_cd");
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
ret = gpio_direction_input(pdata->slots[0].switch_pin);
|
|
||||||
if (ret)
|
|
||||||
goto err_free_sp;
|
|
||||||
} else
|
|
||||||
pdata->slots[0].switch_pin = -EINVAL;
|
|
||||||
|
|
||||||
if (gpio_is_valid(pdata->slots[0].gpio_wp)) {
|
|
||||||
pdata->slots[0].get_ro = omap_hsmmc_get_wp;
|
|
||||||
ret = gpio_request(pdata->slots[0].gpio_wp, "mmc_wp");
|
|
||||||
if (ret)
|
|
||||||
goto err_free_cd;
|
|
||||||
ret = gpio_direction_input(pdata->slots[0].gpio_wp);
|
|
||||||
if (ret)
|
|
||||||
goto err_free_wp;
|
|
||||||
} else
|
|
||||||
pdata->slots[0].gpio_wp = -EINVAL;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
err_free_wp:
|
|
||||||
gpio_free(pdata->slots[0].gpio_wp);
|
|
||||||
err_free_cd:
|
|
||||||
if (gpio_is_valid(pdata->slots[0].switch_pin))
|
|
||||||
err_free_sp:
|
|
||||||
gpio_free(pdata->slots[0].switch_pin);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void omap_hsmmc_gpio_free(struct omap_mmc_platform_data *pdata)
|
|
||||||
{
|
|
||||||
if (gpio_is_valid(pdata->slots[0].gpio_wp))
|
|
||||||
gpio_free(pdata->slots[0].gpio_wp);
|
|
||||||
if (gpio_is_valid(pdata->slots[0].switch_pin))
|
|
||||||
gpio_free(pdata->slots[0].switch_pin);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
|
static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
|
||||||
{
|
{
|
||||||
struct regulator *reg;
|
struct regulator *reg;
|
||||||
|
@ -488,6 +437,82 @@ static void omap_hsmmc_reg_put(struct omap_hsmmc_host *host)
|
||||||
mmc_slot(host).set_sleep = NULL;
|
mmc_slot(host).set_sleep = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int omap_hsmmc_have_reg(void)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
static inline int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
|
||||||
|
{
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void omap_hsmmc_reg_put(struct omap_hsmmc_host *host)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int omap_hsmmc_have_reg(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static int omap_hsmmc_gpio_init(struct omap_mmc_platform_data *pdata)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (gpio_is_valid(pdata->slots[0].switch_pin)) {
|
||||||
|
pdata->suspend = omap_hsmmc_suspend_cdirq;
|
||||||
|
pdata->resume = omap_hsmmc_resume_cdirq;
|
||||||
|
if (pdata->slots[0].cover)
|
||||||
|
pdata->slots[0].get_cover_state =
|
||||||
|
omap_hsmmc_get_cover_state;
|
||||||
|
else
|
||||||
|
pdata->slots[0].card_detect = omap_hsmmc_card_detect;
|
||||||
|
pdata->slots[0].card_detect_irq =
|
||||||
|
gpio_to_irq(pdata->slots[0].switch_pin);
|
||||||
|
ret = gpio_request(pdata->slots[0].switch_pin, "mmc_cd");
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
ret = gpio_direction_input(pdata->slots[0].switch_pin);
|
||||||
|
if (ret)
|
||||||
|
goto err_free_sp;
|
||||||
|
} else
|
||||||
|
pdata->slots[0].switch_pin = -EINVAL;
|
||||||
|
|
||||||
|
if (gpio_is_valid(pdata->slots[0].gpio_wp)) {
|
||||||
|
pdata->slots[0].get_ro = omap_hsmmc_get_wp;
|
||||||
|
ret = gpio_request(pdata->slots[0].gpio_wp, "mmc_wp");
|
||||||
|
if (ret)
|
||||||
|
goto err_free_cd;
|
||||||
|
ret = gpio_direction_input(pdata->slots[0].gpio_wp);
|
||||||
|
if (ret)
|
||||||
|
goto err_free_wp;
|
||||||
|
} else
|
||||||
|
pdata->slots[0].gpio_wp = -EINVAL;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
err_free_wp:
|
||||||
|
gpio_free(pdata->slots[0].gpio_wp);
|
||||||
|
err_free_cd:
|
||||||
|
if (gpio_is_valid(pdata->slots[0].switch_pin))
|
||||||
|
err_free_sp:
|
||||||
|
gpio_free(pdata->slots[0].switch_pin);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void omap_hsmmc_gpio_free(struct omap_mmc_platform_data *pdata)
|
||||||
|
{
|
||||||
|
if (gpio_is_valid(pdata->slots[0].gpio_wp))
|
||||||
|
gpio_free(pdata->slots[0].gpio_wp);
|
||||||
|
if (gpio_is_valid(pdata->slots[0].switch_pin))
|
||||||
|
gpio_free(pdata->slots[0].switch_pin);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Stop clock to the card
|
* Stop clock to the card
|
||||||
*/
|
*/
|
||||||
|
@ -2119,7 +2144,7 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mmc_slot(host).set_power) {
|
if (omap_hsmmc_have_reg() && !mmc_slot(host).set_power) {
|
||||||
ret = omap_hsmmc_reg_get(host);
|
ret = omap_hsmmc_reg_get(host);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_reg;
|
goto err_reg;
|
||||||
|
|
Loading…
Reference in New Issue