This is an automated email from the ASF dual-hosted git repository.

kasjer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 3802abc16 mcu/stm32: Make hal_gpio_(de)init_stm() cfg parameter const
3802abc16 is described below

commit 3802abc161ddb27b0b4836f8694ca2c72b158dd2
Author: Jerzy Kasenberg <[email protected]>
AuthorDate: Tue Oct 20 07:51:31 2026 +0200

    mcu/stm32: Make hal_gpio_(de)init_stm() cfg parameter const
    
    hal_gpio_init_stm() and hal_gpio_deinit_stm() modified Pin field
    of passed configuration. Callers that keep pin configuration in
    const structures (stm32h5 stm32_pin_config(), i2s_stm32f4,
    i2s_stm32f7) casted away const and ended up writing to flash.
    Since flash is unlocked during init, such write sets PGSERR in
    flash status register which in turn makes following flash erase
    fail.
    
    Now hal_gpio_init_stm() takes const configuration and modifies
    local copy. hal_gpio_deinit_stm() only needs pin mask and does not
    touch configuration at all. Casts in callers and local copy in
    i2s_stm32f1 are no longer needed.
    
    Both functions have single implementation in stm32_common, so
    their prototypes are moved from each MCU family header to
    stm32_common/stm32_hal.h.
    
    Assisted-by: Claude:claude-opus-5-5
    Signed-off-by: Jerzy Kasenberg <[email protected]>
---
 hw/drivers/adc/adc_stm32f4/src/adc_stm32f4.c       |  1 +
 .../indev/adc_touch/adc_stm32f4/src/adc_stm32f4.c  |  1 +
 .../indev/adc_touch/adc_stm32f7/src/adc_stm32f7.c  |  1 +
 hw/drivers/i2s/i2s_stm32f1/src/i2s_stm32f1.c       | 12 ++++-------
 hw/drivers/i2s/i2s_stm32f4/src/i2s_stm32f4.c       | 11 ++++++-----
 hw/drivers/i2s/i2s_stm32f7/src/i2s_stm32f7.c       |  9 +++++----
 .../stm32_common/include/stm32_common/stm32_hal.h  |  3 +++
 hw/mcu/stm/stm32_common/src/hal_gpio.c             | 23 +++++++++++-----------
 hw/mcu/stm/stm32_common/src/hal_i2c.c              |  1 +
 hw/mcu/stm/stm32_common/src/hal_spi.c              |  1 +
 .../stm32f0xx/include/mcu/stm32f0xx_mynewt_hal.h   |  3 ---
 .../stm32f1xx/include/mcu/stm32f1xx_mynewt_hal.h   |  3 ---
 .../stm32f3xx/include/mcu/stm32f3xx_mynewt_hal.h   |  3 ---
 .../stm32f4xx/include/mcu/stm32f4xx_mynewt_hal.h   |  3 ---
 .../stm32f7xx/include/mcu/stm32f7xx_mynewt_hal.h   |  3 ---
 .../stm32g0xx/include/mcu/stm32g0xx_mynewt_hal.h   |  3 ---
 .../stm32g4xx/include/mcu/stm32g4xx_mynewt_hal.h   |  3 ---
 .../stm32h5xx/include/mcu/stm32h5xx_mynewt_hal.h   |  3 ---
 hw/mcu/stm/stm32h5xx/src/stm32_pin_cfg.c           |  3 ++-
 .../stm32h7xx/include/mcu/stm32h7xx_mynewt_hal.h   |  3 ---
 .../stm32l0xx/include/mcu/stm32l0xx_mynewt_hal.h   |  3 ---
 .../stm32l1xx/include/mcu/stm32l1xx_mynewt_hal.h   |  3 ---
 .../stm32l4xx/include/mcu/stm32l4xx_mynewt_hal.h   |  3 ---
 .../stm32u5xx/include/mcu/stm32u5xx_mynewt_hal.h   |  3 ---
 .../stm32wbxx/include/mcu/stm32wbxx_mynewt_hal.h   |  3 ---
 25 files changed, 36 insertions(+), 72 deletions(-)

