21 lines
704 B
C
21 lines
704 B
C
|
|
#ifndef I2C_DRIVER_H__
|
||
|
|
#define I2C_DRIVER_H__
|
||
|
|
|
||
|
|
#include "common_types.h"
|
||
|
|
#include <stdint.h>
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
I2C_SPEED_STANDARD = 100000,
|
||
|
|
I2C_SPEED_FAST = 400000,
|
||
|
|
} i2c_speed_t;
|
||
|
|
|
||
|
|
ret_code_t i2c_init(uint32_t speed);
|
||
|
|
ret_code_t i2c_deinit(void);
|
||
|
|
ret_code_t i2c_master_write(uint8_t dev_addr, const uint8_t *data, uint32_t len);
|
||
|
|
ret_code_t i2c_master_read(uint8_t dev_addr, uint8_t *data, uint32_t len);
|
||
|
|
ret_code_t i2c_mem_write(uint8_t dev_addr, uint16_t mem_addr, uint8_t mem_addr_size, const uint8_t *data, uint32_t len);
|
||
|
|
ret_code_t i2c_mem_read(uint8_t dev_addr, uint16_t mem_addr, uint8_t mem_addr_size, uint8_t *data, uint32_t len);
|
||
|
|
ret_code_t i2c_check_device(uint8_t dev_addr);
|
||
|
|
|
||
|
|
#endif
|