Fixes for STM32L4, Comp and eeprom.

This commit is contained in:
Fabien Poussin 2019-09-17 19:43:24 +02:00
parent a8bd0ca9da
commit 6736a9099b
3 changed files with 20 additions and 6 deletions

View File

@ -34,6 +34,14 @@
/* Driver local definitions. */
/*===========================================================================*/
#ifndef COMP_CSR_EN
#define COMP_CSR_EN COMP_CSR_COMPxEN
#endif
#ifndef COMP_CSR_POLARITY
#define COMP_CSR_POLARITY COMP_CSR_COMPxPOL
#endif
/*===========================================================================*/
/* Driver exported variables. */
/*===========================================================================*/
@ -191,6 +199,8 @@ void comp_lld_init(void) {
}
#if STM32_COMP_USE_INTERRUPTS
/**
* @brief COMP1, COMP2, COMP3 interrupt handler.
*
@ -369,6 +379,8 @@ void comp_ext_lld_channel_disable(COMPDriver *compp, uint32_t channel) {
#endif
}
#endif
/**
* @brief Configures and activates the COMP peripheral.
*
@ -379,11 +391,11 @@ void comp_ext_lld_channel_disable(COMPDriver *compp, uint32_t channel) {
void comp_lld_start(COMPDriver *compp) {
// Apply CSR Execpt the enable bit.
compp->reg->CSR = compp->config->csr & ~COMP_CSR_COMPxEN;
compp->reg->CSR = compp->config->csr & ~COMP_CSR_EN;
// Inverted output
if (compp->config->output_mode == COMP_OUTPUT_INVERTED)
compp->reg->CSR |= COMP_CSR_COMPxPOL;
compp->reg->CSR |= COMP_CSR_POLARITY;
#if STM32_COMP_USE_INTERRUPTS
#if STM32_COMP_USE_COMP1
@ -500,7 +512,7 @@ void comp_lld_stop(COMPDriver *compp) {
*/
void comp_lld_enable(COMPDriver *compp) {
compp->reg->CSR |= COMP_CSR_COMPxEN; /* Enable */
compp->reg->CSR |= COMP_CSR_EN; /* Enable */
}
/**
@ -512,7 +524,7 @@ void comp_lld_enable(COMPDriver *compp) {
*/
void comp_lld_disable(COMPDriver *compp) {
compp->reg->CSR &= ~COMP_CSR_COMPxEN; /* Disable */
compp->reg->CSR &= ~COMP_CSR_EN; /* Disable */
}
#endif /* HAL_USE_COMP */

View File

@ -198,7 +198,7 @@ static size_t __clamp_size(void *ip, size_t n) {
/**
* @brief Write data that can be fitted in one page boundary
*/
static void __fitted_write(void *ip, const uint8_t *data, size_t len, uint32_t *written) {
static msg_t __fitted_write(void *ip, const uint8_t *data, size_t len, uint32_t *written) {
msg_t status = MSG_RESET;
@ -210,6 +210,8 @@ static void __fitted_write(void *ip, const uint8_t *data, size_t len, uint32_t *
*written += len;
eepfs_lseek(ip, eepfs_getposition(ip) + len);
}
return status;
}
/**