THB2/bthome_phy6222/SDK/components/driver/i2c/i2c_slave.h

62 lines
2.3 KiB
C

/*******************************************************************************
@file i2c_slave.h
@brief i2c slave Configuration,API...
@version 1.0
SDK_LICENSE
*******************************************************************************/
#ifndef __I2C_SLAVE_H__
#define __I2C_SLAVE_H__
#ifdef __cplusplus
extern "C" {
#endif
/*******************************************************************************
@ Module : Includes
@ Description : NULL
*******************************************************************************/
#include "types.h"
#include "i2c_common.h"
/*******************************************************************************
@ Module : I2C Slave Paramter structure
@ Description : None
*******************************************************************************/
typedef struct
{
// General
uint8_t id; // set
I2C_WorkMode workmode; // init some Para ,according to workmode
I2C_ADDRESS_e AddressMode;
uint8_t RX_FIFO_Len; // RX , TX FIFO SET
uint8_t Tx_FIFO_Len;
gpio_pin_e SDA_PIN; // I2C Pin
gpio_pin_e SCL_PIN;
uint32_t IRQ_Source;
uint8_t Slave_Address; // SAR,when as Slave
I2C_Hdl_t evt_handler;
} I2C_Slave_Parameter;
/*******************************************************************************
@ Module : Function Statement
@ Description : NULL
*******************************************************************************/
uint8_t Hal_I2C_Slave_Init(I2C_Slave_Parameter* para,uint8_t* handle);
uint8_t Hal_I2c_Slave_Open(uint8_t handle);
void Hal_I2c_Slave_Close(uint8_t handle);
uint8_t Hal_I2C_Slave_Deinit(uint8_t* handle);
uint8_t Hal_Check_I2C_Slave_Closed(uint8_t handle);
void Hal_I2C_Slave_ReadRX_FIFO(uint8_t handle,uint8_t* p,uint8_t len);
void Hal_I2C_Slave_CLR_IRQs(uint8_t handle,uint32_t irqs);
void Hal_I2C_Slave_WriteTX_FIFO(uint8_t handle,uint8_t* p,uint8_t len);
#ifdef __cplusplus
}
#endif
#endif