ARM: PXA: Z2: Fix libertas init/tear down sequences

GPIO15 seems to be not related to WiFi, so don't touch it.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: Marek Vasut <marek.vasut@gmail.com>
This commit is contained in:
Vasily Khoruzhick 2011-03-13 17:19:19 +02:00 committed by Marek Vasut
parent 233cdbce55
commit b8f56a78e3
2 changed files with 9 additions and 25 deletions

View file

@ -25,8 +25,7 @@
#define GPIO98_ZIPITZ2_LID_BUTTON 98 #define GPIO98_ZIPITZ2_LID_BUTTON 98
/* Libertas GSPI8686 WiFi */ /* Libertas GSPI8686 WiFi */
#define GPIO14_ZIPITZ2_WIFI_RESET 14 #define GPIO14_ZIPITZ2_WIFI_POWER 14
#define GPIO15_ZIPITZ2_WIFI_POWER 15
#define GPIO24_ZIPITZ2_WIFI_CS 24 #define GPIO24_ZIPITZ2_WIFI_CS 24
#define GPIO36_ZIPITZ2_WIFI_IRQ 36 #define GPIO36_ZIPITZ2_WIFI_IRQ 36

View file

@ -139,8 +139,7 @@ static unsigned long z2_pin_config[] = {
GPIO1_GPIO, /* Power button */ GPIO1_GPIO, /* Power button */
GPIO37_GPIO, /* Headphone detect */ GPIO37_GPIO, /* Headphone detect */
GPIO98_GPIO, /* Lid switch */ GPIO98_GPIO, /* Lid switch */
GPIO14_GPIO, /* WiFi Reset */ GPIO14_GPIO, /* WiFi Power */
GPIO15_GPIO, /* WiFi Power */
GPIO24_GPIO, /* WiFi CS */ GPIO24_GPIO, /* WiFi CS */
GPIO36_GPIO, /* WiFi IRQ */ GPIO36_GPIO, /* WiFi IRQ */
GPIO88_GPIO, /* LCD CS */ GPIO88_GPIO, /* LCD CS */
@ -512,26 +511,16 @@ static int z2_lbs_spi_setup(struct spi_device *spi)
{ {
int ret = 0; int ret = 0;
ret = gpio_request(GPIO15_ZIPITZ2_WIFI_POWER, "WiFi Power"); ret = gpio_request(GPIO14_ZIPITZ2_WIFI_POWER, "WiFi Power");
if (ret) if (ret)
goto err; goto err;
ret = gpio_direction_output(GPIO15_ZIPITZ2_WIFI_POWER, 1); ret = gpio_direction_output(GPIO14_ZIPITZ2_WIFI_POWER, 1);
if (ret) if (ret)
goto err2; goto err2;
ret = gpio_request(GPIO14_ZIPITZ2_WIFI_RESET, "WiFi Reset"); /* Wait until card is powered on */
if (ret)
goto err2;
ret = gpio_direction_output(GPIO14_ZIPITZ2_WIFI_RESET, 0);
if (ret)
goto err3;
/* Reset the card */
mdelay(180); mdelay(180);
gpio_set_value(GPIO14_ZIPITZ2_WIFI_RESET, 1);
mdelay(20);
spi->bits_per_word = 16; spi->bits_per_word = 16;
spi->mode = SPI_MODE_2, spi->mode = SPI_MODE_2,
@ -540,22 +529,18 @@ static int z2_lbs_spi_setup(struct spi_device *spi)
return 0; return 0;
err3:
gpio_free(GPIO14_ZIPITZ2_WIFI_RESET);
err2: err2:
gpio_free(GPIO15_ZIPITZ2_WIFI_POWER); gpio_free(GPIO14_ZIPITZ2_WIFI_POWER);
err: err:
return ret; return ret;
}; };
static int z2_lbs_spi_teardown(struct spi_device *spi) static int z2_lbs_spi_teardown(struct spi_device *spi)
{ {
gpio_set_value(GPIO14_ZIPITZ2_WIFI_RESET, 0); gpio_set_value(GPIO14_ZIPITZ2_WIFI_POWER, 0);
gpio_set_value(GPIO15_ZIPITZ2_WIFI_POWER, 0); gpio_free(GPIO14_ZIPITZ2_WIFI_POWER);
gpio_free(GPIO14_ZIPITZ2_WIFI_RESET);
gpio_free(GPIO15_ZIPITZ2_WIFI_POWER);
return 0;
return 0;
}; };
static struct pxa2xx_spi_chip z2_lbs_chip_info = { static struct pxa2xx_spi_chip z2_lbs_chip_info = {