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

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 6086f091741b77d29255eb94d798c16fce8e73a2
Author: raiden00pl <[email protected]>
AuthorDate: Fri Aug 14 18:23:34 2026 +0200

    arch/arm/stm32h5: add support for STM32H503RB
    
    Add the STM32H50XXX support
    
    Signed-off-by: raiden00pl <[email protected]>
    Assisted-by: Claude Code
---
 arch/arm/include/stm32h5/chip.h                    |  78 ++++-
 arch/arm/include/stm32h5/irq.h                     |   7 +-
 arch/arm/include/stm32h5/stm32h5xx_irq.h           |   8 +-
 arch/arm/src/stm32h5/Kconfig                       |  32 +-
 arch/arm/src/stm32h5/hardware/stm32_flash.h        |   3 +-
 arch/arm/src/stm32h5/hardware/stm32_gpdma.h        |   2 +-
 arch/arm/src/stm32h5/hardware/stm32_gpio.h         |   7 +-
 arch/arm/src/stm32h5/hardware/stm32_i2c.h          |   7 +-
 arch/arm/src/stm32h5/hardware/stm32_memorymap.h    |   7 +-
 arch/arm/src/stm32h5/hardware/stm32_pinmap.h       |   4 +-
 arch/arm/src/stm32h5/hardware/stm32_pwr.h          |   7 +-
 arch/arm/src/stm32h5/hardware/stm32_rcc.h          |   7 +-
 arch/arm/src/stm32h5/hardware/stm32_sbs.h          |   3 +-
 arch/arm/src/stm32h5/hardware/stm32_uart.h         |   7 +-
 arch/arm/src/stm32h5/hardware/stm32h50xxx_pinmap.h | 370 +++++++++++++++++++++
 arch/arm/src/stm32h5/stm32h5xx_rcc.c               |   6 +-
 16 files changed, 516 insertions(+), 39 deletions(-)

diff --git a/arch/arm/include/stm32h5/chip.h b/arch/arm/include/stm32h5/chip.h
index 6e91b7d4e93..a3f2aa69072 100644
--- a/arch/arm/include/stm32h5/chip.h
+++ b/arch/arm/include/stm32h5/chip.h
@@ -33,38 +33,69 @@
  * Pre-processor Prototypes
  ****************************************************************************/
 
-#if defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX)
+#if defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_SRAM1_SIZE       (16*1024)   /* 16Kb  SRAM1 on AHB bus Matrix 
*/
+#  define STM32_SRAM2_SIZE       (16*1024)   /* 16Kb  SRAM2 on AHB bus Matrix 
*/
+#  define STM32_SRAM3_SIZE       (0)         /* No SRAM3 */
+#elif defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX)
 #  define STM32_SRAM1_SIZE       (128*1024)  /* 128Kb SRAM1 on AHB bus Matrix 
*/
 #  define STM32_SRAM2_SIZE       (80*1024)   /* 80Kb  SRAM2 on AHB bus Matrix 
*/
 #  define STM32_SRAM3_SIZE       (64*1024)   /* 64Kb  SRAM3 on AHB bus Matrix 
*/
 #elif defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
-#  define STM32_SRAM1_SIZE       (256*1024)  /* 192Kb SRAM1 on AHB bus Matrix 
*/
+#  define STM32_SRAM1_SIZE       (256*1024)  /* 256Kb SRAM1 on AHB bus Matrix 
*/
 #  define STM32_SRAM2_SIZE       (64*1024)   /* 64Kb  SRAM2 on AHB bus Matrix 
*/
 #  define STM32_SRAM3_SIZE       (320*1024)  /* 320Kb SRAM3 on AHB bus Matrix 
*/
 #else
 #  error "Unsupported STM32H5 chip"
 #endif
 
-#define STM32_NFSMC                    (1)   /* Have FSMC memory controller */
-#define STM32_NATIM                    (2)   /* Two advanced timers TIM1 and 
TIM8 */
-#define STM32_NGTIM32                  (2)   /* 32-bit general timers TIM2 and 
5 with DMA */
-#define STM32_NGTIM16                  (2)   /* 16-bit general timers TIM3 and 
4 with DMA */
-#define STM32_NGTIMNDMA                (3)   /* 16-bit general timers TIM15-17 
without DMA */
-#define STM32_NBTIM                    (2)   /* Two basic timers, TIM6-7 */
-#define STM32_NLPTIM                   (6)   /* Six low-power timers, 
LPTIM1-LPTIM6. */
 #define STM32_NRNG                     (1)   /* Random number generator (RNG) 
*/
 
+#if defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_NFSMC                  (0)   /* No FSMC memory controller */
+#  define STM32_NATIM                  (1)   /* One advanced timer TIM1 */
+#  define STM32_NGTIM32                (1)   /* 32-bit general timer TIM2 with 
DMA */
+#  define STM32_NGTIM16                (1)   /* 16-bit general timer TIM3 with 
DMA */
+#  define STM32_NGTIMNDMA              (0)   /* No 16-bit general timers 
without DMA */
+#  define STM32_NBTIM                  (2)   /* Two basic timers, TIM6-7 */
+#  define STM32_NLPTIM                 (2)   /* Two low-power timers, 
LPTIM1-LPTIM2 */
+#elif defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX)
+#  define STM32_NFSMC                  (1)   /* Have FSMC memory controller */
+#  define STM32_NATIM                  (2)   /* Two advanced timers TIM1 and 
TIM8 */
+#  define STM32_NGTIM32                (2)   /* 32-bit general timers TIM2 and 
5 with DMA */
+#  define STM32_NGTIM16                (2)   /* 16-bit general timers TIM3 and 
4 with DMA */
+#  define STM32_NGTIMNDMA              (2)   /* 16-bit general timers TIM12, 
15 without DMA */
+#  define STM32_NBTIM                  (2)   /* Two basic timers, TIM6-7 */
+#  define STM32_NLPTIM                 (2)   /* Two low-power timers, 
LPTIM1-LPTIM2 */
+#else
+#  define STM32_NFSMC                  (1)   /* Have FSMC memory controller */
+#  define STM32_NATIM                  (2)   /* Two advanced timers TIM1 and 
TIM8 */
+#  define STM32_NGTIM32                (2)   /* 32-bit general timers TIM2 and 
5 with DMA */
+#  define STM32_NGTIM16                (2)   /* 16-bit general timers TIM3 and 
4 with DMA */
+#  define STM32_NGTIMNDMA              (3)   /* 16-bit general timers TIM15-17 
without DMA */
+#  define STM32_NBTIM                  (2)   /* Two basic timers, TIM6-7 */
+#  define STM32_NLPTIM                 (6)   /* Six low-power timers, 
LPTIM1-LPTIM6. */
+#endif
+
 #if defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
 #  define STM32_NUART                  (6)   /* UART 4-5, 7-8, 9, 12 */
 #  define STM32_NUSART                 (5)   /* USART 1-3, 6, 10-11 */
 #elif defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX)
 #  define STM32_NUART                  (2)   /* UART 4-5 */
 #  define STM32_NUSART                 (4)   /* USART 1-3, 6*/
