#ifndef _SR_BSP_I2C_H
#define _SR_BSP_I2C_H

#include "sr_device.h"
#include "sr_config.h"

typedef enum
{
  SR_I2C0 = 0,
  SR_I2C1 = 1,

} SR_I2C_ID_E;

// 接口速率
typedef enum
{
  SR_I2C_SPEED_100K,
  SR_I2C_SPEED_400K,
  SR_I2C_SPEED_1M
} SR_I2C_SPEED_E;

typedef struct BSP_I2C_INFO
{
  const char *name; /*!< i2c设备的名字*/

  void *trdHandle; /*!< 第三方平台使用的句柄指针*/

  SR_I2C_SPEED_E speed;
  int8_t srId; /*!< 朝阳使用的ID*/

} BSP_I2C_INFO_T;

SR_DEVICE_T *BspI2cOpen(SR_I2C_ID_E i2cId);
int BspI2cClose(SR_DEVICE_T *dev);
int BspI2cReadReg(SR_DEVICE_T *dev, uint32_t slaveAddr, SR_I2C_FLAG_E flag, uint32_t reg, uint8_t *buff, uint32_t buffLen);
int BspI2cWriteReg(SR_DEVICE_T *dev, uint32_t slaveAddr, SR_I2C_FLAG_E flag, uint32_t reg, uint8_t *buff, uint32_t buffLen);

#endif
