Skip to content

Commit b3792d3

Browse files
committed
chore(clock): add HAL v2 support
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent ee3ea1b commit b3792d3

2 files changed

Lines changed: 79 additions & 0 deletions

File tree

‎libraries/SrcWrapper/src/stm32/PortNames.c‎

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,34 +71,58 @@ GPIO_TypeDef *set_GPIO_Port_Clock(uint32_t port_idx)
7171
switch (port_idx) {
7272
case PortA:
7373
gpioPort = (GPIO_TypeDef *)GPIOA_BASE;
74+
#if defined(__HAL_RCC_GPIOA_CLK_ENABLE)
7475
__HAL_RCC_GPIOA_CLK_ENABLE();
76+
#else
77+
HAL_RCC_GPIOA_EnableClock();
78+
#endif
7579
break;
7680
case PortB:
7781
gpioPort = (GPIO_TypeDef *)GPIOB_BASE;
82+
#if defined(__HAL_RCC_GPIOB_CLK_ENABLE)
7883
__HAL_RCC_GPIOB_CLK_ENABLE();
84+
#else
85+
HAL_RCC_GPIOB_EnableClock();
86+
#endif
7987
break;
8088
#if defined GPIOC_BASE
8189
case PortC:
8290
gpioPort = (GPIO_TypeDef *)GPIOC_BASE;
91+
#if defined(__HAL_RCC_GPIOC_CLK_ENABLE)
8392
__HAL_RCC_GPIOC_CLK_ENABLE();
93+
#else
94+
HAL_RCC_GPIOC_EnableClock();
95+
#endif
8496
break;
8597
#endif
8698
#if defined GPIOD_BASE
8799
case PortD:
88100
gpioPort = (GPIO_TypeDef *)GPIOD_BASE;
101+
#if defined(__HAL_RCC_GPIOD_CLK_ENABLE)
89102
__HAL_RCC_GPIOD_CLK_ENABLE();
103+
#else
104+
HAL_RCC_GPIOD_EnableClock();
105+
#endif
90106
break;
91107
#endif
92108
#if defined GPIOE_BASE
93109
case PortE:
94110
gpioPort = (GPIO_TypeDef *)GPIOE_BASE;
111+
#if defined(__HAL_RCC_GPIOE_CLK_ENABLE)
95112
__HAL_RCC_GPIOE_CLK_ENABLE();
113+
#else
114+
HAL_RCC_GPIOE_EnableClock();
115+
#endif
96116
break;
97117
#endif
98118
#if defined GPIOF_BASE
99119
case PortF:
100120
gpioPort = (GPIO_TypeDef *)GPIOF_BASE;
121+
#if defined(__HAL_RCC_GPIOF_CLK_ENABLE)
101122
__HAL_RCC_GPIOF_CLK_ENABLE();
123+
#else
124+
HAL_RCC_GPIOF_EnableClock();
125+
#endif
102126
break;
103127
#endif
104128
#if defined GPIOG_BASE
@@ -108,37 +132,61 @@ GPIO_TypeDef *set_GPIO_Port_Clock(uint32_t port_idx)
108132
HAL_PWREx_EnableVddIO2();
109133
#endif
110134
gpioPort = (GPIO_TypeDef *)GPIOG_BASE;
135+
#if defined(__HAL_RCC_GPIOG_CLK_ENABLE)
111136
__HAL_RCC_GPIOG_CLK_ENABLE();
137+
#else
138+
HAL_RCC_GPIOG_EnableClock();
139+
#endif
112140
break;
113141
#endif
114142
#if defined GPIOH_BASE
115143
case PortH:
116144
gpioPort = (GPIO_TypeDef *)GPIOH_BASE;
145+
#if defined(__HAL_RCC_GPIOH_CLK_ENABLE)
117146
__HAL_RCC_GPIOH_CLK_ENABLE();
147+
#else
148+
HAL_RCC_GPIOH_EnableClock();
149+
#endif
118150
break;
119151
#endif
120152
#if defined GPIOI_BASE
121153
case PortI:
122154
gpioPort = (GPIO_TypeDef *)GPIOI_BASE;
155+
#if defined(__HAL_RCC_GPIOI_CLK_ENABLE)
123156
__HAL_RCC_GPIOI_CLK_ENABLE();
157+
#else
158+
HAL_RCC_GPIOI_EnableClock();
159+
#endif
124160
break;
125161
#endif
126162
#if defined GPIOJ_BASE
127163
case PortJ:
128164
gpioPort = (GPIO_TypeDef *)GPIOJ_BASE;
165+
#if defined(__HAL_RCC_GPIOJ_CLK_ENABLE)
129166
__HAL_RCC_GPIOJ_CLK_ENABLE();
167+
#else
168+
HAL_RCC_GPIOJ_EnableClock();
169+
#endif
130170
break;
131171
#endif
132172
#if defined GPIOK_BASE
133173
case PortK:
134174
gpioPort = (GPIO_TypeDef *)GPIOK_BASE;
175+
#if defined(__HAL_RCC_GPIOK_CLK_ENABLE)
135176
__HAL_RCC_GPIOK_CLK_ENABLE();
177+
#else
178+
HAL_RCC_GPIOK_EnableClock();
179+
#endif
136180
break;
137181
#endif
138182
#if defined GPIOZ_BASE
139183
case PortZ:
140184
gpioPort = (GPIO_TypeDef *)GPIOZ_BASE;
185+
#if defined(__HAL_RCC_GPIOZ_CLK_ENABLE)
141186
__HAL_RCC_GPIOZ_CLK_ENABLE();
187+
#else
188+
HAL_RCC_GPIOZ_EnableClock();
189+
#endif
142190
break;
143191
#endif
144192
default:

‎libraries/SrcWrapper/src/stm32/clock.c‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@ void osSystickHandler() __attribute__((weak, alias("noOsSystickHandler")));
6565
void SysTick_Handler(void)
6666
{
6767
HAL_IncTick();
68+
#if defined(USE_HALV2_DRIVER)
69+
HAL_CORTEX_SYSTICK_IRQHandler();
70+
#else
6871
HAL_SYSTICK_IRQHandler();
72+
#endif
6973
osSystickHandler();
7074
}
7175

@@ -76,6 +80,32 @@ void SysTick_Handler(void)
7680
*/
7781
void enableClock(sourceClock_t source)
7882
{
83+
#if defined(USE_HALV2_DRIVER)
84+
hal_status_t status;
85+
enableBackupDomain();
86+
switch (source) {
87+
case LSI_CLOCK:
88+
status = HAL_RCC_LSI_Enable();
89+
break;
90+
case HSI_CLOCK:
91+
/* Compute divider should be done ? */
92+
status = HAL_RCC_HSIK_Enable(HAL_RCC_HSIK_DIV1);
93+
break;
94+
case LSE_CLOCK:
95+
status = HAL_RCC_LSE_Enable(HAL_RCC_LSE_ON, HAL_RCC_LSE_DRIVE_LOW);
96+
break;
97+
case HSE_CLOCK:
98+
status = HAL_RCC_HSE_Enable(HAL_RCC_HSE_ON);
99+
break;
100+
default:
101+
/* No valid clock to enable */
102+
status = HAL_ERROR;
103+
break;
104+
}
105+
if (status != HAL_OK) {
106+
Error_Handler();
107+
}
108+
#else
79109
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
80110
#if defined(RCC_PLL_NONE)
81111
#if defined(STM32WBAxx)
@@ -177,6 +207,7 @@ void enableClock(sourceClock_t source)
177207
}
178208
hsem_unlock(CFG_HW_RCC_SEMID);
179209
}
210+
#endif /* USE_HALV2_DRIVER */
180211
}
181212

182213
void configHSECapacitorTuning(void)

0 commit comments

Comments
 (0)