+#elif defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_NUART                  (0)   /* No UARTs */
+#  define STM32_NUSART                 (3)   /* USART 1-3 */
 #endif
 
 #define STM32_NLPUART                  (1)   /* LPUART 1 */
 #define STM32_QSPI                     (0)   /* No QuadSPI1 */
-#define STM32_OCTOSPI                  (1)   /* OCTOSPI1*/
+
+#if defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_OCTOSPI                (0)   /* No OCTOSPI */
+#else
+#  define STM32_OCTOSPI                (1)   /* OCTOSPI1*/
+#endif
 
 #if defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
 #  define STM32_NSPI                   (6)   /* SPI1-SPI6 */
@@ -72,23 +103,40 @@
 #elif defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX)
 #  define STM32_NSPI                   (4)   /* SPI1-SPI4 */
 #  define STM32_NI2C                   (3)   /* I2C1-3 */
+#elif defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_NSPI                   (3)   /* SPI1-SPI3 */
+#  define STM32_NI2C                   (2)   /* I2C1-2 */
 #endif
 
 #define STM32_NSWPMI                   (0)   /* No SWPMI1 */
 #define STM32_NUSBOTGFS                (0)   /* USB OTG FS */
-#define STM32_NUSBFS                   (1)   /* No USB FS */
-#define STM32_NCAN                     (2)   /* CAN1 */
-#define STM32_NSAI                     (2)   /* SAI1-2 */
+#define STM32_NUSBFS                   (1)   /* USB FS */
+
+#if defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_NCAN                   (1)   /* FDCAN1 */
+#  define STM32_NSAI                   (0)   /* No SAI */
+#else
+#  define STM32_NCAN                   (2)   /* FDCAN1-2 */
+#  define STM32_NSAI                   (2)   /* SAI1-2 */
+#endif
 
 #if defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
 #  define STM32_NSDMMC                 (2)   /* SDMMC interface */
 #elif defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX)
 #  define STM32_NSDMMC                 (1)   /* SDMMC interface */
+#elif defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_NSDMMC                 (0)   /* No SDMMC interface */
 #endif
 
 #define STM32_NDMA                     (2)   /* DMA1-2 */
-#define STM32_NPORTS                   (9)   /* 9 GPIO ports, GPIOA-GPIOI */
-#define STM32_NADC                     (2)   /* 12-bit ADC1, up to 20 channels 
*/
+
+#if defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_NPORTS                 (8)   /* 5 GPIO ports, GPIOA-GPIOD, 
GPIOH */
+#  define STM32_NADC                   (1)   /* 12-bit ADC1 */
+#else
+#  define STM32_NPORTS                 (9)   /* 9 GPIO ports, GPIOA-GPIOI */
+#  define STM32_NADC                   (2)   /* 12-bit ADC1, up to 20 channels 
*/
+#endif
 #define STM32_NDAC                     (1)   /* 12-bit DAC1 */
 #define STM32_NCRC                     (1)   /* CRC */
 #define STM32_NCOMP                    (0)   /* Comparators */
diff --git a/arch/arm/include/stm32h5/irq.h b/arch/arm/include/stm32h5/irq.h
index 68c53b2704e..c5aa9d3f686 100644
--- a/arch/arm/include/stm32h5/irq.h
+++ b/arch/arm/include/stm32h5/irq.h
@@ -65,8 +65,11 @@
 
 #define STM32_IRQ_FIRST         (16) /* Vector number of the first external 
interrupt */
 
-#if defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX) || \
-    defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
+#if defined(CONFIG_STM32_STM32H50XXX) || \
+    defined(CONFIG_STM32_STM32H52XXX) || \
+    defined(CONFIG_STM32_STM32H53XXX) || \
+    defined(CONFIG_STM32_STM32H56XXX) || \
+    defined(CONFIG_STM32_STM32H57XXX)
 #  include <arch/stm32h5/stm32h5xx_irq.h>
 #else
 #  error "Unsupported STM32 H5 chip"
diff --git a/arch/arm/include/stm32h5/stm32h5xx_irq.h 
b/arch/arm/include/stm32h5/stm32h5xx_irq.h
index b6582c3ec07..b1fc1a6c13c 100644
--- a/arch/arm/include/stm32h5/stm32h5xx_irq.h
+++ b/arch/arm/include/stm32h5/stm32h5xx_irq.h
@@ -194,15 +194,21 @@
 #  define STM32_IRQ_LPTIM5        (STM32_IRQ_FIRST + 129) /* 129: LPTIM5 
global interrupt */
 #  define STM32_IRQ_LPTIM6        (STM32_IRQ_FIRST + 130) /* 130: LPTIM6 
global interrupt */
 #endif
-#if defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX)
+#if defined(CONFIG_STM32_STM32H50XXX) || \
+    defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX)
 #  define STM32_IRQ_I3C2_EV       (STM32_IRQ_FIRST + 131) /* 131: I3C2_EV 
global interrupt */
 #  define STM32_IRQ_I3C2_ER       (STM32_IRQ_FIRST + 132) /* 132: I3C2_ER 
global interrupt */
 #endif
+#if defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_IRQ_COMP1         (STM32_IRQ_FIRST + 133) /* 133: COMP1 global 
interrupt */
+#endif
 
 #if defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
 #  define STM32_IRQ_NEXTINTS      131
 #elif defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX)
 #  define STM32_IRQ_NEXTINTS      133
