mmc: sdhci-spear: remove support for power gpio
None of this code is currently used: there are no definitions of struct sdhci_plat_data in arch/arm, neither are there any DT properties which use card_power_gpio/power_active_high/power_always_enb. In any case, slot power control should be rigged up via vmmc and the regulator subsystem in the DT case. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Chris Ball <chris@printf.net>
This commit is contained in:
Родитель
475d9e3ebf
Коммит
42c1add970
|
@ -56,14 +56,6 @@ static irqreturn_t sdhci_gpio_irq(int irq, void *dev_id)
|
||||||
gpio_irq_type = val ? IRQF_TRIGGER_LOW : IRQF_TRIGGER_HIGH;
|
gpio_irq_type = val ? IRQF_TRIGGER_LOW : IRQF_TRIGGER_HIGH;
|
||||||
irq_set_irq_type(irq, gpio_irq_type);
|
irq_set_irq_type(irq, gpio_irq_type);
|
||||||
|
|
||||||
if (sdhci->data->card_power_gpio >= 0) {
|
|
||||||
if (!sdhci->data->power_always_enb) {
|
|
||||||
/* if card inserted, give power, otherwise remove it */
|
|
||||||
val = sdhci->data->power_active_high ? !val : val ;
|
|
||||||
gpio_set_value(sdhci->data->card_power_gpio, val);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* inform sdhci driver about card insertion/removal */
|
/* inform sdhci driver about card insertion/removal */
|
||||||
tasklet_schedule(&host->card_tasklet);
|
tasklet_schedule(&host->card_tasklet);
|
||||||
|
|
||||||
|
@ -179,30 +171,6 @@ static int sdhci_probe(struct platform_device *pdev)
|
||||||
if (!sdhci->data)
|
if (!sdhci->data)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (sdhci->data->card_power_gpio >= 0) {
|
|
||||||
int val = 0;
|
|
||||||
|
|
||||||
ret = devm_gpio_request(&pdev->dev,
|
|
||||||
sdhci->data->card_power_gpio, "sdhci");
|
|
||||||
if (ret < 0) {
|
|
||||||
dev_dbg(&pdev->dev, "gpio request fail: %d\n",
|
|
||||||
sdhci->data->card_power_gpio);
|
|
||||||
goto set_drvdata;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sdhci->data->power_always_enb)
|
|
||||||
val = sdhci->data->power_active_high;
|
|
||||||
else
|
|
||||||
val = !sdhci->data->power_active_high;
|
|
||||||
|
|
||||||
ret = gpio_direction_output(sdhci->data->card_power_gpio, val);
|
|
||||||
if (ret) {
|
|
||||||
dev_dbg(&pdev->dev, "gpio set direction fail: %d\n",
|
|
||||||
sdhci->data->card_power_gpio);
|
|
||||||
goto set_drvdata;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sdhci->data->card_int_gpio >= 0) {
|
if (sdhci->data->card_int_gpio >= 0) {
|
||||||
ret = devm_gpio_request(&pdev->dev, sdhci->data->card_int_gpio,
|
ret = devm_gpio_request(&pdev->dev, sdhci->data->card_int_gpio,
|
||||||
"sdhci");
|
"sdhci");
|
||||||
|
|
|
@ -18,17 +18,9 @@
|
||||||
/*
|
/*
|
||||||
* struct sdhci_plat_data: spear sdhci platform data structure
|
* struct sdhci_plat_data: spear sdhci platform data structure
|
||||||
*
|
*
|
||||||
* @card_power_gpio: gpio pin for enabling/disabling power to sdhci socket
|
|
||||||
* @power_active_high: if set, enable power to sdhci socket by setting
|
|
||||||
* card_power_gpio
|
|
||||||
* @power_always_enb: If set, then enable power on probe, otherwise enable only
|
|
||||||
* on card insertion and disable on card removal.
|
|
||||||
* card_int_gpio: gpio pin used for card detection
|
* card_int_gpio: gpio pin used for card detection
|
||||||
*/
|
*/
|
||||||
struct sdhci_plat_data {
|
struct sdhci_plat_data {
|
||||||
int card_power_gpio;
|
|
||||||
int power_active_high;
|
|
||||||
int power_always_enb;
|
|
||||||
int card_int_gpio;
|
int card_int_gpio;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче