diff options
Diffstat (limited to 'drivers/mmc/tegra_mmc.c')
| -rw-r--r-- | drivers/mmc/tegra_mmc.c | 36 | 
1 files changed, 13 insertions, 23 deletions
| diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c index 2bd36b0ee70..2cd8cf10aec 100644 --- a/drivers/mmc/tegra_mmc.c +++ b/drivers/mmc/tegra_mmc.c @@ -515,8 +515,8 @@ static int tegra_mmc_getcd(struct mmc *mmc)  	debug("tegra_mmc_getcd called\n"); -	if (fdt_gpio_isvalid(&host->cd_gpio)) -		return fdtdec_get_gpio(&host->cd_gpio); +	if (dm_gpio_is_valid(&host->cd_gpio)) +		return dm_gpio_get_value(&host->cd_gpio);  	return 1;  } @@ -531,7 +531,6 @@ static const struct mmc_ops tegra_mmc_ops = {  static int do_mmc_init(int dev_index)  {  	struct mmc_host *host; -	char gpusage[12]; /* "SD/MMCn PWR" or "SD/MMCn CD" */  	struct mmc *mmc;  	/* DT should have been read & host config filled in */ @@ -539,27 +538,15 @@ static int do_mmc_init(int dev_index)  	if (!host->enabled)  		return -1; -	debug(" do_mmc_init: index %d, bus width %d " -		"pwr_gpio %d cd_gpio %d\n", -		dev_index, host->width, -		host->pwr_gpio.gpio, host->cd_gpio.gpio); +	debug(" do_mmc_init: index %d, bus width %d pwr_gpio %d cd_gpio %d\n", +	      dev_index, host->width, gpio_get_number(&host->pwr_gpio), +	      gpio_get_number(&host->cd_gpio));  	host->clock = 0;  	clock_start_periph_pll(host->mmc_id, CLOCK_ID_PERIPH, 20000000); -	if (fdt_gpio_isvalid(&host->pwr_gpio)) { -		sprintf(gpusage, "SD/MMC%d PWR", dev_index); -		gpio_request(host->pwr_gpio.gpio, gpusage); -		gpio_direction_output(host->pwr_gpio.gpio, 1); -		debug(" Power GPIO name = %s\n", host->pwr_gpio.name); -	} - -	if (fdt_gpio_isvalid(&host->cd_gpio)) { -		sprintf(gpusage, "SD/MMC%d CD", dev_index); -		gpio_request(host->cd_gpio.gpio, gpusage); -		gpio_direction_input(host->cd_gpio.gpio); -		debug(" CD GPIO name = %s\n", host->cd_gpio.name); -	} +	if (dm_gpio_is_valid(&host->pwr_gpio)) +		dm_gpio_set_value(&host->pwr_gpio, 1);  	memset(&host->cfg, 0, sizeof(host->cfg)); @@ -626,9 +613,12 @@ static int mmc_get_config(const void *blob, int node, struct mmc_host *host)  		debug("%s: no sdmmc width found\n", __func__);  	/* These GPIOs are optional */ -	fdtdec_decode_gpio(blob, node, "cd-gpios", &host->cd_gpio); -	fdtdec_decode_gpio(blob, node, "wp-gpios", &host->wp_gpio); -	fdtdec_decode_gpio(blob, node, "power-gpios", &host->pwr_gpio); +	gpio_request_by_name_nodev(blob, node, "cd-gpios", 0, &host->cd_gpio, +				   GPIOD_IS_IN); +	gpio_request_by_name_nodev(blob, node, "wp-gpios", 0, &host->wp_gpio, +				   GPIOD_IS_IN); +	gpio_request_by_name_nodev(blob, node, "power-gpios", 0, +				   &host->pwr_gpio, GPIOD_IS_OUT);  	debug("%s: found controller at %p, width = %d, periph_id = %d\n",  		__func__, host->reg, host->width, host->mmc_id); | 