+#elif defined(CONFIG_STM32_STM32H50XXX)
+#  define STM32_IRQ_NEXTINTS      134
 #endif
 
 #define NR_IRQS                   (STM32_IRQ_FIRST + STM32_IRQ_NEXTINTS)
diff --git a/arch/arm/src/stm32h5/Kconfig b/arch/arm/src/stm32h5/Kconfig
index 34ac1d26d19..0000cb2df6d 100644
--- a/arch/arm/src/stm32h5/Kconfig
+++ b/arch/arm/src/stm32h5/Kconfig
@@ -14,14 +14,12 @@ config STM32_H5_PERIPHERALS
        select STM32_HAVE_DMA2
        select STM32_HAVE_I2C1
        select STM32_HAVE_I2C2
-       select STM32_HAVE_I2C3
        select STM32_HAVE_RNG
        select STM32_HAVE_SPI1
        select STM32_HAVE_SPI2
        select STM32_HAVE_SPI3
        select STM32_HAVE_SYSCFG
        select STM32_HAVE_DTS
-       select STM32_HAVE_QSPI1
        select STM32_HAVE_USBFS_MODE
        select STM32_HAVE_USBDRD_HOST
        select STM32_HAVE_ADC_H5
@@ -34,6 +32,16 @@ choice
        default ARCH_CHIP_STM32H563ZI
        depends on ARCH_CHIP_STM32H5
 
+config ARCH_CHIP_STM32H503RB
+       bool "STM32H503RB"
+       select ARCH_CORTEXM33
+       select STM32_STM32H5XXXX
+       select STM32_STM32H50XXX
+       select STM32_FLASH_CONFIG_B
+       select STM32H5_IO_CONFIG_R
+       ---help---
+               STM32 H5 Cortex M33, 128 Kb FLASH, 32 Kb SRAM
+
 config ARCH_CHIP_STM32H533RE
        bool "STM32H533RE"
        select ARCH_CORTEXM33
@@ -65,9 +73,27 @@ config STM32_STM32H5XXXX
        select ARCH_HAVE_FPU
        select STM32_HAVE_ICACHE
 
+config STM32_STM32H50XXX
+       bool
+       default n
+       select STM32_HAVE_FDCAN1
+       select STM32_HAVE_TIM1
+       select STM32_HAVE_TIM2
+       select STM32_HAVE_TIM3
+       select STM32_HAVE_TIM6
+       select STM32_HAVE_TIM7
+       select STM32_HAVE_LPUART1
+       select STM32_HAVE_USART1
+       select STM32_HAVE_USART2
+       select STM32_HAVE_USART3
+       select STM32_HAVE_USBFS
+       select STM32_HAVE_HSI48
+
 config STM32_STM32H53XXX
        bool
        default n
+       select STM32_HAVE_I2C3
+       select STM32_HAVE_QSPI1
        select STM32_HAVE_FDCAN1
        select STM32_HAVE_FDCAN2
        select STM32_HAVE_TIM1
@@ -95,6 +121,8 @@ config STM32_STM32H53XXX
 config STM32_STM32H56XXX
        bool
        default n
+       select STM32_HAVE_I2C3
+       select STM32_HAVE_QSPI1
        select STM32_HAVE_CORDIC
        select STM32_HAVE_FDCAN1
        select STM32_HAVE_FDCAN2
diff --git a/arch/arm/src/stm32h5/hardware/stm32_flash.h 
b/arch/arm/src/stm32h5/hardware/stm32_flash.h
index ae4432e16aa..ff91e8f84c7 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_flash.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_flash.h
@@ -30,7 +30,8 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if defined(CONFIG_STM32_STM32H53XXX) || defined(CONFIG_STM32_STM32H56XXX)
+#if defined(CONFIG_STM32_STM32H50XXX) || \
+    defined(CONFIG_STM32_STM32H53XXX) || defined(CONFIG_STM32_STM32H56XXX)
 #  include "hardware/stm32h5xxx_flash.h"
 #else
 #  error "Unsupported STM32 H5 flash"
diff --git a/arch/arm/src/stm32h5/hardware/stm32_gpdma.h 
b/arch/arm/src/stm32h5/hardware/stm32_gpdma.h
index 4f5ec1fe16f..52ce92f6f81 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_gpdma.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_gpdma.h
@@ -30,7 +30,7 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if defined(CONFIG_STM32_STM32H53XXX) || \
+#if defined(CONFIG_STM32_STM32H50XXX) || defined(CONFIG_STM32_STM32H53XXX) || \
     defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
 #  include "stm32h56x_dmasigmap.h"
 #else
diff --git a/arch/arm/src/stm32h5/hardware/stm32_gpio.h 
b/arch/arm/src/stm32h5/hardware/stm32_gpio.h
index 8ff9b98ab84..a024da347a0 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_gpio.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_gpio.h
@@ -30,8 +30,11 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX) || \
-    defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
+#if defined(CONFIG_STM32_STM32H50XXX) || \
+    defined(CONFIG_STM32_STM32H52XXX) || \
+    defined(CONFIG_STM32_STM32H53XXX) || \
+    defined(CONFIG_STM32_STM32H56XXX) || \
+    defined(CONFIG_STM32_STM32H57XXX)
 #  include "hardware/stm32h5xxx_gpio.h"
 #else
 #  error "Unsupported STM32 H5 PWR"
diff --git a/arch/arm/src/stm32h5/hardware/stm32_i2c.h 
b/arch/arm/src/stm32h5/hardware/stm32_i2c.h
index d564ba5f1ec..d0481396153 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_i2c.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_i2c.h
@@ -30,8 +30,11 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX) || \
-    defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
+#if defined(CONFIG_STM32_STM32H50XXX) || \
+    defined(CONFIG_STM32_STM32H52XXX) || \
+    defined(CONFIG_STM32_STM32H53XXX) || \
+    defined(CONFIG_STM32_STM32H56XXX) || \
+    defined(CONFIG_STM32_STM32H57XXX)
 #  include "hardware/stm32h5xxx_i2c.h"
 #else
 #  error "Unsupported STM32 H5 I2C"
