diff --git a/drivers/gpio/gpio_stm32.c b/drivers/gpio/gpio_stm32.c index 865f4ae48e0ef..f5634af3aeffa 100644 --- a/drivers/gpio/gpio_stm32.c +++ b/drivers/gpio/gpio_stm32.c @@ -126,6 +126,12 @@ static int gpio_stm32_pincfg_to_flags(struct gpio_stm32_pin pin_cfg, if (pin_cfg.type == LL_GPIO_OUTPUT_OPENDRAIN) { flags |= GPIO_OPEN_DRAIN; } + + if (pin_cfg.out_state == 0) { + flags |= GPIO_OUTPUT_INIT_LOW; + } else { + flags |= GPIO_OUTPUT_INIT_HIGH; + } } else if (pin_cfg.mode == LL_GPIO_MODE_INPUT) { flags |= GPIO_INPUT; #ifdef CONFIG_SOC_SERIES_STM32F1X @@ -142,12 +148,6 @@ static int gpio_stm32_pincfg_to_flags(struct gpio_stm32_pin pin_cfg, flags |= GPIO_PULL_DOWN; } - if (pin_cfg.out_state != 0) { - flags |= GPIO_OUTPUT_HIGH; - } else { - flags |= GPIO_OUTPUT_LOW; - } - *out_flags = flags; return 0;