diff --git a/hw/drivers/adc/adc_stm32f4/src/adc_stm32f4.c 
b/hw/drivers/adc/adc_stm32f4/src/adc_stm32f4.c
index b19f1ecf4..7476794b1 100644
--- a/hw/drivers/adc/adc_stm32f4/src/adc_stm32f4.c
+++ b/hw/drivers/adc/adc_stm32f4/src/adc_stm32f4.c
@@ -30,6 +30,7 @@
 #include "adc_stm32f4/adc_stm32f4.h"
 #include "stm32f4xx_hal_dma.h"
 #include "mcu/stm32f4xx_mynewt_hal.h"
+#include "stm32_common/stm32_hal.h"
 
 #if MYNEWT_VAL(ADC_1)||MYNEWT_VAL(ADC_2)||MYNEWT_VAL(ADC_3)
 #include <adc/adc.h>
diff --git 
a/hw/drivers/display/lvgl/indev/adc_touch/adc_stm32f4/src/adc_stm32f4.c 
b/hw/drivers/display/lvgl/indev/adc_touch/adc_stm32f4/src/adc_stm32f4.c
index a83afc3e4..863a152c8 100644
--- a/hw/drivers/display/lvgl/indev/adc_touch/adc_stm32f4/src/adc_stm32f4.c
+++ b/hw/drivers/display/lvgl/indev/adc_touch/adc_stm32f4/src/adc_stm32f4.c
@@ -28,6 +28,7 @@
 #include <stm32f4xx_hal_rcc.h>
 #include <stm32f4xx_hal_gpio.h>
 #include <mcu/stm32_hal.h>
+#include <stm32_common/stm32_hal.h>
 #include <adc_touch.h>
 
 #define ADC_ASYNC   1
diff --git 
a/hw/drivers/display/lvgl/indev/adc_touch/adc_stm32f7/src/adc_stm32f7.c 
b/hw/drivers/display/lvgl/indev/adc_touch/adc_stm32f7/src/adc_stm32f7.c
index fbaf3a0c6..b8cfe105b 100644
--- a/hw/drivers/display/lvgl/indev/adc_touch/adc_stm32f7/src/adc_stm32f7.c
+++ b/hw/drivers/display/lvgl/indev/adc_touch/adc_stm32f7/src/adc_stm32f7.c
@@ -22,6 +22,7 @@
 #include <os/os.h>
 
 #include <mcu/stm32_hal.h>
+#include <stm32_common/stm32_hal.h>
 #include <stm32_common/mcu.h>
 
 #include <stm32f7xx_hal_adc.h>
diff --git a/hw/drivers/i2s/i2s_stm32f1/src/i2s_stm32f1.c 
b/hw/drivers/i2s/i2s_stm32f1/src/i2s_stm32f1.c
index 1ff3488d4..50e9ebd5d 100644
--- a/hw/drivers/i2s/i2s_stm32f1/src/i2s_stm32f1.c
+++ b/hw/drivers/i2s/i2s_stm32f1/src/i2s_stm32f1.c
@@ -20,6 +20,7 @@
 #include <os/mynewt.h>
 #include <mcu/mcu.h>
 #include <mcu/stm32_hal.h>
+#include <stm32_common/stm32_hal.h>
 #include <i2s/i2s.h>
 #include <i2s/i2s_driver.h>
 #include <i2s_stm32f1/stm32_pin_cfg.h>
@@ -167,14 +168,9 @@ i2s_init_interrupts(const struct i2s_cfg *cfg)
 static void
 i2s_init_pins(const struct stm32_i2s_pins *pins)
 {
-    GPIO_InitTypeDef gpio_init;
-
-    gpio_init = pins->ck_pin->hal_init;
-    hal_gpio_init_stm(pins->ck_pin->pin, &gpio_init);
-    gpio_init = pins->ws_pin->hal_init;
-    hal_gpio_init_stm(pins->ws_pin->pin, &gpio_init);
-    gpio_init = pins->sd_pin->hal_init;
-    hal_gpio_init_stm(pins->sd_pin->pin, &gpio_init);
+    hal_gpio_init_stm(pins->ck_pin->pin, &pins->ck_pin->hal_init);
+    hal_gpio_init_stm(pins->ws_pin->pin, &pins->ws_pin->hal_init);
+    hal_gpio_init_stm(pins->sd_pin->pin, &pins->sd_pin->hal_init);
 }
 
 static int
