114 #include "periph_conf.h" 
  115 #include "periph_cpu.h" 
  126 #define I2C_DEV(x)          (x) 
  135 #define I2C_UNDEF           (UINT_FAST8_MAX) 
  151 #define I2C_READ            (0x0001) 
  161 #define I2C_10BIT_MAGIC     (0xF0u) 
  167 #ifndef HAVE_I2C_SPEED_T 
  182 #ifndef HAVE_I2C_FLAGS_T 
  317                  void *data, uint8_t flags);
 
  345                   void *data, 
size_t len, uint8_t flags);
 
  395                    void *data, 
size_t len, uint8_t flags);
 
  437                     size_t len, uint8_t flags);
 
  464                   uint8_t data, uint8_t flags);
 
  491                   const void *data, 
size_t len, uint8_t flags);
 
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.
 
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.
 
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.
 
void i2c_init(i2c_t dev)
Initialize the given I2C bus.
 
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.
 
void i2c_deinit_pins(i2c_t dev)
Change the pins of the given I2C bus back to plain GPIO functionality.
 
gpio_t i2c_pin_sda(i2c_t dev)
Get the SDA pin of the given I2C bus.
 
uint_fast8_t i2c_t
Default i2c_t type definition.
 
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.
 
i2c_speed_t
Default mapping of I2C bus speed values.
 
int i2c_read_byte(i2c_t dev, uint16_t addr, void *data, uint8_t flags)
Convenience function for reading one byte from a device.
 
void i2c_release(i2c_t dev)
Release the given I2C device to be used by others.
 
i2c_flags_t
I2C transfer flags.
 
void i2c_init_pins(i2c_t dev)
Initialize the used I2C bus pins.
 
void i2c_acquire(i2c_t dev)
Get mutually exclusive access to the given I2C bus.
 
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.
 
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.
 
gpio_t i2c_pin_scl(i2c_t dev)
Get the SCL pin of the given I2C bus.
 
@ I2C_SPEED_NORMAL
normal mode: ~100 kbit/s
 
@ I2C_SPEED_FAST_PLUS
fast plus mode: ~1000 kbit/s
 
@ I2C_SPEED_LOW
low speed mode: ~10 kbit/s
 
@ I2C_SPEED_HIGH
high speed mode: ~3400 kbit/s
 
@ I2C_SPEED_FAST
fast mode: ~400 kbit/s
 
@ I2C_ADDR10
use 10-bit device addressing
 
@ I2C_REG16
use 16-bit register addressing, big-endian
 
@ I2C_NOSTOP
do not issue a STOP condition after transfer
 
@ I2C_NOSTART
skip START sequence, ignores address field