fmu-v5: fix timer config

This commit is contained in:
Simone Guscetti
2017-07-17 21:02:50 -10:00
committed by David Sidrane
parent a00441ecf4
commit ada48571d7
3 changed files with 21 additions and 15 deletions
@@ -82,26 +82,25 @@ __EXPORT const io_timers_t io_timers[MAX_IO_TIMERS] = {
.handler = io_timer_handler2,
.vectorno = STM32_IRQ_TIM12,
},
{
.base = STM32_TIM2_BASE,
.clock_register = STM32_RCC_APB1ENR,
.clock_bit = RCC_APB1ENR_TIM2EN,
.clock_freq = STM32_APB1_TIM2_CLKIN,
.first_channel_index = 8,
.last_channel_index = 10,
.handler = io_timer_handler3,
.vectorno = STM32_IRQ_TIM2,
},
{
.base = STM32_TIM9_BASE,
.clock_register = STM32_RCC_APB2ENR,
.clock_bit = RCC_APB2ENR_TIM9EN,
.clock_freq = STM32_APB2_TIM9_CLKIN,
.first_channel_index = 8,
.last_channel_index = 8,
.handler = io_timer_handler3,
.vectorno = STM32_IRQ_TIM9,
},
{
.base = STM32_TIM2_BASE,
.clock_register = STM32_RCC_APB1ENR,
.clock_bit = RCC_APB2ENR_TIM2EN,
.clock_freq = STM32_APB2_TIM2_CLKIN,
.first_channel_index = 9,
.last_channel_index = 9,
.first_channel_index = 11,
.last_channel_index = 11,
.handler = io_timer_handler4,
.vectorno = STM32_IRQ_TIM2,
.vectorno = STM32_IRQ_TIM9,
}
};
+6
View File
@@ -232,6 +232,12 @@ int io_timer_handler3(int irq, void *context)
}
int io_timer_handler4(int irq, void *context)
{
return io_timer_handler(4);
}
static inline int validate_timer_index(unsigned timer)
{
return (timer < MAX_IO_TIMERS && io_timers[timer].base != 0) ? 0 : -EINVAL;
+2 -1
View File
@@ -45,7 +45,7 @@
#pragma once
__BEGIN_DECLS
/* configuration limits */
#define MAX_IO_TIMERS 4
#define MAX_IO_TIMERS 5
#define MAX_TIMER_IO_CHANNELS 8
#define MAX_LED_TIMERS 2
@@ -112,6 +112,7 @@ __EXPORT int io_timer_handler0(int irq, void *context);
__EXPORT int io_timer_handler1(int irq, void *context);
__EXPORT int io_timer_handler2(int irq, void *context);
__EXPORT int io_timer_handler3(int irq, void *context);
__EXPORT int io_timer_handler4(int irq, void *context);
__EXPORT int io_timer_channel_init(unsigned channel, io_timer_channel_mode_t mode,
channel_handler_t channel_handler, void *context);