diff --git a/hw/drivers/i2s/i2s_stm32f4/src/i2s_stm32f4.c 
b/hw/drivers/i2s/i2s_stm32f4/src/i2s_stm32f4.c
index 42d854aff..034d44166 100644
--- a/hw/drivers/i2s/i2s_stm32f4/src/i2s_stm32f4.c
+++ b/hw/drivers/i2s/i2s_stm32f4/src/i2s_stm32f4.c
@@ -20,6 +20,7 @@
 #include <os/mynewt.h>
 #include <mcu/mcu.h>
 #include <mcu/stm32_hal.h>
+#include <stm32_common/stm32_hal.h>
 #include <bsp/bsp.h>
 #include <i2s/i2s.h>
 #include <i2s/i2s_driver.h>
@@ -274,15 +275,15 @@ i2s_init_interrupts(const struct i2s_cfg *cfg)
 static void
 i2s_init_pins(struct stm32_i2s_pins *pins)
 {
-    hal_gpio_init_stm(pins->ck_pin->pin, (GPIO_InitTypeDef 
*)&pins->ck_pin->hal_init);
-    hal_gpio_init_stm(pins->ws_pin->pin, (GPIO_InitTypeDef 
*)&pins->ws_pin->hal_init);
-    hal_gpio_init_stm(pins->sd_pin->pin, (GPIO_InitTypeDef 
*)&pins->sd_pin->hal_init);
+    hal_gpio_init_stm(pins->ck_pin->pin, &pins->ck_pin->hal_init);
+    hal_gpio_init_stm(pins->ws_pin->pin, &pins->ws_pin->hal_init);
+    hal_gpio_init_stm(pins->sd_pin->pin, &pins->sd_pin->hal_init);
     if (pins->mck_pin) {
-        hal_gpio_init_stm(pins->mck_pin->pin, (GPIO_InitTypeDef 
*)&pins->mck_pin->hal_init);
+        hal_gpio_init_stm(pins->mck_pin->pin, &pins->mck_pin->hal_init);
     }
 #if I2S_FULLDUPLEX_SUPPORT
     if (pins->ext_sd_pin) {
-        hal_gpio_init_stm(pins->ext_sd_pin->pin, (GPIO_InitTypeDef 
*)&pins->ext_sd_pin->hal_init);
+        hal_gpio_init_stm(pins->ext_sd_pin->pin, &pins->ext_sd_pin->hal_init);
     }
 #endif
 }
diff --git a/hw/drivers/i2s/i2s_stm32f7/src/i2s_stm32f7.c 
b/hw/drivers/i2s/i2s_stm32f7/src/i2s_stm32f7.c
index 54ec94883..ea8127044 100644
--- a/hw/drivers/i2s/i2s_stm32f7/src/i2s_stm32f7.c
+++ b/hw/drivers/i2s/i2s_stm32f7/src/i2s_stm32f7.c
@@ -20,6 +20,7 @@
 #include <os/mynewt.h>
 #include <mcu/mcu.h>
 #include <mcu/stm32_hal.h>
+#include <stm32_common/stm32_hal.h>
 #include <bsp/bsp.h>
 #include <i2s/i2s.h>
 #include <i2s/i2s_driver.h>
@@ -152,11 +153,11 @@ i2s_init_interrupts(const struct i2s_cfg *cfg)
 static void
 i2s_init_pins(struct stm32_i2s_pins *pins)
 {
-    hal_gpio_init_stm(pins->ck_pin->pin, (GPIO_InitTypeDef 
*)&pins->ck_pin->hal_init);
-    hal_gpio_init_stm(pins->ws_pin->pin, (GPIO_InitTypeDef 
*)&pins->ws_pin->hal_init);
-    hal_gpio_init_stm(pins->sd_pin->pin, (GPIO_InitTypeDef 
*)&pins->sd_pin->hal_init);
+    hal_gpio_init_stm(pins->ck_pin->pin, &pins->ck_pin->hal_init);
+    hal_gpio_init_stm(pins->ws_pin->pin, &pins->ws_pin->hal_init);
+    hal_gpio_init_stm(pins->sd_pin->pin, &pins->sd_pin->hal_init);
     if (pins->mck_pin) {
-        hal_gpio_init_stm(pins->mck_pin->pin, (GPIO_InitTypeDef 
*)&pins->mck_pin->hal_init);
+        hal_gpio_init_stm(pins->mck_pin->pin, &pins->mck_pin->hal_init);
     }
 }
 
