#ifndef __Mx92G8z_I2C_MID_NEW_H
#define __Mx92G8z_I2C_MID_NEW_H

#ifdef __cplusplus
 extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include "Mx92G8z_HAL_Common.h"



//typedef enum{
//    ACK = 0,
//    NACK = 1
//}SWI2CACK_Typedef;

//typedef struct{
//    __IO uint32_t Delay;
//    __IO uint8_t TxBitCount;
//    __IO uint8_t TxData;
//    __IO uint8_t RxBitCount;
//    __IO uint8_t RxData;
//    __IO SWI2CACK_Typedef TxACK;
//    __IO SWI2CACK_Typedef RxACK;
//}SWI2C_HandlerTypedef;

//typedef enum{
//    SWI2C_RESET           = 0x00,     /*!< SWI2C not yet initialized or disabled         */
//    SWI2C_READY           = 0x01,     /*!< SWI2C initialized and ready for use           */
//    SWI2C_BUSY            = 0x02,     /*!< SWI2C internal process is ongoing             */

//    SWI2C_2MT_BUSY        = 0xC2,     /*!< Software Master Data Transmission process is ongoing */ 
//    SWI2C_2MR_BUSY        = 0xD2,     /*!< Software Master Data Reception process is ongoing    */
//    SWI2C_2ST_BUSY        = 0xE2,     /*!< Software Slave Data Transmission process is ongoing  */ 
//    SWI2C_2SR_BUSY        = 0xF2,     /*!< Software Slave Data Reception process is ongoing     */

//    SWI2C_TIMEOUT         = 0x03,     /*!< Timeout state                               */  
//    SWI2C_ERROR           = 0x04,     /*!< Reception process is ongoing                */      
//    SWI2C_START           = 0x05,     /*!< SWI2C Ready and Bus Start                   */
//    SWI2C_STOP            = 0x00,     /*!< SWI2C Bus Stop and Idle or Free             */
//    SWI2C_RESTART         = 0x06,     /*!< SWI2C Ready and Bus Repeat Start            */
//    SWI2C_STOPSTART       = 0x07,     /*!< SWI2C Ready and Bus Stop and Start          */
//}SWI2C_Return;

//HAL_StatusTypeDef SWI2C_MspInit(SWI2C_HandlerTypedef *SWI2Cx);
//HAL_StatusTypeDef SWI2C_Init(SWI2C_HandlerTypedef *SWI2Cx);
//HAL_StatusTypeDef SWI2C_Start(void);
//HAL_StatusTypeDef SWI2C_Stop(void);
//HAL_StatusTypeDef SWI2C_StopStart(void);
//HAL_StatusTypeDef SWI2C_TDataByte_to_Slave(SWI2C_HandlerTypedef *SWI2Cx);
//HAL_StatusTypeDef SWI2C_RDataByte_to_Slave(SWI2C_HandlerTypedef *SWI2Cx);
//HAL_StatusTypeDef SWI2C_TDataByte_to_Master(SWI2C_HandlerTypedef *SWI2Cx);
//HAL_StatusTypeDef SWI2C_RDataByte_to_Master(SWI2C_HandlerTypedef *SWI2Cx);
//HAL_StatusTypeDef SWI2C_TDataByte_to_Master_ALOSF(SWI2C_HandlerTypedef *SWI2Cx);
//HAL_StatusTypeDef SWI2C_TDataByte_to_Master_BERRF_2High(SWI2C_HandlerTypedef *SWI2Cx);
//HAL_StatusTypeDef SWI2C_TDataByte_to_Master_BERRF_2Low(SWI2C_HandlerTypedef *SWI2Cx);