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"
 Include dependency graph for i2c.h:
 This graph shows which files directly or indirectly include this file: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... | |
| void | 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_FAST8_MAX) | 
| Default I2C undefined value.  | |
| enum | i2c_speed_t {  I2C_SPEED_LOW = 10000ul , I2C_SPEED_NORMAL = 100000ul , I2C_SPEED_FAST = 400000ul , I2C_SPEED_FAST_PLUS = 1000000ul , I2C_SPEED_HIGH = 3400000ul , I2C_SPEED_LOW = 10000u , I2C_SPEED_NORMAL = 100000u , I2C_SPEED_FAST = 400000u , I2C_SPEED_FAST_PLUS = 400000u , I2C_SPEED_HIGH = 400000u , 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... | |
| typedef uint_fast8_t | i2c_t | 
| Default i2c_t type definition.  | |