diff --git a/hw/mcu/stm/stm32_common/include/stm32_common/stm32_hal.h 
b/hw/mcu/stm/stm32_common/include/stm32_common/stm32_hal.h
index 7d67d25a7..38b0b49de 100644
--- a/hw/mcu/stm/stm32_common/include/stm32_common/stm32_hal.h
+++ b/hw/mcu/stm/stm32_common/include/stm32_common/stm32_hal.h
@@ -43,6 +43,9 @@ extern "C" {
 uint32_t stm32_hal_timer_get_freq(void *timx);
 void stm32_periph_create(void);
 
+int hal_gpio_init_stm(int pin, const GPIO_InitTypeDef *cfg);
+int hal_gpio_deinit_stm(int pin, const GPIO_InitTypeDef *cfg);
+
 #ifndef STM32_HAL_TIMER_TIM1_IRQ
 #define STM32_HAL_TIMER_TIM1_IRQ    TIM1_UP_TIM10_IRQn
 #endif
diff --git a/hw/mcu/stm/stm32_common/src/hal_gpio.c 
b/hw/mcu/stm/stm32_common/src/hal_gpio.c
index 195db2422..abef37b2e 100644
--- a/hw/mcu/stm/stm32_common/src/hal_gpio.c
+++ b/hw/mcu/stm/stm32_common/src/hal_gpio.c
@@ -20,6 +20,7 @@
 #include "hal/hal_gpio.h"
 #include "mcu/cmsis_nvic.h"
 #include "mcu/stm32_hal.h"
+#include "stm32_common/stm32_hal.h"
 #include "stm32_common/mcu.h"
 #include <assert.h>
 
@@ -620,10 +621,10 @@ hal_gpio_set_nvic(IRQn_Type irqn)
  * @return int
  */
 int
-hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg)
+hal_gpio_init_stm(int pin, const GPIO_InitTypeDef *cfg)
 {
     int port;
-    uint32_t mcu_pin_mask;
+    GPIO_InitTypeDef init_cfg;
 
     /* Is this a valid pin? */
     port = MCU_GPIO_PIN_PORT(pin);
@@ -631,14 +632,15 @@ hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg)
         return -1;
     }
 
-    mcu_pin_mask = GPIO_MASK(pin);
-    cfg->Pin = mcu_pin_mask;
+    /* cfg can be const and located in flash, modify a copy */
+    init_cfg = *cfg;
+    init_cfg.Pin = GPIO_MASK(pin);
 
     /* Enable the GPIO clock */
     hal_gpio_clk_enable(port);
 
     /* Initialize pin as an input, setting proper mode */
-    HAL_GPIO_Init(portmap[port], cfg);
+    HAL_GPIO_Init(portmap[port], &init_cfg);
 
     return 0;
 }
@@ -654,10 +656,9 @@ hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg)
  * @return int
  */
 int
-hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg)
+hal_gpio_deinit_stm(int pin, const GPIO_InitTypeDef *cfg)
 {
     int port;
-    uint32_t mcu_pin_mask;
 
     /* Is this a valid pin? */
     port = MCU_GPIO_PIN_PORT(pin);
@@ -665,11 +666,8 @@ hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg)
         return -1;
     }
 
-    mcu_pin_mask = GPIO_MASK(pin);
-    cfg->Pin = mcu_pin_mask;
-
     /* Initialize pin as an input, setting proper mode */
-    HAL_GPIO_DeInit(portmap[port], cfg->Pin);
+    HAL_GPIO_DeInit(portmap[port], GPIO_MASK(pin));
 
     return 0;
 }
@@ -797,7 +795,8 @@ hal_gpio_init_fun(uint32_t pin)
 int
 hal_gpio_deinit(int pin)
 {
-    GPIO_InitTypeDef gpio;
+    GPIO_InitTypeDef gpio = { 0 };
+
     return hal_gpio_deinit_stm(pin, &gpio);
 }
 