diff --git a/arch/arm/src/stm32h5/hardware/stm32_memorymap.h 
b/arch/arm/src/stm32h5/hardware/stm32_memorymap.h
index ff9b80be0fe..94373867444 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_memorymap.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_memorymap.h
@@ -30,8 +30,11 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX) || \
-    defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
+#if defined(CONFIG_STM32_STM32H50XXX) || \
+    defined(CONFIG_STM32_STM32H52XXX) || \
+    defined(CONFIG_STM32_STM32H53XXX) || \
+    defined(CONFIG_STM32_STM32H56XXX) || \
+    defined(CONFIG_STM32_STM32H57XXX)
 #  include "hardware/stm32h5xxx_memorymap.h"
 #else
 #  error "Unsupported STM32 H5 memory map"
diff --git a/arch/arm/src/stm32h5/hardware/stm32_pinmap.h 
b/arch/arm/src/stm32h5/hardware/stm32_pinmap.h
index 852c7c540c5..085b0a63982 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_pinmap.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_pinmap.h
@@ -30,7 +30,9 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if defined(CONFIG_STM32_STM32H53XXX) || defined(CONFIG_STM32_STM32H56XXX)
+#if defined(CONFIG_STM32_STM32H50XXX)
+#  include "hardware/stm32h50xxx_pinmap.h"
+#elif defined(CONFIG_STM32_STM32H53XXX) || defined(CONFIG_STM32_STM32H56XXX)
 #  include "hardware/stm32h56xxx_pinmap.h"
 #else
 #  error "Unsupported STM32 H5 pin map"
diff --git a/arch/arm/src/stm32h5/hardware/stm32_pwr.h 
b/arch/arm/src/stm32h5/hardware/stm32_pwr.h
index 24cddd0b400..1c694aac043 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_pwr.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_pwr.h
@@ -30,8 +30,11 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX) || \
-    defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
+#if defined(CONFIG_STM32_STM32H50XXX) || \
+    defined(CONFIG_STM32_STM32H52XXX) || \
+    defined(CONFIG_STM32_STM32H53XXX) || \
+    defined(CONFIG_STM32_STM32H56XXX) || \
+    defined(CONFIG_STM32_STM32H57XXX)
 #  include "hardware/stm32h5xxx_pwr.h"
 #else
 #  error "Unsupported STM32 H5 PWR"
diff --git a/arch/arm/src/stm32h5/hardware/stm32_rcc.h 
b/arch/arm/src/stm32h5/hardware/stm32_rcc.h
index ecfa04f7d52..45b93e6d384 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_rcc.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_rcc.h
@@ -30,8 +30,11 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX) || \
-    defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
+#if defined(CONFIG_STM32_STM32H50XXX) || \
+    defined(CONFIG_STM32_STM32H52XXX) || \
+    defined(CONFIG_STM32_STM32H53XXX) || \
+    defined(CONFIG_STM32_STM32H56XXX) || \
+    defined(CONFIG_STM32_STM32H57XXX)
 #  include "hardware/stm32h5xxx_rcc.h"
 #else
 #  error "Unsupported STM32 H5 rcc"
diff --git a/arch/arm/src/stm32h5/hardware/stm32_sbs.h 
b/arch/arm/src/stm32h5/hardware/stm32_sbs.h
index 06c8a9fb6cf..32b7b2942b3 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_sbs.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_sbs.h
@@ -30,7 +30,8 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if !defined(CONFIG_STM32_STM32H52XXX) && \
+#if !defined(CONFIG_STM32_STM32H50XXX) && \
+    !defined(CONFIG_STM32_STM32H52XXX) && \
     !defined(CONFIG_STM32_STM32H53XXX) && \
     !defined(CONFIG_STM32_STM32H56XXX) && \
     !defined(CONFIG_STM32_STM32H57XXX)
diff --git a/arch/arm/src/stm32h5/hardware/stm32_uart.h 
b/arch/arm/src/stm32h5/hardware/stm32_uart.h
index 1b974188d5d..80e42a844a9 100644
--- a/arch/arm/src/stm32h5/hardware/stm32_uart.h
+++ b/arch/arm/src/stm32h5/hardware/stm32_uart.h
@@ -30,8 +30,11 @@
 #include <nuttx/config.h>
 #include "chip.h"
 
-#if defined(CONFIG_STM32_STM32H52XXX) || defined(CONFIG_STM32_STM32H53XXX) || \
-    defined(CONFIG_STM32_STM32H56XXX) || defined(CONFIG_STM32_STM32H57XXX)
+#if defined(CONFIG_STM32_STM32H50XXX) || \
+    defined(CONFIG_STM32_STM32H52XXX) || \
+    defined(CONFIG_STM32_STM32H53XXX) || \
+    defined(CONFIG_STM32_STM32H56XXX) || \
+    defined(CONFIG_STM32_STM32H57XXX)
 #  include "hardware/stm32h5xxx_uart.h"
 #else
 #  error "Unsupported STM32 H5 uart"
