From 297d2fcc49d82c8e6b4de63db3acf1e5f1465af1 Mon Sep 17 00:00:00 2001 From: Khaoula Bidani Date: Mon, 15 Sep 2025 15:53:41 +0200 Subject: [PATCH] drivers: gpio: stm32: Fix gpio_pin_get_config This commit updates the function to only set output-related flags (GPIO_OUTPUT_INIT_HIGH, GPIO_OUTPUT_INIT_LOW) when the pin is actually configured as output. For input pins, only GPIO_INPUT and other relevant flags are set. Signed-off-by: Khaoula Bidani (cherry picked from commit e803a10b91e289dd310baf01647779004d6199cb) --- drivers/gpio/gpio_stm32.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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;