fmu-v5:timer_config Move UI LED to 0 and condition status LEDS

If the BOARD_HAS_CONTROL_STATUS_LEDS is set the status LED will
   not be PWM controlled.

   UI LED will always be PWM controlled.
This commit is contained in:
David Sidrane 2018-11-30 10:31:16 -08:00 committed by Lorenz Meier
parent 7350808759
commit 3e57067b35
1 changed files with 70 additions and 43 deletions

View File

@ -172,25 +172,35 @@ __EXPORT const timer_io_channels_t timer_io_channels[MAX_TIMER_IO_CHANNELS] = {
} }
}; };
#if defined(BOARD_HAS_LED_PWM) || defined(BOARD_HAS_UI_LED_PWM)
__EXPORT const struct io_timers_t led_pwm_timers[MAX_LED_TIMERS] = { __EXPORT const struct io_timers_t led_pwm_timers[MAX_LED_TIMERS] = {
{ # if defined(BOARD_HAS_UI_LED_PWM)
.base = STM32_TIM3_BASE,
.clock_register = STM32_RCC_APB1ENR,
.clock_bit = RCC_APB1ENR_TIM3EN,
.clock_freq = STM32_APB1_TIM3_CLKIN,
.vectorno = 0,
.first_channel_index = 0,
.last_channel_index = 2,
},
{ {
.base = STM32_TIM5_BASE, .base = STM32_TIM5_BASE,
.clock_register = STM32_RCC_APB1ENR, .clock_register = STM32_RCC_APB1ENR,
.clock_bit = RCC_APB1ENR_TIM5EN, .clock_bit = RCC_APB1ENR_TIM5EN,
.clock_freq = STM32_APB1_TIM5_CLKIN, .clock_freq = STM32_APB1_TIM5_CLKIN,
.vectorno = 0, .vectorno = 0,
.first_channel_index = 3, .first_channel_index = 0,
.last_channel_index = 5, .last_channel_index = 2,
} },
# endif
# if defined(BOARD_HAS_LED_PWM) && !defined(BOARD_HAS_CONTROL_STATUS_LEDS)
{
.base = STM32_TIM3_BASE,
.clock_register = STM32_RCC_APB1ENR,
.clock_bit = RCC_APB1ENR_TIM3EN,
.clock_freq = STM32_APB1_TIM3_CLKIN,
.vectorno = 0,
# if defined(BOARD_HAS_UI_LED_PWM)
.first_channel_index = 3,
.last_channel_index = 5,
# else
.first_channel_index = 0,
.last_channel_index = 2,
# endif
},
# endif
}; };
/* Support driving active low (preferred) or active high LED /* Support driving active low (preferred) or active high LED
@ -221,70 +231,87 @@ __EXPORT const struct io_timers_t led_pwm_timers[MAX_LED_TIMERS] = {
#endif #endif
__EXPORT const struct timer_io_channels_t led_pwm_channels[MAX_TIMER_LED_CHANNELS] = { __EXPORT const struct timer_io_channels_t led_pwm_channels[MAX_TIMER_LED_CHANNELS] = {
{ # if defined(BOARD_HAS_UI_LED_PWM)
.gpio_out = DRIVE_TYPE(LED_TIM3_CH4OUT), # if defined(BOARD_UI_LED_SWAP_RG)
.gpio_in = 0,
.timer_index = 0,
.timer_channel = 4,
.masks = POLARITY(4),
},
{
.gpio_out = DRIVE_TYPE(LED_TIM3_CH1OUT),
.gpio_in = 0,
.timer_index = 0,
.timer_channel = 1,
.masks = POLARITY(1),
},
{
.gpio_out = DRIVE_TYPE(LED_TIM3_CH2OUT),
.gpio_in = 0,
.timer_index = 0,
.timer_channel = 2,
.masks = POLARITY(2),
},
#if defined(BOARD_UI_LED_SWAP_RG)
{ {
.gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH2OUT), .gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH2OUT),
.gpio_in = 0, .gpio_in = 0,
.timer_index = 1, .timer_index = 0,
.timer_channel = 2, .timer_channel = 2,
.masks = UI_POLARITY(2), .masks = UI_POLARITY(2),
}, },
{ {
.gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH1OUT), .gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH1OUT),
.gpio_in = 0, .gpio_in = 0,
.timer_index = 1, .timer_index = 0,
.timer_channel = 1, .timer_channel = 1,
.masks = UI_POLARITY(1), .masks = UI_POLARITY(1),
}, },
{ {
.gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH3OUT), .gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH3OUT),
.gpio_in = 0, .gpio_in = 0,
.timer_index = 1, .timer_index = 0,
.timer_channel = 3, .timer_channel = 3,
.masks = UI_POLARITY(3), .masks = UI_POLARITY(3),
}, },
#else # else
{ {
.gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH1OUT), .gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH1OUT),
.gpio_in = 0, .gpio_in = 0,
.timer_index = 1, .timer_index = 0,
.timer_channel = 1, .timer_channel = 1,
.masks = UI_POLARITY(1), .masks = UI_POLARITY(1),
}, },
{ {
.gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH2OUT), .gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH2OUT),
.gpio_in = 0, .gpio_in = 0,
.timer_index = 1, .timer_index = 0,
.timer_channel = 2, .timer_channel = 2,
.masks = UI_POLARITY(2), .masks = UI_POLARITY(2),
}, },
{ {
.gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH3OUT), .gpio_out = UI_DRIVE_TYPE(UI_LED_TIM5_CH3OUT),
.gpio_in = 0, .gpio_in = 0,
.timer_index = 1, .timer_index = 0,
.timer_channel = 3, .timer_channel = 3,
.masks = UI_POLARITY(3), .masks = UI_POLARITY(3),
} },
#endif # endif
# endif
# if defined(BOARD_HAS_LED_PWM) && !defined(BOARD_HAS_CONTROL_STATUS_LEDS)
{
.gpio_out = DRIVE_TYPE(LED_TIM3_CH4OUT),
.gpio_in = 0,
# if defined(BOARD_HAS_UI_LED_PWM)
.timer_index = 1,
# else
.timer_index = 0,
# endif
.timer_channel = 4,
.masks = POLARITY(4),
},
{
.gpio_out = DRIVE_TYPE(LED_TIM3_CH1OUT),
.gpio_in = 0,
# if defined(BOARD_HAS_UI_LED_PWM)
.timer_index = 1,
# else
.timer_index = 0,
# endif
.timer_channel = 1,
.masks = POLARITY(1),
},
{
.gpio_out = DRIVE_TYPE(LED_TIM3_CH2OUT),
.gpio_in = 0,
# if defined(BOARD_HAS_UI_LED_PWM)
.timer_index = 1,
# else
.timer_index = 0,
# endif
.timer_channel = 2,
.masks = POLARITY(2),
},
# endif
}; };
#endif // BOARD_HAS_LED_PWM || BOARD_HAS_UI_LED_PWM