diff --git a/cpu/atmega_common/periph/i2c.c b/cpu/atmega_common/periph/i2c.c index 30672ba2fe..3b4a0d251e 100644 --- a/cpu/atmega_common/periph/i2c.c +++ b/cpu/atmega_common/periph/i2c.c @@ -22,11 +22,12 @@ * @} */ +#include #include #include + #include "cpu.h" #include "mutex.h" -#include "assert.h" #include "periph/i2c.h" #include "periph_conf.h" @@ -219,12 +220,11 @@ int i2c_write_bytes(i2c_t dev, uint16_t addr, const void *data, size_t len, return 0; } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); mutex_lock(&locks[dev]); - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/atxmega/periph/i2c.c b/cpu/atxmega/periph/i2c.c index 91195e7876..be43a7f17d 100644 --- a/cpu/atxmega/periph/i2c.c +++ b/cpu/atxmega/periph/i2c.c @@ -18,6 +18,7 @@ * * @} */ +#include #include #include "cpu.h" @@ -74,10 +75,7 @@ void i2c_init(i2c_t i2c) { uint8_t baudrate; - if (i2c >= I2C_NUMOF) { - DEBUG("[i2c] init: dev is invalid.\n"); - return; - } + assert((unsigned)i2c < I2C_NUMOF); baudrate = _i2c_calc_baud(i2c); if (baudrate == 0) { @@ -97,12 +95,14 @@ void i2c_init(i2c_t i2c) void i2c_init_pins(i2c_t i2c) { + assert((unsigned)i2c < I2C_NUMOF); gpio_init(i2c_config[i2c].sda_pin, GPIO_OPC_WRD_AND_PULL); gpio_init(i2c_config[i2c].scl_pin, GPIO_OPC_WRD_AND_PULL); } -int i2c_acquire(i2c_t i2c) +void i2c_acquire(i2c_t i2c) { + assert((unsigned)i2c < I2C_NUMOF); DEBUG("acquire\n"); pm_block(3); mutex_lock(&i2c_ctx[i2c].locks); @@ -113,12 +113,11 @@ int i2c_acquire(i2c_t i2c) | TWI_MASTER_WIEN_bm | TWI_MASTER_ENABLE_bm; dev(i2c)->MASTER.STATUS = TWI_MASTER_BUSSTATE_IDLE_gc; - - return 0; } void i2c_release(i2c_t i2c) { + assert((unsigned)i2c < I2C_NUMOF); dev(i2c)->MASTER.CTRLA = 0; pm_periph_disable(i2c_config[i2c].pwr); mutex_unlock(&i2c_ctx[i2c].locks); @@ -129,6 +128,8 @@ void i2c_release(i2c_t i2c) static int _i2c_transaction(i2c_t i2c, uint16_t addr, const void *data, size_t len, uint8_t flags, bool is_read) { + assert((unsigned)i2c < I2C_NUMOF); + if (flags & I2C_ADDR10) { DEBUG("[i2c] xfer: no 10 bit address support.\n"); return -EOPNOTSUPP; @@ -238,6 +239,8 @@ static inline void _i2c_read_handler(int i2c) */ static inline void isr_handler(int i2c) { + assert((unsigned)i2c < I2C_NUMOF); + avr8_enter_isr(); int8_t const m_status = dev(i2c)->MASTER.STATUS; diff --git a/cpu/cc2538/periph/i2c.c b/cpu/cc2538/periph/i2c.c index 40dbccbdfc..46ced955eb 100644 --- a/cpu/cc2538/periph/i2c.c +++ b/cpu/cc2538/periph/i2c.c @@ -231,14 +231,12 @@ void i2c_init(i2c_t dev) DEBUG(" - I2C master status (0x%x).\n", _i2c_master_stat_get()); } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { + (void)dev; + assert(dev < I2C_NUMOF); DEBUG("%s\n", __FUNCTION__); - if (dev < I2C_NUMOF) { - mutex_lock(&lock); - return 0; - } - return -1; + mutex_lock(&lock); } void i2c_release(i2c_t dev) diff --git a/cpu/cc26xx_cc13xx/periph/i2c.c b/cpu/cc26xx_cc13xx/periph/i2c.c index 830fff0ac5..4e5fc42136 100644 --- a/cpu/cc26xx_cc13xx/periph/i2c.c +++ b/cpu/cc26xx_cc13xx/periph/i2c.c @@ -126,12 +126,11 @@ void i2c_init(i2c_t devnum) I2C->MTPR = MTPR_TPR_100KHZ; } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { (void)dev; assert(dev < I2C_NUMOF); mutex_lock(&_lock); - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/efm32/periph/i2c.c b/cpu/efm32/periph/i2c.c index cd00033996..c15769cb37 100644 --- a/cpu/efm32/periph/i2c.c +++ b/cpu/efm32/periph/i2c.c @@ -142,15 +142,15 @@ void i2c_init(i2c_t dev) I2C_Enable(i2c_config[dev].dev, true); } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { + assert(dev < I2C_NUMOF); + /* acquire lock */ mutex_lock(&i2c_lock[dev]); /* power peripheral */ CMU_ClockEnable(i2c_config[dev].cmu, true); - - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/esp32/periph/i2c_hw.c b/cpu/esp32/periph/i2c_hw.c index 1d8df98c22..32ff481e78 100644 --- a/cpu/esp32/periph/i2c_hw.c +++ b/cpu/esp32/periph/i2c_hw.c @@ -145,7 +145,7 @@ static inline void _i2c_delay (uint32_t delay); void i2c_init(i2c_t dev) { - CHECK_PARAM (dev < I2C_NUMOF) + assert(dev < I2C_NUMOF); if (i2c_config[dev].speed == I2C_SPEED_FAST_PLUS || i2c_config[dev].speed == I2C_SPEED_HIGH) { @@ -156,7 +156,7 @@ void i2c_init(i2c_t dev) mutex_init(&_i2c_bus[dev].lock); - i2c_acquire (dev); + i2c_acquire(dev); _i2c_bus[dev].cmd = 0; _i2c_bus[dev].data = 0; @@ -262,20 +262,17 @@ void i2c_init(i2c_t dev) xt_set_interrupt_handler(CPU_INUM_I2C, _i2c_intr_handler, NULL); xt_ints_on(BIT(CPU_INUM_I2C)); - i2c_release (dev); - - return; + i2c_release(dev); } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { DEBUG ("%s\n", __func__); - CHECK_PARAM_RET (dev < I2C_NUMOF, -1) + assert(dev < I2C_NUMOF); mutex_lock(&_i2c_bus[dev].lock); _i2c_reset_hw(dev); - return 0; } void i2c_release(i2c_t dev) @@ -358,9 +355,9 @@ int i2c_read_bytes(i2c_t dev, uint16_t addr, void *data, size_t len, uint8_t fla DEBUG ("%s dev=%u addr=%02x data=%p len=%d flags=%01x\n", __func__, dev, addr, data, len, flags); - CHECK_PARAM_RET (dev < I2C_NUMOF, -EINVAL); - CHECK_PARAM_RET (len > 0, -EINVAL); - CHECK_PARAM_RET (data != NULL, -EINVAL); + assert(dev < I2C_NUMOF); + assert(len > 0); + assert(data != NULL); /* if I2C_NOSTART is not set, START condition and ADDR is used */ if (!(flags & I2C_NOSTART)) { @@ -445,9 +442,9 @@ int i2c_write_bytes(i2c_t dev, uint16_t addr, const void *data, size_t len, uint DEBUG ("%s dev=%u addr=%02x data=%p len=%d flags=%01x\n", __func__, dev, addr, data, len, flags); - CHECK_PARAM_RET (dev < I2C_NUMOF, -EINVAL); - CHECK_PARAM_RET (len > 0, -EINVAL); - CHECK_PARAM_RET (data != NULL, -EINVAL); + assert(dev < I2C_NUMOF); + assert(len > 0); + assert(data != NULL); /* if I2C_NOSTART is not set, START condition and ADDR is used */ if (!(flags & I2C_NOSTART)) { diff --git a/cpu/esp_common/periph/i2c_sw.c b/cpu/esp_common/periph/i2c_sw.c index efb45e26f9..4a75efd3df 100644 --- a/cpu/esp_common/periph/i2c_sw.c +++ b/cpu/esp_common/periph/i2c_sw.c @@ -246,12 +246,11 @@ void i2c_init(i2c_t dev) return; } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); mutex_lock(&_i2c_bus[dev].lock); - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/fe310/periph/i2c.c b/cpu/fe310/periph/i2c.c index 76029585c8..f3b2f4b9a2 100644 --- a/cpu/fe310/periph/i2c.c +++ b/cpu/fe310/periph/i2c.c @@ -90,11 +90,10 @@ void i2c_init(i2c_t dev) DEBUG("[i2c] initialization done\n"); } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); mutex_lock(&locks[dev]); - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/kinetis/periph/i2c.c b/cpu/kinetis/periph/i2c.c index 12d503308a..20e7bc2134 100644 --- a/cpu/kinetis/periph/i2c.c +++ b/cpu/kinetis/periph/i2c.c @@ -106,12 +106,11 @@ typedef struct { static i2c_state_t i2c_state[I2C_NUMOF]; -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert((unsigned)dev < I2C_NUMOF); mutex_lock(&i2c_state[dev].mtx); i2c_state[dev].pid = thread_getpid(); - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/lpc23xx/periph/i2c.c b/cpu/lpc23xx/periph/i2c.c index 592b26467a..190e3b680f 100644 --- a/cpu/lpc23xx/periph/i2c.c +++ b/cpu/lpc23xx/periph/i2c.c @@ -103,14 +103,12 @@ static void poweroff(lpc23xx_i2c_t *i2c) } } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); mutex_lock(&ctx[dev].lock); poweron(i2c_config[dev].dev); - - return 0; } void i2c_release(i2c_t dev) @@ -332,6 +330,8 @@ static void irq_handler(i2c_t dev) } /* clear interrupt flag */ + /* cppcheck-suppress redundantAssignment + * (reason: writing 1 to volatile register to clear the interrupt) */ i2c->CONCLR = I2CONCLR_SIC; } diff --git a/cpu/nrf51/periph/i2c.c b/cpu/nrf51/periph/i2c.c index 5f6bcc10fe..cd2efd09e9 100644 --- a/cpu/nrf51/periph/i2c.c +++ b/cpu/nrf51/periph/i2c.c @@ -132,12 +132,11 @@ void i2c_init(i2c_t dev) i2c(dev)->ENABLE = TWI_ENABLE_ENABLE_Enabled; } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); mutex_lock(&locks[dev]); - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/nrf5x_common/periph/i2c_nrf52_nrf9160.c b/cpu/nrf5x_common/periph/i2c_nrf52_nrf9160.c index 516acedcfc..8069051535 100644 --- a/cpu/nrf5x_common/periph/i2c_nrf52_nrf9160.c +++ b/cpu/nrf5x_common/periph/i2c_nrf52_nrf9160.c @@ -154,7 +154,7 @@ void i2c_deinit_pins(i2c_t dev) } #endif /* MODULE_PERIPH_I2C_RECONFIGURE */ -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); @@ -162,7 +162,6 @@ int i2c_acquire(i2c_t dev) bus(dev)->ENABLE = TWIM_ENABLE_ENABLE_Enabled; DEBUG("[i2c] acquired dev %i\n", (int)dev); - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/qn908x/periph/i2c.c b/cpu/qn908x/periph/i2c.c index 08a3d0bc85..faf2f690dc 100644 --- a/cpu/qn908x/periph/i2c.c +++ b/cpu/qn908x/periph/i2c.c @@ -153,11 +153,10 @@ void i2c_deinit_pins(i2c_t dev) } #endif /* MODULE_PERIPH_I2C_RECONFIGURE */ -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); mutex_lock(&locks[dev]); - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/sam0_common/periph/i2c.c b/cpu/sam0_common/periph/i2c.c index 176f9e0af6..df8bfb2b0d 100644 --- a/cpu/sam0_common/periph/i2c.c +++ b/cpu/sam0_common/periph/i2c.c @@ -194,11 +194,10 @@ void i2c_init(i2c_t dev) } } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); mutex_lock(&locks[dev]); - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/stm32/periph/i2c_1.c b/cpu/stm32/periph/i2c_1.c index 4af801fed6..464c584bef 100644 --- a/cpu/stm32/periph/i2c_1.c +++ b/cpu/stm32/periph/i2c_1.c @@ -135,7 +135,7 @@ static void _i2c_init(I2C_TypeDef *i2c, uint32_t timing) i2c->CR1 |= I2C_CR1_PE; } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); @@ -145,8 +145,6 @@ int i2c_acquire(i2c_t dev) /* enable device */ i2c_config[dev].dev->CR1 |= I2C_CR1_PE; - - return 0; } void i2c_release(i2c_t dev) diff --git a/cpu/stm32/periph/i2c_2.c b/cpu/stm32/periph/i2c_2.c index c130abaa13..ebfb2dae53 100644 --- a/cpu/stm32/periph/i2c_2.c +++ b/cpu/stm32/periph/i2c_2.c @@ -180,7 +180,7 @@ static void _init(i2c_t dev) _i2c_init(i2c, i2c_config[dev].clk, ccr); } -int i2c_acquire(i2c_t dev) +void i2c_acquire(i2c_t dev) { assert(dev < I2C_NUMOF); @@ -195,8 +195,6 @@ int i2c_acquire(i2c_t dev) /* enable device */ i2c_config[dev].dev->CR1 |= I2C_CR1_PE; - - return 0; } void i2c_release(i2c_t dev)