diff --git a/arch/arm/src/stm32h5/hardware/stm32h50xxx_pinmap.h 
b/arch/arm/src/stm32h5/hardware/stm32h50xxx_pinmap.h
new file mode 100644
index 00000000000..bc8d3ecbca2
--- /dev/null
+++ b/arch/arm/src/stm32h5/hardware/stm32h50xxx_pinmap.h
@@ -0,0 +1,370 @@
+/****************************************************************************
+ * arch/arm/src/stm32h5/hardware/stm32h50xxx_pinmap.h
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __ARCH_ARM_SRC_STM32H5_HARDWARE_STM32H50XXX_PINMAP_H
+#define __ARCH_ARM_SRC_STM32H5_HARDWARE_STM32H50XXX_PINMAP_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#if defined(CONFIG_STM32_STM32H50XXX)
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* Alternate Pin Functions for the STM32H503 family.  See DS14127, Table 12
+ * "Alternate Function AF0 to AF7" and Table 13 "Alternate Function AF8 to
+ * AF15".
+ *
+ * Alternative pin selections are provided with a numeric suffix like _1, _2,
+ * etc.  Drivers, however, will use the pin selection without the numeric
+ * suffix.  Additional definitions are required in the board.h file.  For
+ * example, if FDCAN1_RX connects via PA11 on some board, then the following
+ * definitions should appear in the board.h header file for that board:
+ *
+ * #define GPIO_FDCAN1_RX GPIO_FDCAN1_RX_2
+ *
+ * The driver will then automatically configure PA11 as the FDCAN1 RX pin.
+ */
+
+/* FDCAN */
+
+#define GPIO_FDCAN1_RX_1         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN8)
+#define GPIO_FDCAN1_RX_2         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN11)
+#define GPIO_FDCAN1_RX_3         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN3)
+#define GPIO_FDCAN1_RX_4         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)
+#define GPIO_FDCAN1_RX_5         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN8)
+#define GPIO_FDCAN1_RX_6         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN12)
+#define GPIO_FDCAN1_RX_7         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN6)
+#define GPIO_FDCAN1_RX_8         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN8)
+#define GPIO_FDCAN1_RX_9         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN10)
+#define GPIO_FDCAN1_TX_1         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN12)
+#define GPIO_FDCAN1_TX_2         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN4)
+#define GPIO_FDCAN1_TX_3         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN6)
+#define GPIO_FDCAN1_TX_4         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN7)
+#define GPIO_FDCAN1_TX_5         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN10)
+#define GPIO_FDCAN1_TX_6         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN13)
+#define GPIO_FDCAN1_TX_7         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN15)
+#define GPIO_FDCAN1_TX_8         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN7)
+#define GPIO_FDCAN1_TX_9         
(GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN9)
+
+/* I2C */
+
+#define GPIO_I2C1_SCL_1        
(GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN6)
+#define GPIO_I2C1_SCL_2        
(GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN8)
+#define GPIO_I2C1_SCL_3        
(GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTC|GPIO_PIN8)
+#define GPIO_I2C1_SDA_1        
(GPIO_ALT|GPIO_AF11|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN5)
+#define GPIO_I2C1_SDA_2        
(GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN7)
+#define GPIO_I2C1_SDA_3        
(GPIO_ALT|GPIO_AF11|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN10)
+#define GPIO_I2C1_SDA_4        
(GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTC|GPIO_PIN9)
+
+#define GPIO_I2C2_SCL_1        
(GPIO_ALT|GPIO_AF8|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN3)
+#define GPIO_I2C2_SCL_2        
(GPIO_ALT|GPIO_AF8|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN5)
+#define GPIO_I2C2_SCL_3        
(GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN10)
+#define GPIO_I2C2_SCL_4        
(GPIO_ALT|GPIO_AF8|GPIO_OPENDRAIN|GPIO_PORTC|GPIO_PIN6)
+#define GPIO_I2C2_SDA_1        
(GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN3)
+#define GPIO_I2C2_SDA_2        
(GPIO_ALT|GPIO_AF8|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN4)
+#define GPIO_I2C2_SDA_3        
(GPIO_ALT|GPIO_AF8|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN8)
+#define GPIO_I2C2_SDA_4        
(GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN13)
+#define GPIO_I2C2_SDA_5        
(GPIO_ALT|GPIO_AF8|GPIO_OPENDRAIN|GPIO_PORTC|GPIO_PIN7)
+#define GPIO_I2C2_SDA_6        
(GPIO_ALT|GPIO_AF8|GPIO_OPENDRAIN|GPIO_PORTC|GPIO_PIN11)
+
+/* SPI */
+
+#define GPIO_SPI1_SCK_1           (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN2)
+#define GPIO_SPI1_SCK_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN5)
+#define GPIO_SPI1_SCK_3           (GPIO_ALT|GPIO_AF12|GPIO_PORTA|GPIO_PIN8)
+#define GPIO_SPI1_SCK_4           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN3)
+#define GPIO_SPI1_SCK_5           (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN0)
+#define GPIO_SPI1_SCK_6           (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN5)
+#define GPIO_SPI1_MISO_1          (GPIO_ALT|GPIO_AF12|GPIO_PORTA|GPIO_PIN0)
+#define GPIO_SPI1_MISO_2          (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN3)
+#define GPIO_SPI1_MISO_3          (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN6)
+#define GPIO_SPI1_MISO_4          (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN9)
+#define GPIO_SPI1_MISO_5          (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN4)
+#define GPIO_SPI1_MISO_6          (GPIO_ALT|GPIO_AF4|GPIO_PORTC|GPIO_PIN2)
+#define GPIO_SPI1_MISO_7          (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN10)
+#define GPIO_SPI1_MOSI_1          (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN4)
+#define GPIO_SPI1_MOSI_2          (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN7)
+#define GPIO_SPI1_MOSI_3          (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN5)
+#define GPIO_SPI1_MOSI_4          (GPIO_ALT|GPIO_AF4|GPIO_PORTC|GPIO_PIN3)
+#define GPIO_SPI1_MOSI_5          (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN7)
+#define GPIO_SPI1_NSS_1           (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN1)
+#define GPIO_SPI1_NSS_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN4)
+#define GPIO_SPI1_NSS_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN15)
+#define GPIO_SPI1_NSS_4           (GPIO_ALT|GPIO_AF12|GPIO_PORTB|GPIO_PIN8)
+#define GPIO_SPI1_NSS_5           (GPIO_ALT|GPIO_AF4|GPIO_PORTC|GPIO_PIN1)
+#define GPIO_SPI1_NSS_6           (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN8)
+
+#define GPIO_SPI2_SCK_1           (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN5)
+#define GPIO_SPI2_SCK_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN9)
+#define GPIO_SPI2_SCK_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN12)
+#define GPIO_SPI2_SCK_4           (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN2)
+#define GPIO_SPI2_SCK_5           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN10)
+#define GPIO_SPI2_SCK_6           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN13)
+#define GPIO_SPI2_MISO_1          (GPIO_ALT|GPIO_AF11|GPIO_PORTA|GPIO_PIN7)
+#define GPIO_SPI2_MISO_2          (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN15)
+#define GPIO_SPI2_MISO_3          (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN5)
+#define GPIO_SPI2_MISO_4          (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN14)
+#define GPIO_SPI2_MISO_5          (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN2)
+#define GPIO_SPI2_MOSI_1          (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN8)
+#define GPIO_SPI2_MOSI_2          (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN1)
+#define GPIO_SPI2_MOSI_3          (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN15)
+#define GPIO_SPI2_MOSI_4          (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN1)
+#define GPIO_SPI2_MOSI_5          (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN3)
+#define GPIO_SPI2_NSS_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN3)
+#define GPIO_SPI2_NSS_2           (GPIO_ALT|GPIO_AF11|GPIO_PORTA|GPIO_PIN8)
+#define GPIO_SPI2_NSS_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN11)
+#define GPIO_SPI2_NSS_4           (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN4)
+#define GPIO_SPI2_NSS_5           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN12)
+
+#define GPIO_SPI3_SCK_1           (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN1)
+#define GPIO_SPI3_SCK_2           (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN15)
+#define GPIO_SPI3_SCK_3           (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN3)
+#define GPIO_SPI3_SCK_4           (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN7)
+#define GPIO_SPI3_SCK_5           (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN10)
+#define GPIO_SPI3_MISO_1          (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN2)
+#define GPIO_SPI3_MISO_2          (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN4)
+#define GPIO_SPI3_MISO_3          (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN4)
+#define GPIO_SPI3_MISO_4          (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN15)
+#define GPIO_SPI3_MISO_5          (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN11)
+#define GPIO_SPI3_MOSI_1          (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN3)
+#define GPIO_SPI3_MOSI_2          (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN5)
+#define GPIO_SPI3_MOSI_3          (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN9)
+#define GPIO_SPI3_MOSI_4          (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN2)
+#define GPIO_SPI3_MOSI_5          (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN5)
+#define GPIO_SPI3_MOSI_6          (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN12)
+#define GPIO_SPI3_NSS_1           (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN0)
+#define GPIO_SPI3_NSS_2           (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN4)
+#define GPIO_SPI3_NSS_3           (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN15)
+#define GPIO_SPI3_NSS_4           (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN10)
+#define GPIO_SPI3_NSS_5           (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN2)
+
+/* Timers */
+
+#define GPIO_TIM1_CH1OUT_1        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN8)    /* PA8  */
+#define GPIO_TIM1_CH1OUT_2        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN13)   /* PA13 */
+#define GPIO_TIM1_CH1OUT_3        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN7)   /* PB7  */
+#define GPIO_TIM1_CH1OUT_4        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN6)    /* PC6  */
+
+#define GPIO_TIM1_CH1NOUT_1       (GPIO_ALT|GPIO_AF14|GPIO_PORTA|GPIO_PIN3)    
             /* PA3  */