diff --git a/hw/mcu/stm/stm32_common/src/hal_i2c.c 
b/hw/mcu/stm/stm32_common/src/hal_i2c.c
index 71eea766c..740e4956c 100644
--- a/hw/mcu/stm/stm32_common/src/hal_i2c.c
+++ b/hw/mcu/stm/stm32_common/src/hal_i2c.c
@@ -27,6 +27,7 @@
 #include <hal/hal_gpio.h>
 
 #include <mcu/stm32_hal.h>
+#include <stm32_common/stm32_hal.h>
 #include <stm32_common/mcu.h>
 
 #if MYNEWT_VAL(I2C_3)
diff --git a/hw/mcu/stm/stm32_common/src/hal_spi.c 
b/hw/mcu/stm/stm32_common/src/hal_spi.c
index 388382f69..13553a94c 100644
--- a/hw/mcu/stm/stm32_common/src/hal_spi.c
+++ b/hw/mcu/stm/stm32_common/src/hal_spi.c
@@ -23,6 +23,7 @@
 #include <hal/hal_spi.h>
 #include <hal/hal_gpio.h>
 #include "mcu/stm32_hal.h"
+#include "stm32_common/stm32_hal.h"
 #include "mcu/cmsis_nvic.h"
 
 #define SPI_0_ENABLED (MYNEWT_VAL(SPI_0_MASTER) || MYNEWT_VAL(SPI_0_SLAVE))
diff --git a/hw/mcu/stm/stm32f0xx/include/mcu/stm32f0xx_mynewt_hal.h 
b/hw/mcu/stm/stm32f0xx/include/mcu/stm32f0xx_mynewt_hal.h
index de8931cde..36821b6f5 100644
--- a/hw/mcu/stm/stm32f0xx/include/mcu/stm32f0xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32f0xx/include/mcu/stm32f0xx_mynewt_hal.h
@@ -44,9 +44,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32f1xx/include/mcu/stm32f1xx_mynewt_hal.h 
b/hw/mcu/stm/stm32f1xx/include/mcu/stm32f1xx_mynewt_hal.h
index 437a3fda1..31619ed62 100644
--- a/hw/mcu/stm/stm32f1xx/include/mcu/stm32f1xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32f1xx/include/mcu/stm32f1xx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32f3xx/include/mcu/stm32f3xx_mynewt_hal.h 
b/hw/mcu/stm/stm32f3xx/include/mcu/stm32f3xx_mynewt_hal.h
index 868efca6f..99f0c9a80 100644
--- a/hw/mcu/stm/stm32f3xx/include/mcu/stm32f3xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32f3xx/include/mcu/stm32f3xx_mynewt_hal.h
@@ -44,9 +44,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32f4xx/include/mcu/stm32f4xx_mynewt_hal.h 
b/hw/mcu/stm/stm32f4xx/include/mcu/stm32f4xx_mynewt_hal.h
index a65688674..488fd338a 100644
--- a/hw/mcu/stm/stm32f4xx/include/mcu/stm32f4xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32f4xx/include/mcu/stm32f4xx_mynewt_hal.h
@@ -44,9 +44,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;            /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32f7xx/include/mcu/stm32f7xx_mynewt_hal.h 
b/hw/mcu/stm/stm32f7xx/include/mcu/stm32f7xx_mynewt_hal.h
index a9f2321ea..2e645ff1b 100644
--- a/hw/mcu/stm/stm32f7xx/include/mcu/stm32f7xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32f7xx/include/mcu/stm32f7xx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;      /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32g0xx/include/mcu/stm32g0xx_mynewt_hal.h 
b/hw/mcu/stm/stm32g0xx/include/mcu/stm32g0xx_mynewt_hal.h
index 41b87fb27..8b984f133 100644
--- a/hw/mcu/stm/stm32g0xx/include/mcu/stm32g0xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32g0xx/include/mcu/stm32g0xx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32g4xx/include/mcu/stm32g4xx_mynewt_hal.h 
b/hw/mcu/stm/stm32g4xx/include/mcu/stm32g4xx_mynewt_hal.h
index 5afd63d47..eab4145ff 100644
--- a/hw/mcu/stm/stm32g4xx/include/mcu/stm32g4xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32g4xx/include/mcu/stm32g4xx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32h5xx/include/mcu/stm32h5xx_mynewt_hal.h 
b/hw/mcu/stm/stm32h5xx/include/mcu/stm32h5xx_mynewt_hal.h
index 554bb8579..823eeca2a 100644
--- a/hw/mcu/stm/stm32h5xx/include/mcu/stm32h5xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32h5xx/include/mcu/stm32h5xx_mynewt_hal.h
@@ -44,9 +44,6 @@ extern "C" {
         }                                                                     \
     } while (0)
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg; /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32h5xx/src/stm32_pin_cfg.c 
b/hw/mcu/stm/stm32h5xx/src/stm32_pin_cfg.c
index f2af0a9ad..b90c65852 100644
--- a/hw/mcu/stm/stm32h5xx/src/stm32_pin_cfg.c
+++ b/hw/mcu/stm/stm32h5xx/src/stm32_pin_cfg.c
@@ -19,6 +19,7 @@
 
 #include <os/mynewt.h>
 #include <mcu/stm32_hal.h>
