Loading arch/arm/mach-pxa/em-x270.c +29 −3 Original line number Diff line number Diff line Loading @@ -684,26 +684,52 @@ static int em_x270_libertas_setup(struct spi_device *spi) if (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); mdelay(100); msleep(100); pxa2xx_mfp_config(ARRAY_AND_SIZE(em_x270_libertas_pin_config)); gpio_direction_output(GPIO115_WLAN_PWEN, 0); mdelay(100); msleep(100); gpio_set_value(GPIO115_WLAN_PWEN, 1); mdelay(100); msleep(100); spi->bits_per_word = 16; spi_setup(spi); 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) { gpio_set_value(GPIO115_WLAN_PWEN, 0); 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; } Loading Loading
arch/arm/mach-pxa/em-x270.c +29 −3 Original line number Diff line number Diff line Loading @@ -684,26 +684,52 @@ static int em_x270_libertas_setup(struct spi_device *spi) if (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); mdelay(100); msleep(100); pxa2xx_mfp_config(ARRAY_AND_SIZE(em_x270_libertas_pin_config)); gpio_direction_output(GPIO115_WLAN_PWEN, 0); mdelay(100); msleep(100); gpio_set_value(GPIO115_WLAN_PWEN, 1); mdelay(100); msleep(100); spi->bits_per_word = 16; spi_setup(spi); 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) { gpio_set_value(GPIO115_WLAN_PWEN, 0); 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; } Loading