+#define GPIO_TIM1_CH1NOUT_2       (GPIO_ALT|GPIO_AF1|GPIO_PORTA|GPIO_PIN7)     
             /* PA7  */
+#define GPIO_TIM1_CH1NOUT_3       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN13)    
             /* PB13 */
+
+#define GPIO_TIM1_CH2OUT_1        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN9)    /* PA9  */
+#define GPIO_TIM1_CH2OUT_2        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN14)   /* PA14 */
+#define GPIO_TIM1_CH2OUT_3        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN4)   /* PB4  */
+#define GPIO_TIM1_CH2OUT_4        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN6)   /* PB6  */
+
+#define GPIO_TIM1_CH2NOUT_1       (GPIO_ALT|GPIO_AF1|GPIO_PORTA|GPIO_PIN4)     
             /* PA4  */
+#define GPIO_TIM1_CH2NOUT_2       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN0)     
             /* PB0  */
+#define GPIO_TIM1_CH2NOUT_3       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN2)     
             /* PB2  */
+#define GPIO_TIM1_CH2NOUT_4       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN7)     
             /* PB7  */
+#define GPIO_TIM1_CH2NOUT_5       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN14)    
             /* PB14 */
+
+#define GPIO_TIM1_CH3OUT_1        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN1)   /* PA1  */
+#define GPIO_TIM1_CH3OUT_2        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN10)   /* PA10 */
+#define GPIO_TIM1_CH3OUT_3        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)    /* PB5  */
+#define GPIO_TIM1_CH3OUT_4        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN8)    /* PC8  */
+
+#define GPIO_TIM1_CH3NOUT_1       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN1)     
             /* PB1  */
+#define GPIO_TIM1_CH3NOUT_2       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN6)     
             /* PB6  */
+#define GPIO_TIM1_CH3NOUT_3       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN15)    
             /* PB15 */
+
+#define GPIO_TIM1_CH4OUT_1        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2)   /* PA2  */
+#define GPIO_TIM1_CH4OUT_2        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN11)   /* PA11 */
+#define GPIO_TIM1_CH4OUT_3        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN9)    /* PC9  */
+#define GPIO_TIM1_CH4OUT_4        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN12)  /* PC12 */
+
+#define GPIO_TIM1_CH4NOUT_1       (GPIO_ALT|GPIO_AF14|GPIO_PORTA|GPIO_PIN8)    
             /* PA8  */
+#define GPIO_TIM1_CH4NOUT_2       (GPIO_ALT|GPIO_AF14|GPIO_PORTA|GPIO_PIN14)   
             /* PA14 */
+#define GPIO_TIM1_CH4NOUT_3       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN4)     
             /* PB4  */
+#define GPIO_TIM1_CH4NOUT_4       (GPIO_ALT|GPIO_AF1|GPIO_PORTC|GPIO_PIN5)     
             /* PC5  */
