Low-level I2C peripheral driver interface definition. More...
Low-level I2C peripheral driver interface definition.
Definition in file i2c.h.
#include <stdint.h>
#include <stddef.h>
#include <limits.h>
#include "periph_conf.h"
#include "periph_cpu.h"
Go to the source code of this file.
Macros | |
#define | I2C_READ (0x0001) |
Read bit needs to be set when reading. | |
#define | I2C_10BIT_MAGIC (0xF0u) |
Special bit pattern indicating a 10 bit address is used. More... | |
Functions | |
void | i2c_init (i2c_t dev) |
Initialize the given I2C bus. More... | |
void | i2c_init_pins (i2c_t dev) |
Initialize the used I2C bus pins. More... | |
void | i2c_deinit_pins (i2c_t dev) |
Change the pins of the given I2C bus back to plain GPIO functionality. More... | |
gpio_t | i2c_pin_sda (i2c_t dev) |
Get the SDA pin of the given I2C bus. More... | |
gpio_t | i2c_pin_scl (i2c_t dev) |
Get the SCL pin of the given I2C bus. More... | |
int | i2c_acquire (i2c_t dev) |
Get mutually exclusive access to the given I2C bus. More... | |
void | i2c_release (i2c_t dev) |
Release the given I2C device to be used by others. More... | |
int | i2c_read_reg (i2c_t dev, uint16_t addr, uint16_t reg, void *data, uint8_t flags) |
Convenience function for reading one byte from a given register address. More... | |
int | i2c_read_regs (i2c_t dev, uint16_t addr, uint16_t reg, void *data, size_t len, uint8_t flags) |
Convenience function for reading several bytes from a given register address. More... | |
int | i2c_read_byte (i2c_t dev, uint16_t addr, void *data, uint8_t flags) |
Convenience function for reading one byte from a device. More... | |
int | i2c_read_bytes (i2c_t dev, uint16_t addr, void *data, size_t len, uint8_t flags) |
Convenience function for reading bytes from a device. More... | |
int | i2c_write_byte (i2c_t dev, uint16_t addr, uint8_t data, uint8_t flags) |
Convenience function for writing a single byte onto the bus. More... | |
int | i2c_write_bytes (i2c_t dev, uint16_t addr, const void *data, size_t len, uint8_t flags) |
Convenience function for writing several bytes onto the bus. More... | |
int | i2c_write_reg (i2c_t dev, uint16_t addr, uint16_t reg, uint8_t data, uint8_t flags) |
Convenience function for writing one byte to a given register address. More... | |
int | i2c_write_regs (i2c_t dev, uint16_t addr, uint16_t reg, const void *data, size_t len, uint8_t flags) |
Convenience function for writing data to a given register address. More... | |
#define | I2C_DEV(x) (x) |
Default I2C device access macro. | |
#define | I2C_UNDEF (UINT_MAX) |
Default I2C undefined value. | |
typedef unsigned int | i2c_t |
Default i2c_t type definition. | |
enum | i2c_speed_t { I2C_SPEED_LOW = 0, I2C_SPEED_NORMAL, I2C_SPEED_FAST, I2C_SPEED_FAST_PLUS, I2C_SPEED_HIGH } |
Default mapping of I2C bus speed values. More... | |
enum | i2c_flags_t { I2C_ADDR10 = 0x01, I2C_REG16 = 0x02, I2C_NOSTOP = 0x04, I2C_NOSTART = 0x08 } |
I2C transfer flags. More... | |