samples: wifi: winc1500: Don't assume all GPIO pins on same controller
Change the sample to use a different controller device name per pin. We shouldn't assume that on a given board that all the pins we are using will be on the same GPIO controller device. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
parent
9730ca1852
commit
0324423de6
2 changed files with 13 additions and 11 deletions
|
@ -22,7 +22,4 @@
|
|||
#define DT_WINC1500_GPIO_RESET_N_DRV_NAME DT_SNPS_DESIGNWARE_SPI_B0001400_ATMEL_WINC1500_0_RESET_GPIOS_CONTROLLER
|
||||
#define DT_WINC1500_GPIO_RESET_N DT_SNPS_DESIGNWARE_SPI_B0001400_ATMEL_WINC1500_0_RESET_GPIOS_PIN
|
||||
|
||||
/* For now we assume that all the GPIOs are on the same controller */
|
||||
#define DT_WINC1500_GPIO_DRV_NAME DT_WINC1500_GPIO_CHIP_EN_DRV_NAME
|
||||
|
||||
#endif /* CONFIG_BOARD_QUARK_SE_C1000_DEVBOARD */
|
||||
|
|
|
@ -26,20 +26,25 @@ struct winc1500_gpio_configuration *winc1500_configure_gpios(void)
|
|||
GPIO_INT_ACTIVE_LOW | GPIO_INT_DEBOUNCE |
|
||||
GPIO_INT_EDGE);
|
||||
const int flags_noint_out = GPIO_DIR_OUT;
|
||||
struct device *gpio;
|
||||
struct device *gpio_en, *gpio_irq, *gpio_reset;
|
||||
|
||||
gpio = device_get_binding(DT_WINC1500_GPIO_DRV_NAME);
|
||||
gpio_en = device_get_binding(DT_WINC1500_GPIO_CHIP_EN_DRV_NAME);
|
||||
gpio_irq = device_get_binding(DT_WINC1500_GPIO_IRQN_DRV_NAME);
|
||||
gpio_reset = device_get_binding(DT_WINC1500_GPIO_RESET_N_DRV_NAME);
|
||||
|
||||
gpio_pin_configure(gpio, winc1500_gpios[WINC1500_GPIO_IDX_CHIP_EN].pin,
|
||||
gpio_pin_configure(gpio_en,
|
||||
winc1500_gpios[WINC1500_GPIO_IDX_CHIP_EN].pin,
|
||||
flags_noint_out);
|
||||
gpio_pin_configure(gpio, winc1500_gpios[WINC1500_GPIO_IDX_IRQN].pin,
|
||||
gpio_pin_configure(gpio_irq,
|
||||
winc1500_gpios[WINC1500_GPIO_IDX_IRQN].pin,
|
||||
flags_int_in);
|
||||
gpio_pin_configure(gpio, winc1500_gpios[WINC1500_GPIO_IDX_RESET_N].pin,
|
||||
gpio_pin_configure(gpio_reset,
|
||||
winc1500_gpios[WINC1500_GPIO_IDX_RESET_N].pin,
|
||||
flags_noint_out);
|
||||
|
||||
winc1500_gpios[WINC1500_GPIO_IDX_CHIP_EN].dev = gpio;
|
||||
winc1500_gpios[WINC1500_GPIO_IDX_IRQN].dev = gpio;
|
||||
winc1500_gpios[WINC1500_GPIO_IDX_RESET_N].dev = gpio;
|
||||
winc1500_gpios[WINC1500_GPIO_IDX_CHIP_EN].dev = gpio_en;
|
||||
winc1500_gpios[WINC1500_GPIO_IDX_IRQN].dev = gpio_irq;
|
||||
winc1500_gpios[WINC1500_GPIO_IDX_RESET_N].dev = gpio_reset;
|
||||
|
||||
return winc1500_gpios;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue