[PATCH 6/8] ARM: PXA: Z2: Fix libertas init/tear down sequences

Marek Vasut marek.vasut at gmail.com
Fri Mar 11 16:37:43 EST 2011


On Friday 11 March 2011 11:23:41 Vasily Khoruzhick wrote:
> GPIO15 seems to be not related to WiFi, so don't touch it.
> 

What's GPIO14 then? Also check Z2 kernel sources aeronix released, iirc that's 
where I found gpio14.

Cheers

> Signed-off-by: Vasily Khoruzhick <anarsoul at gmail.com>
> ---
>  arch/arm/mach-pxa/include/mach/z2.h |    3 +--
>  arch/arm/mach-pxa/z2.c              |   31 ++++++++-----------------------
>  2 files changed, 9 insertions(+), 25 deletions(-)
> 
> diff --git a/arch/arm/mach-pxa/include/mach/z2.h
> b/arch/arm/mach-pxa/include/mach/z2.h index 8835c16..7b0f71e 100644
> --- a/arch/arm/mach-pxa/include/mach/z2.h
> +++ b/arch/arm/mach-pxa/include/mach/z2.h
> @@ -25,8 +25,7 @@
>  #define	GPIO98_ZIPITZ2_LID_BUTTON	98
> 
>  /* Libertas GSPI8686 WiFi */
> -#define	GPIO14_ZIPITZ2_WIFI_RESET	14
> -#define	GPIO15_ZIPITZ2_WIFI_POWER	15
> +#define	GPIO14_ZIPITZ2_WIFI_POWER	14
>  #define	GPIO24_ZIPITZ2_WIFI_CS		24
>  #define	GPIO36_ZIPITZ2_WIFI_IRQ		36
> 
> diff --git a/arch/arm/mach-pxa/z2.c b/arch/arm/mach-pxa/z2.c
> index f1bb98a..d1e40ba 100644
> --- a/arch/arm/mach-pxa/z2.c
> +++ b/arch/arm/mach-pxa/z2.c
> @@ -141,8 +141,7 @@ static unsigned long z2_pin_config[] = {
>  	GPIO1_GPIO,		/* Power button */
>  	GPIO37_GPIO,		/* Headphone detect */
>  	GPIO98_GPIO,		/* Lid switch */
> -	GPIO14_GPIO,		/* WiFi Reset */
> -	GPIO15_GPIO,		/* WiFi Power */
> +	GPIO14_GPIO,		/* WiFi Power */
>  	GPIO24_GPIO,		/* WiFi CS */
>  	GPIO36_GPIO,		/* WiFi IRQ */
>  	GPIO88_GPIO,		/* LCD CS */
> @@ -504,26 +503,16 @@ static int z2_lbs_spi_setup(struct spi_device *spi)
>  {
>  	int ret = 0;
> 
> -	ret = gpio_request(GPIO15_ZIPITZ2_WIFI_POWER, "WiFi Power");
> +	ret = gpio_request(GPIO14_ZIPITZ2_WIFI_POWER, "WiFi Power");
>  	if (ret)
>  		goto err;
> 
> -	ret = gpio_direction_output(GPIO15_ZIPITZ2_WIFI_POWER, 1);
> +	ret = gpio_direction_output(GPIO14_ZIPITZ2_WIFI_POWER, 1);
>  	if (ret)
>  		goto err2;
> 
> -	ret = gpio_request(GPIO14_ZIPITZ2_WIFI_RESET, "WiFi Reset");
> -	if (ret)
> -		goto err2;
> -
> -	ret = gpio_direction_output(GPIO14_ZIPITZ2_WIFI_RESET, 0);
> -	if (ret)
> -		goto err3;
> -
> -	/* Reset the card */
> +	/* Wait until card is powered on */
>  	mdelay(180);
> -	gpio_set_value(GPIO14_ZIPITZ2_WIFI_RESET, 1);
> -	mdelay(20);
> 
>  	spi->bits_per_word = 16;
>  	spi->mode = SPI_MODE_2,
> @@ -532,22 +521,18 @@ static int z2_lbs_spi_setup(struct spi_device *spi)
> 
>  	return 0;
> 
> -err3:
> -	gpio_free(GPIO14_ZIPITZ2_WIFI_RESET);
>  err2:
> -	gpio_free(GPIO15_ZIPITZ2_WIFI_POWER);
> +	gpio_free(GPIO14_ZIPITZ2_WIFI_POWER);
>  err:
>  	return ret;
>  };
> 
>  static int z2_lbs_spi_teardown(struct spi_device *spi)
>  {
> -	gpio_set_value(GPIO14_ZIPITZ2_WIFI_RESET, 0);
> -	gpio_set_value(GPIO15_ZIPITZ2_WIFI_POWER, 0);
> -	gpio_free(GPIO14_ZIPITZ2_WIFI_RESET);
> -	gpio_free(GPIO15_ZIPITZ2_WIFI_POWER);
> -	return 0;
> +	gpio_set_value(GPIO14_ZIPITZ2_WIFI_POWER, 0);
> +	gpio_free(GPIO14_ZIPITZ2_WIFI_POWER);
> 
> +	return 0;
>  };
> 
>  static struct pxa2xx_spi_chip z2_lbs_chip_info = {



More information about the linux-arm-kernel mailing list