diff options
author | Ricardo Salveti <ricardo.salveti@linaro.org> | 2016-08-11 04:17:29 -0300 |
---|---|---|
committer | Kumar Gala <kumar.gala@linaro.org> | 2016-10-27 14:48:43 +0000 |
commit | a9f2061dfba87ffbf64bf856bc3060376ca355ad (patch) | |
tree | 226634b83adba723f6ce502ecfadf754c9852e83 /drivers | |
parent | 3bdc77ee094c0f4f88379dd3159cd10199dc3a61 (diff) |
gpio: stm32: introduce alternative function config
STM32F4 requires the alternative function config to be set, so just
initialize that as part of the gpio configure call.
Change-Id: I33a4a8efec59c5ebe7dc3f3580f0dd2bf7ded7f4
Signed-off-by: Ricardo Salveti <ricardo.salveti@linaro.org>
Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpio/gpio_stm32.c | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio_stm32.h | 3 | ||||
-rw-r--r-- | drivers/pinmux/stm32/pinmux_stm32.c | 7 |
3 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpio/gpio_stm32.c b/drivers/gpio/gpio_stm32.c index 8f223a5b6..8af46aba7 100644 --- a/drivers/gpio/gpio_stm32.c +++ b/drivers/gpio/gpio_stm32.c @@ -69,7 +69,7 @@ static int gpio_stm32_config(struct device *dev, int access_op, return map_res; } - if (stm32_gpio_configure(cfg->base, pin, pincfg)) { + if (stm32_gpio_configure(cfg->base, pin, pincfg, 0)) { return -EIO; } diff --git a/drivers/gpio/gpio_stm32.h b/drivers/gpio/gpio_stm32.h index cb577084f..51dc847fd 100644 --- a/drivers/gpio/gpio_stm32.h +++ b/drivers/gpio/gpio_stm32.h @@ -64,8 +64,9 @@ int stm32_gpio_flags_to_conf(int flags, int *conf); * @param base_addr GPIO port base address * @param pin IO pin * @param func GPIO mode + * @param altf Alternate function */ -int stm32_gpio_configure(uint32_t *base_addr, int pin, int func); +int stm32_gpio_configure(uint32_t *base_addr, int pin, int func, int altf); /** * @brief helper for setting of GPIO pin output diff --git a/drivers/pinmux/stm32/pinmux_stm32.c b/drivers/pinmux/stm32/pinmux_stm32.c index 4936b04da..9b5760ad3 100644 --- a/drivers/pinmux/stm32/pinmux_stm32.c +++ b/drivers/pinmux/stm32/pinmux_stm32.c @@ -52,7 +52,7 @@ static int enable_port(uint32_t port, struct device *clk) return clock_control_on(clk, subsys); } -static int stm32_pin_configure(int pin, int func) +static int stm32_pin_configure(int pin, int func, int altf) { /* determine IO port registers location */ uint32_t offset = STM32_PORT(pin) * GPIO_REG_SIZE; @@ -61,7 +61,8 @@ static int stm32_pin_configure(int pin, int func) /* not much here, on STM32F10x the alternate function is * controller by setting up GPIO pins in specific mode. */ - return stm32_gpio_configure((uint32_t *)port_base, STM32_PIN(pin), func); + return stm32_gpio_configure((uint32_t *)port_base, + STM32_PIN(pin), func, altf); } /** @@ -86,7 +87,7 @@ int _pinmux_stm32_set(uint32_t pin, uint32_t func, /* determine config for alternate function */ config = stm32_get_pin_config(pin, func); - return stm32_pin_configure(pin, config); + return stm32_pin_configure(pin, config, func); } /** |