This is an automated email from the ASF dual-hosted git repository. utzig pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 0855ffc7ff725239dcd4e300ceb801e0f6a8fbdf Author: Fabio Utzig <[email protected]> AuthorDate: Wed Sep 25 14:41:35 2019 -0300 [STM32WB] Update drivers for WBxx MCU --- hw/mcu/stm/stm32_common/src/hal_gpio.c | 4 ++-- hw/mcu/stm/stm32_common/src/hal_timer.c | 6 +++--- hw/mcu/stm/stm32_common/src/hal_uart.c | 9 ++++++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/hw/mcu/stm/stm32_common/src/hal_gpio.c b/hw/mcu/stm/stm32_common/src/hal_gpio.c index d7c408a..bb2f40a 100644 --- a/hw/mcu/stm/stm32_common/src/hal_gpio.c +++ b/hw/mcu/stm/stm32_common/src/hal_gpio.c @@ -837,7 +837,7 @@ hal_gpio_irq_enable(int pin) mask = GPIO_MASK(pin); __HAL_DISABLE_INTERRUPTS(ctx); -#if MYNEWT_VAL(MCU_STM32L4) +#if MYNEWT_VAL(MCU_STM32L4) || MYNEWT_VAL(MCU_STM32WB) EXTI->IMR1 |= mask; #else EXTI->IMR |= mask; @@ -859,7 +859,7 @@ hal_gpio_irq_disable(int pin) mask = GPIO_MASK(pin); __HAL_DISABLE_INTERRUPTS(ctx); -#if MYNEWT_VAL(MCU_STM32L4) +#if MYNEWT_VAL(MCU_STM32L4) || MYNEWT_VAL(MCU_STM32WB) EXTI->IMR1 |= mask; #else EXTI->IMR &= ~mask; diff --git a/hw/mcu/stm/stm32_common/src/hal_timer.c b/hw/mcu/stm/stm32_common/src/hal_timer.c index 64538e9..f7ed9cd 100644 --- a/hw/mcu/stm/stm32_common/src/hal_timer.c +++ b/hw/mcu/stm/stm32_common/src/hal_timer.c @@ -195,7 +195,7 @@ stm32_hw_setup(int num, TIM_TypeDef *regs) if (regs == TIM1) { #if MYNEWT_VAL(MCU_STM32F0) stm32_tmr_reg_irq(TIM1_CC_IRQn, func); -#elif MYNEWT_VAL(MCU_STM32F3) || MYNEWT_VAL(MCU_STM32L4) +#elif MYNEWT_VAL(MCU_STM32F3) || MYNEWT_VAL(MCU_STM32L4) || MYNEWT_VAL(MCU_STM32WB) stm32_tmr_reg_irq(TIM1_UP_TIM16_IRQn, func); #else stm32_tmr_reg_irq(TIM1_UP_TIM10_IRQn, func); @@ -224,7 +224,7 @@ stm32_hw_setup(int num, TIM_TypeDef *regs) #ifdef TIM8 if (regs == TIM8) { stm32_tmr_reg_irq(TIM8_CC_IRQn, func); -#if MYNEWT_VAL(MCU_STM32F3) || MYNEWT_VAL(MCU_STM32L4) +#if MYNEWT_VAL(MCU_STM32F3) || MYNEWT_VAL(MCU_STM32L4) || MYNEWT_VAL(MCU_STM32WB) stm32_tmr_reg_irq(TIM8_UP_IRQn, func); #else stm32_tmr_reg_irq(TIM8_UP_TIM13_IRQn, func); @@ -244,7 +244,7 @@ stm32_hw_setup(int num, TIM_TypeDef *regs) #endif #ifdef TIM10 if (regs == TIM10) { -#if MYNEWT_VAL(MCU_STM32L1) || MYNEWT_VAL(MCU_STM32L4) +#if MYNEWT_VAL(MCU_STM32L1) || MYNEWT_VAL(MCU_STM32L4) || MYNEWT_VAL(MCU_STM32WB) stm32_tmr_reg_irq(TIM10_IRQn, func); #else stm32_tmr_reg_irq(TIM1_UP_TIM10_IRQn, func); diff --git a/hw/mcu/stm/stm32_common/src/hal_uart.c b/hw/mcu/stm/stm32_common/src/hal_uart.c index 2053724..c46f2c7 100644 --- a/hw/mcu/stm/stm32_common/src/hal_uart.c +++ b/hw/mcu/stm/stm32_common/src/hal_uart.c @@ -65,7 +65,11 @@ static struct hal_uart_irq uart_irqs[3]; # define TC USART_ISR_TC # define RXDR(x) ((x)->RDR) # define TXDR(x) ((x)->TDR) +#if MYNEWT_VAL(MCU_STM32WB) +# define BAUD(x,y) UART_DIV_SAMPLING16((x), (y), UART_PRESCALER_DIV1) +#else # define BAUD(x,y) UART_DIV_SAMPLING16((x), (y)) +#endif #else # define STATUS(x) ((x)->SR) # define RXNE USART_SR_RXNE @@ -209,12 +213,13 @@ uart_irq1(void) uart_irq_handler(0); } +#ifdef USART2_BASE static void uart_irq2(void) { uart_irq_handler(1); - } +#endif #ifdef USART3_BASE static void @@ -275,10 +280,12 @@ hal_uart_set_nvic(IRQn_Type irqn, struct hal_uart *uart) isr = (uint32_t)&uart_irq1; ui = &uart_irqs[0]; break; +#ifdef USART2_BASE case USART2_IRQn: isr = (uint32_t)&uart_irq2; ui = &uart_irqs[1]; break; +#endif #ifdef USART3_BASE #if !MYNEWT_VAL(MCU_STM32F0) case USART3_IRQn:
