dm: exynos: Make sure that GPIOs are requested
With driver model GPIOs must be requested before use. Make sure this is done correctly. (Note that the soft SPI part of universal is omitted, since this driver is about to be replaced with a driver-model-aware version) Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -102,6 +102,7 @@ struct sdhci_host sdhci_host[SDHCI_MAX_HOSTS];
|
||||
|
||||
static int do_sdhci_init(struct sdhci_host *host)
|
||||
{
|
||||
char str[20];
|
||||
int dev_id, flag;
|
||||
int err = 0;
|
||||
|
||||
@@ -109,6 +110,8 @@ static int do_sdhci_init(struct sdhci_host *host)
|
||||
dev_id = host->index + PERIPH_ID_SDMMC0;
|
||||
|
||||
if (fdt_gpio_isvalid(&host->pwr_gpio)) {
|
||||
sprintf(str, "sdhci%d_power", host->index & 0xf);
|
||||
gpio_request(host->pwr_gpio.gpio, str);
|
||||
gpio_direction_output(host->pwr_gpio.gpio, 1);
|
||||
err = exynos_pinmux_config(dev_id, flag);
|
||||
if (err) {
|
||||
@@ -118,7 +121,9 @@ static int do_sdhci_init(struct sdhci_host *host)
|
||||
}
|
||||
|
||||
if (fdt_gpio_isvalid(&host->cd_gpio)) {
|
||||
gpio_direction_output(host->cd_gpio.gpio, 0xf);
|
||||
sprintf(str, "sdhci%d_cd", host->index & 0xf);
|
||||
gpio_request(host->cd_gpio.gpio, str);
|
||||
gpio_direction_output(host->cd_gpio.gpio, 1);
|
||||
if (gpio_get_value(host->cd_gpio.gpio))
|
||||
return -ENODEV;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user