mcu_hi3321_watch/tjd/driver/common/common_i2c.h
2025-05-26 20:15:20 +08:00

54 lines
1.3 KiB
C

/*----------------------------------------------------------------------------
* Copyright (c) TJD Technologies Co., Ltd. 2025. All rights reserved.
*
* Description: common_i2c.h
*
* Author: luziquan@ss-tjd.com
*
* Create: 2024-05-29
*--------------------------------------------------------------------------*/
#ifndef COMMON_I2C_H
#define COMMON_I2C_H
#include <stdint.h>
#include <stdbool.h>
#include "i2c.h"
#ifdef __cplusplus
#if __cplusplus
extern "C"
{
#endif
#endif
typedef enum
{
I2C_MODEL_HRSENSOR_ID = 0,
I2C_MODEL_MSENSOR_ID,
I2C_MODEL_GSENSOR_ID,
I2C_MODEL_ALIPAY_ID,
I2C_MODEL_ENCODER_ID,
I2C_MODEL_TP_ID,
I2C_MODEL_MAX_ID,
} i2c_model_id_t;
struct common_i2c_class_ops
{
uint32_t (*open)(i2c_model_id_t model_id, i2c_bus_t bus, uint16_t dev_addr, uint32_t baudrate);
uint32_t (*close)(i2c_model_id_t model_id);
uint32_t (*read)(i2c_model_id_t model_id, i2c_data_t *data);
uint32_t (*write)(i2c_model_id_t model_id, i2c_data_t *data);
uint32_t (*writeread)(i2c_model_id_t model_id, i2c_data_t *data);
uint32_t (*set_dev_addr)(i2c_model_id_t model_id, uint16_t dev_addr);
};
const struct common_i2c_class_ops *tjd_driver_common_i2c_get_ops(void);
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
#endif