1 #ifndef _DRV_HWI2C_V2_H_ 2 #define _DRV_HWI2C_V2_H_ 3 4 #ifdef __cplusplus 5 extern "C" 6 { 7 #endif 8 9 10 //#include "drvHWI2C.h" 11 12 //------------------------------------------------------------------------------------------------- 13 // Defines 14 //------------------------------------------------------------------------------------------------- 15 // below for utopia20 structure 16 17 typedef enum { 18 MDrv_CMD_HWI2C_Init, 19 MDrv_CMD_HWI2C_Start, 20 MDrv_CMD_HWI2C_Stop, 21 MDrv_CMD_HWI2C_GetPortIndex, 22 MDrv_CMD_HWI2C_SelectPort, 23 MDrv_CMD_HWI2C_SetClk, 24 MDrv_CMD_HWI2C_SetReadMode, 25 MDrv_CMD_HWI2C_WriteByte, 26 MDrv_CMD_HWI2C_WriteBytes, 27 MDrv_CMD_HWI2C_ReadByte, 28 MDrv_CMD_HWI2C_ReadBytes, 29 MDrv_CMD_HWI2C_SelectPort1, 30 MDrv_CMD_HWI2C_SetClkP1, 31 MDrv_CMD_HWI2C_SetReadModeP1, 32 MDrv_CMD_HWI2C_WriteByteP1, 33 MDrv_CMD_HWI2C_WriteBytesP1, 34 MDrv_CMD_HWI2C_ReadByteP1, 35 MDrv_CMD_HWI2C_ReadBytesP1, 36 MDrv_CMD_HWI2C_SetDbgLevel, 37 MDrv_CMD_HWI2C_GetLibVer, 38 MDrv_CMD_HWI2C_GetStatus, 39 MDrv_CMD_HWI2C_GetInfo, 40 MDrv_CMD_HWI2C_ConfigDelay, 41 MDrv_CMD_HWI2C_SetPowerState 42 } eHWI2CIoctlOpt; 43 44 45 typedef struct _HWI2C_PRIVATE_PARAM_Init 46 { 47 HWI2C_UnitCfg *psCfg; 48 } HWI2C_PRIVATE_PARAM_Init, *PHWI2C_PRIVATE_PARAM_Init; 49 50 typedef struct _HWI2C_PRIVATE_PARAM_GetPortIndex 51 { 52 HWI2C_PORT ePort; 53 MS_U8* pu8Port; 54 } HWI2C_PRIVATE_PARAM_GetPortIndex, *PHWI2C_PRIVATE_PARAM_GetPortIndex; 55 56 typedef struct _HWI2C_PRIVATE_PARAM_SelectPort 57 { 58 HWI2C_PORT ePort; 59 } HWI2C_PRIVATE_PARAM_SelectPort, *PHWI2C_PRIVATE_PARAM_SelectPort; 60 61 typedef struct _HWI2C_PRIVATE_PARAM_SetClk 62 { 63 HWI2C_CLKSEL eClk; 64 } HWI2C_PRIVATE_PARAM_SetClk, *PHWI2C_PRIVATE_PARAM_SetClk; 65 66 typedef struct _HWI2C_PRIVATE_PARAM_SetReadMode 67 { 68 HWI2C_ReadMode eReadMode; 69 } HWI2C_PRIVATE_PARAM_SetReadMode, *PHWI2C_PRIVATE_PARAM_SetReadMode; 70 71 typedef struct _HWI2C_PRIVATE_PARAM_WriteByte 72 { 73 MS_U16 u16SlaveCfg; 74 MS_U8 u8RegAddr; 75 MS_U8 u8Data; 76 MS_BOOL bReturn; 77 } HWI2C_PRIVATE_PARAM_WriteByte, *PHWI2C_PRIVATE_PARAM_WriteByte; 78 79 typedef struct _HWI2C_PRIVATE_PARAM_WriteBytes 80 { 81 MS_U16 u16SlaveCfg; 82 MS_U32 uAddrCnt; 83 MS_U8 *pRegAddr; 84 MS_U32 uSize; 85 MS_U8 *pData; 86 MS_BOOL bReturn; 87 } HWI2C_PRIVATE_PARAM_WriteBytes, *PHWI2C_PRIVATE_PARAM_WriteBytes; 88 89 typedef struct _HWI2C_PRIVATE_PARAM_ReadByte 90 { 91 MS_U16 u16SlaveCfg; 92 MS_U8 u8RegAddr; 93 MS_U8 *pData; 94 MS_BOOL bReturn; 95 } HWI2C_PRIVATE_PARAM_ReadByte, *PHWI2C_PRIVATE_PARAM_ReadByte; 96 97 typedef struct _HWI2C_PRIVATE_PARAM_ReadBytes 98 { 99 MS_U16 u16SlaveCfg; 100 MS_U32 uAddrCnt; 101 MS_U8 *pRegAddr; 102 MS_U32 uSize; 103 MS_U8 *pData; 104 MS_BOOL bReturn; 105 } HWI2C_PRIVATE_PARAM_ReadBytes, *PHWI2C_PRIVATE_PARAM_ReadBytes; 106 107 typedef struct _HWI2C_PRIVATE_PARAM_SelectPort1 108 { 109 HWI2C_PORT ePort; 110 } HWI2C_PRIVATE_PARAM_SelectPort1, *PHWI2C_PRIVATE_PARAM_SelectPort1; 111 112 typedef struct _HWI2C_PRIVATE_PARAM_SetClkP1 113 { 114 HWI2C_CLKSEL eClk; 115 } HWI2C_PRIVATE_PARAM_SetClkP1, *PHWI2C_PRIVATE_PARAM_SetClkP1; 116 117 typedef struct _HWI2C_PRIVATE_PARAM_SetReadModeP1 118 { 119 HWI2C_ReadMode eReadMode; 120 } HWI2C_PRIVATE_PARAM_SetReadModeP1, *PHWI2C_PRIVATE_PARAM_SetReadModeP1; 121 122 typedef struct _HWI2C_PRIVATE_PARAM_WriteByteP1 123 { 124 MS_U16 u16SlaveCfg; 125 MS_U8 u8RegAddr; 126 MS_U8 u8Data; 127 } HWI2C_PRIVATE_PARAM_WriteByteP1, *PHWI2C_PRIVATE_PARAM_WriteByteP1; 128 129 typedef struct _HWI2C_PRIVATE_PARAM_WriteBytesP1 130 { 131 MS_U16 u16SlaveCfg; 132 MS_U32 uAddrCnt; 133 MS_U8 *pRegAddr; 134 MS_U32 uSize; 135 MS_U8 *pData; 136 } HWI2C_PRIVATE_PARAM_WriteBytesP1, *PHWI2C_PRIVATE_PARAM_WriteBytesP1; 137 138 139 typedef struct _HWI2C_PRIVATE_PARAM_ReadByteP1 140 { 141 MS_U16 u16SlaveCfg; 142 MS_U8 u8RegAddr; 143 MS_U8 *pData; 144 } HWI2C_PRIVATE_PARAM_ReadByteP1, *PHWI2C_PRIVATE_PARAM_ReadByteP1; 145 146 typedef struct _HWI2C_PRIVATE_PARAM_ReadBytesP1 147 { 148 MS_U16 u16SlaveCfg; 149 MS_U32 uAddrCnt; 150 MS_U8 *pRegAddr; 151 MS_U32 uSize; 152 MS_U8 *pData; 153 } HWI2C_PRIVATE_PARAM_ReadBytesP1, *PHWI2C_PRIVATE_PARAM_ReadBytesP1; 154 155 typedef struct _HWI2C_PRIVATE_PARAM_SetDbgLevel 156 { 157 HWI2C_DbgLv eLevel; 158 } HWI2C_PRIVATE_PARAM_SetDbgLevel, *PHWI2C_PRIVATE_PARAM_SetDbgLevel; 159 160 typedef struct _HWI2C_PRIVATE_PARAM_GetLibVer 161 { 162 const MSIF_Version **ppVersion; 163 } HWI2C_PRIVATE_PARAM_GetLibVer, *PHWI2C_PRIVATE_PARAM_GetLibVer; 164 165 typedef struct _HWI2C_PRIVATE_PARAM_GetStatus 166 { 167 HWI2C_Status *pStatus; 168 } HWI2C_PRIVATE_PARAM_GetStatus, *PHWI2C_PRIVATE_PARAM_GetStatus; 169 170 #if 0 171 typedef struct _HWI2C_PRIVATE_PARAM_SetPowerState 172 { 173 EN_POWER_MODE u16PowerState; 174 } HWI2C_PRIVATE_PARAM_SetPowerState; 175 #endif 176 #if 1 177 typedef union _HWI2C_PRIVATE_PARAM 178 { 179 HWI2C_PRIVATE_PARAM_Init privateInit; 180 HWI2C_PRIVATE_PARAM_GetPortIndex privateGetPortIndex; 181 HWI2C_PRIVATE_PARAM_SelectPort privateSelectPort; 182 HWI2C_PRIVATE_PARAM_SetClk privateSetClk; 183 HWI2C_PRIVATE_PARAM_SetReadMode privateSetReadMode; 184 HWI2C_PRIVATE_PARAM_WriteByte privateWriteByte; 185 HWI2C_PRIVATE_PARAM_WriteBytes privateWriteBytes; 186 HWI2C_PRIVATE_PARAM_ReadByte privateReadByte; 187 HWI2C_PRIVATE_PARAM_ReadBytes privateReadBytes; 188 HWI2C_PRIVATE_PARAM_SetReadModeP1 privateSetReadModeP1; 189 HWI2C_PRIVATE_PARAM_WriteByteP1 privateWriteByteP1; 190 HWI2C_PRIVATE_PARAM_WriteBytesP1 privateWriteBytesP1; 191 HWI2C_PRIVATE_PARAM_ReadByteP1 privateReadByteP1; 192 HWI2C_PRIVATE_PARAM_ReadBytesP1 privateReadBytesP1; 193 HWI2C_PRIVATE_PARAM_SetDbgLevel privateSetDbgLevel; 194 HWI2C_PRIVATE_PARAM_GetStatus privateGetStatus; 195 //HWI2C_PRIVATE_PARAM_SetPowerState privateSetPowerState; 196 } HWI2C_PRIVATE_PARAM; 197 198 #endif 199 200 //------------------------------------------------------------------------------------------------- 201 // Extern Functions 202 //------------------------------------------------------------------------------------------------- 203 204 ////////////////////////////////////////////////////////////// 205 206 #ifdef __cplusplus 207 } 208 #endif 209 210 #endif // _DRV_HWI2C_V2_H_ 211 212 213