From a867aeaba2c306d1375f73649d9ca8fff71c4af9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Nohlg=C3=A5rd?= Date: Wed, 28 Nov 2018 08:43:01 +0100 Subject: [PATCH 1/2] periph/i2c: Add precondition on i2c_acquire for i2c bus access --- drivers/include/periph/i2c.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/include/periph/i2c.h b/drivers/include/periph/i2c.h index 3a638d2839..42bcf1be2b 100644 --- a/drivers/include/periph/i2c.h +++ b/drivers/include/periph/i2c.h @@ -243,6 +243,8 @@ int i2c_release(i2c_t dev); * @note This function is using a repeated start sequence for reading from * the specified register address. * + * @pre i2c_acquire must be called before accessing the bus + * * @param[in] dev I2C peripheral device * @param[in] reg register address to read from (8- or 16-bit, * right-aligned) @@ -269,6 +271,8 @@ int i2c_read_reg(i2c_t dev, uint16_t addr, uint16_t reg, * @note This function is using a repeated start sequence for reading from * the specified register address. * + * @pre i2c_acquire must be called before accessing the bus + * * @param[in] dev I2C peripheral device * @param[in] reg register address to read from (8- or 16-bit, * right-aligned) @@ -294,6 +298,8 @@ int i2c_read_regs(i2c_t dev, uint16_t addr, uint16_t reg, * @note This function is using a repeated start sequence for reading from * the specified register address. * + * @pre i2c_acquire must be called before accessing the bus + * * @param[in] dev I2C peripheral device * @param[in] addr 7-bit or 10-bit device address (right-aligned) * @param[out] data memory location to store received data @@ -316,6 +322,8 @@ int i2c_read_byte(i2c_t dev, uint16_t addr, void *data, uint8_t flags); * @note This function is using a repeated start sequence for reading from * the specified register address. * + * @pre i2c_acquire must be called before accessing the bus + * * @param[in] dev I2C peripheral device * @param[in] addr 7-bit or 10-bit device address (right-aligned) * @param[out] data memory location to store received data @@ -337,6 +345,8 @@ int i2c_read_bytes(i2c_t dev, uint16_t addr, /** * @brief Convenience function for writing a single byte onto the bus * + * @pre i2c_acquire must be called before accessing the bus + * * @param[in] dev I2C peripheral device * @param[in] addr 7-bit or 10-bit device address (right-aligned) * @param[in] data byte to write to the device @@ -355,6 +365,8 @@ int i2c_write_byte(i2c_t dev, uint16_t addr, uint8_t data, uint8_t flags); /** * @brief Convenience function for writing several bytes onto the bus * + * @pre i2c_acquire must be called before accessing the bus + * * @param[in] dev I2C peripheral device * @param[in] addr 7-bit or 10-bit device address (right-aligned) * @param[in] data array holding the bytes to write to the device @@ -379,6 +391,8 @@ int i2c_write_bytes(i2c_t dev, uint16_t addr, const void *data, * @note This function is using a repeated start sequence for writing to the * specified register address. * + * @pre i2c_acquire must be called before accessing the bus + * * @param[in] dev I2C peripheral device * @param[in] reg register address to read from (8- or 16-bit, * right-aligned) @@ -403,6 +417,8 @@ int i2c_write_reg(i2c_t dev, uint16_t addr, uint16_t reg, * @note This function is using a repeated start sequence for writing to the * specified register address. * + * @pre i2c_acquire must be called before accessing the bus + * * @param[in] dev I2C peripheral device * @param[in] reg register address to read from (8- or 16-bit, * right-aligned) From 2b0892996e43affd44e9406548ad6f6db039bd5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Nohlg=C3=A5rd?= Date: Sat, 17 Nov 2018 21:15:03 +0100 Subject: [PATCH 2/2] frdm-k64f: Define BTNx macros for user pushbuttons --- boards/frdm-k64f/include/board.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/boards/frdm-k64f/include/board.h b/boards/frdm-k64f/include/board.h index 4c92b56f28..647f51acde 100644 --- a/boards/frdm-k64f/include/board.h +++ b/boards/frdm-k64f/include/board.h @@ -53,6 +53,20 @@ extern "C" #define LED2_TOGGLE (GPIOB->PTOR = LED2_MASK) /** @} */ +/** + * @name Button pin definitions + * @{ + */ +/* SW2, SW3 will short these pins to ground when pushed. PTA4 has an external + * pull-up resistor to VDD, but there is no external pull resistor on PTC6 */ +/* BTN0 is mapped to SW2 */ +#define BTN0_PIN GPIO_PIN(PORT_C, 6) +#define BTN0_MODE GPIO_IN_PU +/* BTN1 is mapped to SW3 */ +#define BTN1_PIN GPIO_PIN(PORT_A, 4) +#define BTN1_MODE GPIO_IN_PU +/** @} */ + /** * @name FXOS8700CQ 3-axis accelerometer and magnetometer bus configuration * @{