54 lines
1.3 KiB
C
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 |