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:
parent
233cdbce55
commit
b8f56a78e3
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
Loading…
Reference in New Issue