/*---------------------------------------------------------------------------- * 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 #include #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