diff --git a/demos/STM32/RT-STM32G474RE-NUCLEO64/cfg/mcuconf.h b/demos/STM32/RT-STM32G474RE-NUCLEO64/cfg/mcuconf.h index b9d9cded9..8dd7bf5b2 100644 --- a/demos/STM32/RT-STM32G474RE-NUCLEO64/cfg/mcuconf.h +++ b/demos/STM32/RT-STM32G474RE-NUCLEO64/cfg/mcuconf.h @@ -53,12 +53,13 @@ #define STM32_PLLSRC STM32_PLLSRC_HSI16 #define STM32_PLLM_VALUE 4 #define STM32_PLLN_VALUE 84 +#define STM32_PLLPDIV_VALUE 0 #define STM32_PLLP_VALUE 7 #define STM32_PLLQ_VALUE 8 #define STM32_PLLR_VALUE 2 #define STM32_HPRE STM32_HPRE_DIV1 #define STM32_PPRE1 STM32_PPRE1_DIV1 -#define STM32_PPRE2 STM32_PPRE2_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 #define STM32_MCOSEL STM32_MCOSEL_NOCLOCK #define STM32_MCOPRE STM32_MCOPRE_DIV1 #define STM32_LSCOSEL STM32_LSCOSEL_NOCLOCK diff --git a/os/hal/ports/STM32/STM32G0xx/stm32_dmamux.h b/os/hal/ports/STM32/STM32G0xx/stm32_dmamux.h index fdccb6d0b..38226919f 100644 --- a/os/hal/ports/STM32/STM32G0xx/stm32_dmamux.h +++ b/os/hal/ports/STM32/STM32G0xx/stm32_dmamux.h @@ -15,7 +15,7 @@ */ /** - * @file STM32G0xx/stm32_isr.h + * @file STM32G0xx/stm32_dmamux.h * @brief STM32G0xx DMAMUX handler header. * * @addtogroup STM32G0xx_DMAMUX diff --git a/os/hal/ports/STM32/STM32G4xx/hal_lld.h b/os/hal/ports/STM32/STM32G4xx/hal_lld.h index 017114e4d..e82e2ce6a 100644 --- a/os/hal/ports/STM32/STM32G4xx/hal_lld.h +++ b/os/hal/ports/STM32/STM32G4xx/hal_lld.h @@ -428,6 +428,14 @@ #define STM32_PLLN_VALUE 84 #endif +/** + * @brief PLLPDIV divider value or zero if disabled. + * @note The allowed values are 0, 2..31. + */ +#if !defined(STM32_PLLPDIV_VALUE) || defined(__DOXYGEN__) +#define STM32_PLLPDIV_VALUE 0 +#endif + /** * @brief PLLP divider value. * @note The allowed values are 7, 17. @@ -1150,6 +1158,17 @@ #error "invalid STM32_PLLR_VALUE value specified" #endif +/** + * @brief STM32_PLLPDIV field. (Only for STM32L496xx/4A6xx) + */ +#if (STM32_PLLPDIV_VALUE == 0) || \ + ((STM32_PLLPDIV_VALUE >= 2) && (STM32_PLLPDIV_VALUE <= 31)) || \ + defined(__DOXYGEN__) +#define STM32_PLLPDIV (STM32_PLLPDIV_VALUE << 27) +#else +#error "invalid STM32_PLLPDIV_VALUE value specified" +#endif + /** * @brief STM32_PLLPEN field. */ @@ -1202,7 +1221,11 @@ /** * @brief PLL P output clock frequency. */ -#define STM32_PLL_P_CLKOUT (STM32_PLLVCO / STM32_PLLP_VALUE) +#if (STM32_PLLPDIV_VALUE == 0) || defined(__DOXYGEN__) + #define STM32_PLL_P_CLKOUT (STM32_PLLVCO / STM32_PLLP_VALUE) +#else + #define STM32_PLL_P_CLKOUT (STM32_PLLVCO / STM32_PLLPDIV_VALUE) +#endif /** * @brief PLL Q output clock frequency. diff --git a/os/hal/ports/STM32/STM32H7xx/stm32_dmamux.h b/os/hal/ports/STM32/STM32H7xx/stm32_dmamux.h index 2f173cbc9..c4bace04e 100644 --- a/os/hal/ports/STM32/STM32H7xx/stm32_dmamux.h +++ b/os/hal/ports/STM32/STM32H7xx/stm32_dmamux.h @@ -15,7 +15,7 @@ */ /** - * @file STM32H7xx/stm32_isr.h + * @file STM32H7xx/stm32_dmamux.h * @brief STM32H7xx DMAMUX handler header. * * @addtogroup STM32H7xx_DMAMUX diff --git a/os/hal/ports/STM32/STM32L4xx+/stm32_dmamux.h b/os/hal/ports/STM32/STM32L4xx+/stm32_dmamux.h index 11a208b61..a7889be36 100644 --- a/os/hal/ports/STM32/STM32L4xx+/stm32_dmamux.h +++ b/os/hal/ports/STM32/STM32L4xx+/stm32_dmamux.h @@ -15,7 +15,7 @@ */ /** - * @file STM32L4xx+/stm32_isr.h + * @file STM32L4xx+/stm32_dmamux.h * @brief STM32L4xx+ DMAMUX handler header. * * @addtogroup STM32L4xxp_DMAMUX