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. | |