+#include <stm32_common/stm32_hal.h>
 #include <stm32_common/mcu.h>
 
 #define STM32_PIN_FUN_CFG(port_n, pin_n, pf, af) \
@@ -78,7 +79,7 @@ void
 stm32_pin_config(stm32_pin_cfg_t cfg)
 {
     if (cfg) {
-        hal_gpio_init_stm(cfg->pin, (GPIO_InitTypeDef *)&cfg->hal_init);
+        hal_gpio_init_stm(cfg->pin, &cfg->hal_init);
     }
 }
 
diff --git a/hw/mcu/stm/stm32h7xx/include/mcu/stm32h7xx_mynewt_hal.h 
b/hw/mcu/stm/stm32h7xx/include/mcu/stm32h7xx_mynewt_hal.h
index fd6f5ea1c..b52593ba2 100644
--- a/hw/mcu/stm/stm32h7xx/include/mcu/stm32h7xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32h7xx/include/mcu/stm32h7xx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;      /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32l0xx/include/mcu/stm32l0xx_mynewt_hal.h 
b/hw/mcu/stm/stm32l0xx/include/mcu/stm32l0xx_mynewt_hal.h
index 50f18b7d0..d554aac7f 100644
--- a/hw/mcu/stm/stm32l0xx/include/mcu/stm32l0xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32l0xx/include/mcu/stm32l0xx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32l1xx/include/mcu/stm32l1xx_mynewt_hal.h 
b/hw/mcu/stm/stm32l1xx/include/mcu/stm32l1xx_mynewt_hal.h
index 7651c5ec7..d49dfad00 100644
--- a/hw/mcu/stm/stm32l1xx/include/mcu/stm32l1xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32l1xx/include/mcu/stm32l1xx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/stm32l4xx_mynewt_hal.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/stm32l4xx_mynewt_hal.h
index 6cec1fdc6..5168062a2 100644
--- a/hw/mcu/stm/stm32l4xx/include/mcu/stm32l4xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/stm32l4xx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/stm32u5xx_mynewt_hal.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/stm32u5xx_mynewt_hal.h
index c403d44c4..be692acd5 100644
--- a/hw/mcu/stm/stm32u5xx/include/mcu/stm32u5xx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/stm32u5xx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */
diff --git a/hw/mcu/stm/stm32wbxx/include/mcu/stm32wbxx_mynewt_hal.h 
b/hw/mcu/stm/stm32wbxx/include/mcu/stm32wbxx_mynewt_hal.h
index 752265768..c4193eae3 100644
--- a/hw/mcu/stm/stm32wbxx/include/mcu/stm32wbxx_mynewt_hal.h
+++ b/hw/mcu/stm/stm32wbxx/include/mcu/stm32wbxx_mynewt_hal.h
@@ -45,9 +45,6 @@ extern "C" {
     } while(0);
 
 
-int hal_gpio_init_stm(int pin, GPIO_InitTypeDef *cfg);
-int hal_gpio_deinit_stm(int pin, GPIO_InitTypeDef *cfg);
-
 struct stm32_hal_i2c_cfg {
     I2C_TypeDef *hic_i2c;
     volatile uint32_t *hic_rcc_reg;     /* RCC register to modify */

Reply via email to