+
+#define GPIO_TIM2_CH1OUT_1        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN0)    /* PA0  */
+#define GPIO_TIM2_CH1OUT_2        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN5)    /* PA5  */
+#define GPIO_TIM2_CH1OUT_3        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN15)   /* PA15 */
+#define GPIO_TIM2_CH1OUT_4        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN2)   /* PB2  */
+
+#define GPIO_TIM2_CH2OUT_1        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN1)    /* PA1  */
+#define GPIO_TIM2_CH2OUT_2        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN3)    /* PB3  */
+#define GPIO_TIM2_CH2OUT_3        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN11)   /* PC11 */
+
+#define GPIO_TIM2_CH3OUT_1        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2)    /* PA2  */
+#define GPIO_TIM2_CH3OUT_2        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN7)   /* PA7  */
+#define GPIO_TIM2_CH3OUT_3        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN10)   /* PB10 */
+#define GPIO_TIM2_CH3OUT_4        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN2)    /* PD2  */
+
+#define GPIO_TIM2_CH4OUT_1        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN3)    /* PA3  */
+#define GPIO_TIM2_CH4OUT_2        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN12)  /* PA12 */
+#define GPIO_TIM2_CH4OUT_3        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN4)    /* PC4  */
+#define GPIO_TIM2_CH4OUT_4        
(GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN12)   /* PC12 */
+
+#define GPIO_TIM3_CH1OUT_1        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN0)    /* PA0  */
+#define GPIO_TIM3_CH1OUT_2        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN6)    /* PA6  */
+#define GPIO_TIM3_CH1OUT_3        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN14)   /* PA14 */
+#define GPIO_TIM3_CH1OUT_4        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN4)    /* PB4  */
+#define GPIO_TIM3_CH1OUT_5        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN6)    /* PC6  */
+
+#define GPIO_TIM3_CH2OUT_1        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN7)    /* PA7  */
+#define GPIO_TIM3_CH2OUT_2        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN11)   /* PA11 */
+#define GPIO_TIM3_CH2OUT_3        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)    /* PB5  */
+#define GPIO_TIM3_CH2OUT_4        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN7)    /* PC7  */
+
+#define GPIO_TIM3_CH3OUT_1        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN8)    /* PA8  */
+#define GPIO_TIM3_CH3OUT_2        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN0)    /* PB0  */
+#define GPIO_TIM3_CH3OUT_3        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN6)    /* PB6  */
+#define GPIO_TIM3_CH3OUT_4        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN8)    /* PC8  */
+
+#define GPIO_TIM3_CH4OUT_1        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN12)   /* PA12 */
+#define GPIO_TIM3_CH4OUT_2        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN1)    /* PB1  */
+#define GPIO_TIM3_CH4OUT_3        
(GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN15)  /* PB15 */
+#define GPIO_TIM3_CH4OUT_4        
(GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN9)    /* PC9  */
+
+/* USART/UART/LPUART */
+
+#define GPIO_USART1_TX_1       (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN2)
+#define GPIO_USART1_TX_2       (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN9)
+#define GPIO_USART1_TX_3       (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN12)
+#define GPIO_USART1_TX_4       (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN14)
+#define GPIO_USART1_TX_5       (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN6)
+#define GPIO_USART1_TX_6       (GPIO_ALT|GPIO_AF4|GPIO_PORTB|GPIO_PIN14)
+#define GPIO_USART1_RX_1       (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN1)
+#define GPIO_USART1_RX_2       (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN10)
+#define GPIO_USART1_RX_3       (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN11)
+#define GPIO_USART1_RX_4       (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN13)
+#define GPIO_USART1_RX_5       (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN7)
+#define GPIO_USART1_RX_6       (GPIO_ALT|GPIO_AF4|GPIO_PORTB|GPIO_PIN15)
+#define GPIO_USART1_CTS_1      (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN0)
+#define GPIO_USART1_CTS_2      (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN11)
+#define GPIO_USART1_CTS_3      (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN15)
+#define GPIO_USART1_CTS_4      (GPIO_ALT|GPIO_AF7|GPIO_PORTC|GPIO_PIN1)
+#define GPIO_USART1_RTS_DE_1   (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN4)
+#define GPIO_USART1_RTS_DE_2   (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN7)
+#define GPIO_USART1_RTS_DE_3   (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN12)
+#define GPIO_USART1_RTS_DE_4   (GPIO_ALT|GPIO_AF7|GPIO_PORTC|GPIO_PIN2)
+
+#define GPIO_USART2_TX_1       (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN2)
+#define GPIO_USART2_TX_2       (GPIO_ALT|GPIO_AF9|GPIO_PORTA|GPIO_PIN5)
+#define GPIO_USART2_TX_3       (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN8)
+#define GPIO_USART2_TX_4       (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN12)
+#define GPIO_USART2_TX_5       (GPIO_ALT|GPIO_AF9|GPIO_PORTA|GPIO_PIN14)
+#define GPIO_USART2_TX_6       (GPIO_ALT|GPIO_AF9|GPIO_PORTB|GPIO_PIN0)
+#define GPIO_USART2_TX_7       (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN4)
+#define GPIO_USART2_TX_8       (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN6)
+#define GPIO_USART2_RX_1       (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN3)
+#define GPIO_USART2_RX_2       (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN11)
+#define GPIO_USART2_RX_3       (GPIO_ALT|GPIO_AF9|GPIO_PORTA|GPIO_PIN13)
+#define GPIO_USART2_RX_4       (GPIO_ALT|GPIO_AF9|GPIO_PORTA|GPIO_PIN15)
+#define GPIO_USART2_RX_5       (GPIO_ALT|GPIO_AF9|GPIO_PORTB|GPIO_PIN1)
+#define GPIO_USART2_RX_6       (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN5)
+#define GPIO_USART2_RX_7       (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN15)
+#define GPIO_USART2_RX_8       (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN7)
+#define GPIO_USART2_CTS_1      (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN0)
+#define GPIO_USART2_CTS_2      (GPIO_ALT|GPIO_AF11|GPIO_PORTA|GPIO_PIN5)
+#define GPIO_USART2_CTS_3      (GPIO_ALT|GPIO_AF11|GPIO_PORTB|GPIO_PIN6)
+#define GPIO_USART2_CTS_4      (GPIO_ALT|GPIO_AF7|GPIO_PORTC|GPIO_PIN3)
+#define GPIO_USART2_CTS_5      (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN9)
+#define GPIO_USART2_RTS_DE_1   (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN1)
+#define GPIO_USART2_RTS_DE_2   (GPIO_ALT|GPIO_AF11|GPIO_PORTA|GPIO_PIN15)
+#define GPIO_USART2_RTS_DE_3   (GPIO_ALT|GPIO_AF11|GPIO_PORTB|GPIO_PIN15)
+#define GPIO_USART2_RTS_DE_4   (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN10)
+#define GPIO_USART2_RTS_DE_5   (GPIO_ALT|GPIO_AF9|GPIO_PORTD|GPIO_PIN2)
+
+#define GPIO_USART3_TX_1       (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN4)
+#define GPIO_USART3_TX_2       (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN8)
+#define GPIO_USART3_TX_3       (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN3)
+#define GPIO_USART3_TX_4       (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN7)
+#define GPIO_USART3_TX_5       (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN10)
+#define GPIO_USART3_TX_6       (GPIO_ALT|GPIO_AF7|GPIO_PORTC|GPIO_PIN10)
+#define GPIO_USART3_RX_1       (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN3)
+#define GPIO_USART3_RX_2       (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN5)
+#define GPIO_USART3_RX_3       (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN12)
+#define GPIO_USART3_RX_4       (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN15)
+#define GPIO_USART3_RX_5       (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN8)
+#define GPIO_USART3_RX_6       (GPIO_ALT|GPIO_AF7|GPIO_PORTC|GPIO_PIN4)
+#define GPIO_USART3_RX_7       (GPIO_ALT|GPIO_AF7|GPIO_PORTC|GPIO_PIN11)
+#define GPIO_USART3_CTS_1      (GPIO_ALT|GPIO_AF9|GPIO_PORTA|GPIO_PIN0)
+#define GPIO_USART3_CTS_2      (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN13)
+#define GPIO_USART3_CTS_3      (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN15)
+#define GPIO_USART3_CTS_4      (GPIO_ALT|GPIO_AF7|GPIO_PORTD|GPIO_PIN2)
+#define GPIO_USART3_RTS_DE_1   (GPIO_ALT|GPIO_AF9|GPIO_PORTA|GPIO_PIN7)
+#define GPIO_USART3_RTS_DE_2   (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN11)
+#define GPIO_USART3_RTS_DE_3   (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN14)
+#define GPIO_USART3_RTS_DE_4   (GPIO_ALT|GPIO_AF7|GPIO_PORTC|GPIO_PIN9)
+
+#define GPIO_LPUART1_TX_1      (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN3)
+#define GPIO_LPUART1_TX_2      (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN9)
+#define GPIO_LPUART1_TX_3      (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN6)
+#define GPIO_LPUART1_TX_4      (GPIO_ALT|GPIO_AF3|GPIO_PORTC|GPIO_PIN3)
+#define GPIO_LPUART1_RX_1      (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN2)
+#define GPIO_LPUART1_RX_2      (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN10)
+#define GPIO_LPUART1_RX_3      (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN7)
+#define GPIO_LPUART1_RX_4      (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN15)
+#define GPIO_LPUART1_CTS_1     (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN8)
+#define GPIO_LPUART1_CTS_2     (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN11)
+#define GPIO_LPUART1_CTS_3     (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN13)
+#define GPIO_LPUART1_CTS_4     (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN13)
+#define GPIO_LPUART1_CTS_5     (GPIO_ALT|GPIO_AF8|GPIO_PORTC|GPIO_PIN1)
+#define GPIO_LPUART1_RTS_DE_1  (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN5)
+#define GPIO_LPUART1_RTS_DE_2  (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN12)
+#define GPIO_LPUART1_RTS_DE_3  (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN14)
+#define GPIO_LPUART1_RTS_DE_4  (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN14)
+#define GPIO_LPUART1_RTS_DE_5  (GPIO_ALT|GPIO_AF8|GPIO_PORTC|GPIO_PIN2)
+
+/* ADC1 */
+
+#define GPIO_ADC1_INP0_0  (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN0)
+#define GPIO_ADC1_INN1_0  (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN0)
+#define GPIO_ADC1_INP1_0  (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN1)
+#define GPIO_ADC1_INP3_0  (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN6)
+#define GPIO_ADC1_INN3_0  (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN7)
+#define GPIO_ADC1_INP4_0  (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN4)
+#define GPIO_ADC1_INN4_0  (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN5)
+#define GPIO_ADC1_INP5_0  (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN1)
+#define GPIO_ADC1_INN5_0  (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN0)
+#define GPIO_ADC1_INP7_0  (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN7)
+#define GPIO_ADC1_INP8_0  (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN5)
+#define GPIO_ADC1_INP9_0  (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN0)
+#define GPIO_ADC1_INP10_0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN0)
+#define GPIO_ADC1_INN10_0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN1)
+#define GPIO_ADC1_INP11_0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN1)
+#define GPIO_ADC1_INN11_0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN2)
+#define GPIO_ADC1_INP12_0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN2)
+#define GPIO_ADC1_INN12_0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN3)
+#define GPIO_ADC1_INP13_0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN3)
+#define GPIO_ADC1_INP14_0 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN2)
+#define GPIO_ADC1_INP15_0 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN3)
+#define GPIO_ADC1_INP18_0 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN4)
+#define GPIO_ADC1_INN18_0 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN5)
+#define GPIO_ADC1_INP19_0 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN5)
+
+/* USB */
+
+#define GPIO_USB_DM           
(GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN11)
+#define GPIO_USB_DP           
(GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN12)
+#define GPIO_USB_SOF          
(GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN8)
+#endif /* CONFIG_STM32_STM32H50XXX */
+#endif /* __ARCH_ARM_SRC_STM32H5_HARDWARE_STM32H50XXX_PINMAP_H */
diff --git a/arch/arm/src/stm32h5/stm32h5xx_rcc.c 
b/arch/arm/src/stm32h5/stm32h5xx_rcc.c
index 07a60f5a68c..3368164243e 100644
--- a/arch/arm/src/stm32h5/stm32h5xx_rcc.c
+++ b/arch/arm/src/stm32h5/stm32h5xx_rcc.c
@@ -214,13 +214,13 @@ static inline void rcc_enableahb2(void)
 #if STM32_NPORTS > 3
              | RCC_AHB2ENR_GPIODEN
 #endif
-#if STM32_NPORTS > 4
+#if STM32_NPORTS > 4 && !defined(CONFIG_STM32_STM32H50XXX)
              | RCC_AHB2ENR_GPIOEEN
 #endif
-#if STM32_NPORTS > 5
+#if STM32_NPORTS > 5 && !defined(CONFIG_STM32_STM32H50XXX)
              | RCC_AHB2ENR_GPIOFEN
 #endif
-#if STM32_NPORTS > 6
+#if STM32_NPORTS > 6 && !defined(CONFIG_STM32_STM32H50XXX)
              | RCC_AHB2ENR_GPIOGEN
 #endif
 #if STM32_NPORTS > 7

Reply via email to