xref: /utopia/UTPA2-700.0.x/mxlib/include/drvHWI2C_v2.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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 #include "UFO.h"
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 #if defined(UFO_PUBLIC_HEADER_212) || defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_500) || defined(UFO_PUBLIC_HEADER_500_3)
45 typedef struct DLL_PACKED _HWI2C_PRIVATE_PARAM_Init
46 {
47    HWI2C_UnitCfg *psCfg;
48 } HWI2C_PRIVATE_PARAM_Init, *PHWI2C_PRIVATE_PARAM_Init;
49 
50 typedef struct DLL_PACKED _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 DLL_PACKED _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 DLL_PACKED _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 DLL_PACKED _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 DLL_PACKED _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 DLL_PACKED _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 DLL_PACKED _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 DLL_PACKED _HWI2C_PRIVATE_PARAM_GetLibVer
161 {
162    const MSIF_Version **ppVersion;
163 } HWI2C_PRIVATE_PARAM_GetLibVer, *PHWI2C_PRIVATE_PARAM_GetLibVer;
164 
165 typedef struct DLL_PACKED _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 #endif
198 
199 #endif
200 
201 //-------------------------------------------------------------------------------------------------
202 // Extern Functions
203 //-------------------------------------------------------------------------------------------------
204 
205 //////////////////////////////////////////////////////////////
206 
207 #ifdef __cplusplus
208 }
209 #endif
210 
211 #endif // _DRV_HWI2C_V2_H_
212 
213 
214