[ARM] pxa/em-x270: update libertas device setup
Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Eric Miao <eric.miao@marvell.com>
This commit is contained in:
@@ -684,26 +684,52 @@ static int em_x270_libertas_setup(struct spi_device *spi)
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
err = gpio_request(GPIO19_WLAN_STRAP, "WLAN STRAP");
|
||||||
|
if (err)
|
||||||
|
goto err_free_pwen;
|
||||||
|
|
||||||
|
if (machine_is_exeda()) {
|
||||||
|
err = gpio_request(GPIO37_WLAN_RST, "WLAN RST");
|
||||||
|
if (err)
|
||||||
|
goto err_free_strap;
|
||||||
|
|
||||||
|
gpio_direction_output(GPIO37_WLAN_RST, 1);
|
||||||
|
msleep(100);
|
||||||
|
}
|
||||||
|
|
||||||
gpio_direction_output(GPIO19_WLAN_STRAP, 1);
|
gpio_direction_output(GPIO19_WLAN_STRAP, 1);
|
||||||
mdelay(100);
|
msleep(100);
|
||||||
|
|
||||||
pxa2xx_mfp_config(ARRAY_AND_SIZE(em_x270_libertas_pin_config));
|
pxa2xx_mfp_config(ARRAY_AND_SIZE(em_x270_libertas_pin_config));
|
||||||
|
|
||||||
gpio_direction_output(GPIO115_WLAN_PWEN, 0);
|
gpio_direction_output(GPIO115_WLAN_PWEN, 0);
|
||||||
mdelay(100);
|
msleep(100);
|
||||||
gpio_set_value(GPIO115_WLAN_PWEN, 1);
|
gpio_set_value(GPIO115_WLAN_PWEN, 1);
|
||||||
mdelay(100);
|
msleep(100);
|
||||||
|
|
||||||
spi->bits_per_word = 16;
|
spi->bits_per_word = 16;
|
||||||
spi_setup(spi);
|
spi_setup(spi);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
err_free_strap:
|
||||||
|
gpio_free(GPIO19_WLAN_STRAP);
|
||||||
|
err_free_pwen:
|
||||||
|
gpio_free(GPIO115_WLAN_PWEN);
|
||||||
|
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int em_x270_libertas_teardown(struct spi_device *spi)
|
static int em_x270_libertas_teardown(struct spi_device *spi)
|
||||||
{
|
{
|
||||||
gpio_set_value(GPIO115_WLAN_PWEN, 0);
|
gpio_set_value(GPIO115_WLAN_PWEN, 0);
|
||||||
gpio_free(GPIO115_WLAN_PWEN);
|
gpio_free(GPIO115_WLAN_PWEN);
|
||||||
|
gpio_free(GPIO19_WLAN_STRAP);
|
||||||
|
|
||||||
|
if (machine_is_exeda()) {
|
||||||
|
gpio_set_value(GPIO37_WLAN_RST, 0);
|
||||||
|
gpio_free(GPIO37_WLAN_RST);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user