blob: ef1a438b7f67d50049bf3d9322d28789c846d650 [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001/*******************************************************************************
2 * Copyright (C) 2007, ZTE Corporation.
3 *
4 * File Name: drvs_iokeys.h
5 * File Mark:
6 * Description:
7 * Others:
8 * Version: 1.0
9 * Author: geanfeng
10 * Date: 2014-02-11
11 * History 1:
12 * Date:
13 * Version:
14 * Author:
15 * Modification:
16 * History 2:
17 ********************************************************************************/
18
19#ifndef _DRVS_IOKEYS_H
20#define _DRVS_IOKEYS_H
21
22/****************************************************************************
23* Macros
24****************************************************************************/
25#define IOKEYS(x) (1)
26/****************************************************************************
27* Types
28****************************************************************************/
29/*IO CTRL Function KEY*/
30typedef enum _T_DRVIO_CTRL_KEY
31{
32// for io dal layer use
33 IOCTL_IODEV_REGISTER_NOTIFY = 2,
34 IOCTL_IODEV_GET_DEV_STATUS,
35 IOCTL_IODEV_WAIT_CONNECT,
36 IOCTL_IODEV_DISALLOW_DISCONNECT,
37 IOCTL_IODEV_ALLOW_DISCONNECT,
38 IOCTL_IODEV_VENDOR = 31,
39//end
40
41 /*ÒÔÏ¿ØÖÆ×ÖÔÚÉ豸Á¬½Óºó²ÅÓÐЧ*/
42
43// for common io device
44
45 IOCTL_IODEV_SET_BLOCKTIME = 0x1000,
46
47// for block device function
48
49 IOCTL_BLKDEV_GET_INFO=0x2000,
50 IOCTL_BLKDEV_EREASE,
51 IOCTL_BLKDEV_GET_STATE,
52
53// for serial device function
54
55 IOCTL_SERIAL_SET_CONFIG=0x3000,
56 IOCTL_SERIAL_UART_SET_CTSRTS,
57 IOCTL_SERIAL_UART_SET_CONFIG,
58
59// for virtual com port
60
61 IOCTL_VCOM_GET_USB_STATUS=0x4000,
62 IOCTL_VCOM_OPEN_ECHO,
63 IOCTL_VCOM_CLOSE_ECHO,
64
65
66// for virtual NIC(Netword Interface Card)
67
68 IOCTL_VNIC_CONNECT=0x5000,
69 IOCTL_VNIC_DISCONNECT,
70
71 IOCTL_VNIC_REG_CBK_XFER_STATISTICS,
72 IOCTL_VNIC_FREE_UNREAD_BUF,
73 IOCTL_VNIC_REG_CBK_NIC_DISABLE,
74 IOCTL_VNIC_GET_USB_STATUS,
75 IOCTL_VNIC_REG_CBK_NIC_ENABLE,
76 IOCTL_VNIC_GET_VNIC_STATE,
77 IOCTL_VNIC_SET_ECM_TPYE,
78 IOCTL_VNIC_SET_NET_DEV,
79
80// for io voice
81
82 IOCTL_VOICE_SET_SAMPLE = 0x6000, /*Set sample.param:T_ZDrvVoice_Sample*/
83 IOCTL_VOICE_SET_INPUT_PATH, /*Set input path. param:T_ZDrv_VoiceInputPath*/
84 IOCTL_VOICE_SET_OUTPUT_PATH, /*Set output path. param:T_ZDrv_VoiceOutputPath*/
85 IOCTL_VOICE_SET_INPUT_VOL, /*Set input volume. param:T_ZDrvVoice_InputVolLevel*/
86 IOCTL_VOICE_SET_OUTPUT_VOL, /*Set output volume. param:T_ZDrvVoice_OutputVolLevel*/
87 IOCTL_VOICE_ENABLE, /*enable voice channel.param:none*/
88 IOCTL_VOICE_DISABLE, /*disable voice channel.param:none*/
89
90 IOCTL_VOICE_SET_VT_START, /*Start voice for VideoTelephone. param:T_ZDrvVoice_AmrInfoPtr*/
91 IOCTL_VOICE_SET_VT_STOP, /*Stop voice for VideoTelephone. param:NULL*/
92 IOCTL_VOICE_SET_MUTE, /*Set voice mute or not. param:T_ZDrvVoice_MuteInfo*/
93 IOCTL_VOICE_RECORD_START, /*record start.param:T_ZDrvRcd_InfoParam*/
94 IOCTL_VOICE_RECORD_STOP, /*record stop.param:none*/
95 IOCTL_VOICE_RECORD_DATA_READ, /*read record data. param:T_ZDrvVoice_BufInfo*/
96 IOCTL_VOICE_TEST_LOOPBACK, /*Set voice loop or not. param:T_ZDrvVoice_Switch*/
97 IOCTL_VOICE_RCD_FREE_BUFF, /*free record buffer. param:VOID*/
98
99 IOCTL_VOICE_CONFIG_PARAM, /*config volte param .param:T_ZDrvVp_Cfg, for volte*/
100 IOCTL_VOICE_READ_START, /* volte read start .param:VOID, for volte*/
101 IOCTL_VOICE_READ_STOP, /* volte read stop .param:VOID, for volte*/
102 IOCTL_VOICE_WRITE_START, /* volte write start .param:VOID, for volte*/
103 IOCTL_VOICE_WRITE_STOP, /* volte write stop .param:VOID, for volte*/
104 IOCTL_VOICE_MODE_CONFIG,
105
106// for audio
107 IOCTL_AUDIO_RECORD_START, /* start record,param:T_ZDrvRcd_InfoParam */
108 IOCTL_AUDIO_RECORD_STOP, /* stop record,param:none */
109 IOCTL_AUDIO_SET_RECORD_PATH, /* set record input path,param:T_ZDrv_CodecInputPath */
110 IOCTL_AUDIO_SET_RECORD_VOL, /* set record volum,param:T_ZDrvAudio_InputVolLevel */
111 IOCTL_AUDIO_RCD_FREE_BUFF, /* free record buffer,param:VOID * */
112 IOCTL_AUDIO_SET_RECORD_SAMPLE, /* Set audio codec config for RECORD, SAMPLE param:T_ZDrvAudio_SampleRate */
113 IOCTL_AUDIO_SET_SAMPLE, /* Set audio codec config for PLAY, SAMPLE param:T_ZDrvAudio_SampleRate */
114 IOCTL_AUDIO_SET_BANLANCE, /* set balance,param:T_ZDrvAudio_Banlance */
115 IOCTL_AUDIO_SET_OUTPUT_PATH, /* Set OUTPUT path for play ,param:T_ZDrv_AudioOutputPath */
116 IOCTL_AUDIO_SET_OUTPUT_VOL, /* Set OUTPUT volume for play ,param:T_ZDrvAudio_OutputVolLevel */
117 IOCTL_AUDIO_SET_EQMODE, /* set EQmode,param:T_ZDrvAUDIO_EQMODE */
118 IOCTL_AUDIO_ENABLE_3DEFFECT, /* set 3deffect,param:T_ZDrvAudio_3DEFFECT */
119 IOCTL_AUDIO_SET_MUTE, /* set mute,param:BOOL */
120 IOCTL_AUDIO_PLAY_START, /* start audio play ,param:T_ZDrvAudio_PlayParam */
121 IOCTL_AUDIO_PLAY_STOP, /* stop audio play,param:none */
122 IOCTL_AUDIO_PLAY_PAUSE, /* pause audio play,param:none */
123 IOCTL_AUDIO_PLAY_RESUME, /* resume audio play ,param:none */
124 IOCTL_AUDIO_GET_PLAY_INFO, /* get the audio play info ,param:T_ZDrvAudio_PlayInfo */
125 IOCTL_AUDIO_GET_BUFFER, /* get the audio buffer ,param:T_ZDrvAudio_BufInfo */
126 IOCTL_AUDIO_SET_CALLBACK, /* set audio callback func,param:T_ZDrvAudio_CallbackFunc */
127
128//for earpiece
129 IOCTL_EARP_SET_CALLBACK , /*Set callback function, it is used to register the callback function which will send the earpiece switch status to user.*/
130 IOCTL_EARP_GET_PLUG_STATUS , /*Get earpiece plug status, replace the read function.*/
131 IOCTL_EARP_SET_HOOK_ENABLE,
132 IOCTL_EARP_SET_HOOK_DISABLE,
133
134// for io led
135 IOCTL_LED_WAN = 0x7000,
136 IOCTL_LED_LAN,
137 IOCTL_LED_SMS,
138 IOCTL_LED_BATTERY,
139 IOCTL_LED_TRAFFIC,
140 IOCTL_LED_SLEEP,
141 IOCTL_LED_LEFT_1,
142 IOCTL_LED_LEFT_2,
143 IOCTL_LED_LEFT_3,
144 IOCTL_LED_LEFT_4,
145 IOCTL_LED_1_2_ON,
146 IOCTL_LED_1_2_3_ON,
147 IOCTL_LED_ALL_ON,
148 IOCTL_LED_ALL_OFF,
149 IOCTL_LED_CTRL_MOD,
150 IOCTL_LED_LGP,
151
152// for rtc
153 IOCTL_PMIC_RTC_SET_TIME = 0x8000,
154 IOCTL_PMIC_RTC_GET_TIME,
155 IOCTL_PMIC_RTC_SET_ALARM,
156 IOCTL_PMIC_RTC_GET_ALARM,
157 IOCTL_PMIC_RTC_ENABLE_ALARM,
158 IOCTL_PMIC_RTC_ENABLE_CYCLE,
159 IOCTL_PMIC_RTC_REGIS_CYCLE_NOTIFY,
160 IOCTL_PMIC_RTC_REGIS_ALARM_NOTIFY,
161 IOCTL_PMIC_RTC_ENABLE_TIMER, //Éètimerʱ¼ä, 0¹Ø±Õ
162 IOCTL_PMIC_RTC_REGIS_TIMER_NOTIFY, //Éètimerʱ¼ä»Øµ÷º¯Êý
163 IOCTL_PMIC_RTC_GET_TIMER_REMAIN, //»ñÈ¡timerÊ£Óàʱ¼ä
164 IOCTL_PMIC_RTC_CYCLE_INT_SEL,
165
166
167//for charger
168 IOCTL_CHARGER_SET_CALLBACK = 0x9000,
169 IOCTL_CHARGER_GET_VOLTAGE,
170 IOCTL_CHARGER_GET_CHG_STATUS,
171 IOCTL_CHARGER_GET_DISCHG_STATUS,
172 IOCTL_CHARGER_TEMP_DETECT,
173 IOCTL_CHARGER_CHG_SWITCH,
174 IOCTL_CHARGER_DISCHG_SWITCH,
175 IOCTL_CHARGER_QUICK_START_FLAG,
176 IOCTL_CHARGER_GET_CHGTYPE,
177 IOCTL_CHARGER_BOOST_ON,
178 IOCTL_CHARGER_RELEASE_BUTTON,
179 IOCTL_CHARGER_GET_ELECQUAN,
180 IOCTL_CHARGER_DEBUG,
181
182
183 IOCTL_CHARGER_SET_OTG,
184 IOCTL_CHARGER_SET_SHIPPING_MODE,
185 IOCTL_CHARGER_GET_ERROR_CODE,
186 IOCTL_CHARGER_SET_STOP_CURRENT,
187 IOCTL_CHARGER_GET_STOP_REASON,
188 IOCTL_CHARGER_GET_USB_STATUS,
189
190//for LCD
191 IOCTL_LCD_UPDATE = 0xA000,
192 IOCTL_LCD_SLEEP,
193 IOCTL_LCD_BACKLIGHT,
194 IOCTL_LCD_BRIGHTNESS,
195 IOCTL_LCD_GET_INFO,
196 IOCTL_LCD_VOU_WBUPDATE,
197//for spi
198 IOCTL_SSP_SET_XFER_WIDTH,
199 IOCTL_SSP_SET_CHG_FREQ,
200 IOCTL_SSP_SET_MSMODE,
201 IOCTL_SSP_SET_TXTHES,
202 IOCTL_SSP_SET_RXTHES,
203
204//for FM
205 IOCTL_FM_SET_OUTPATH = 0xB000,
206 IOCTL_FM_SET_VOL,
207 IOCTL_FM_SET_SOUNDMODE,
208 IOCTL_FM_SET_FREQ,
209 IOCTL_FM_SET_SCANNEXT,
210 IOCTL_FM_GET_CURFREQ,
211 IOCTL_FM_GET_CURVOL,
212
213//for VIB
214 IOCTL_VIB_ENABLE = 0xC000,
215 IOCTL_VIB_CHECKSTA,
216
217/* for Keypad */
218 IOCTL_KPD_SET_BLG_ON = 0xD000,
219 IOCTL_KPD_SET_BLG_OFF,
220 IOCTL_KPD_SET_BLG_BRIGHTNESS,
221 IOCTL_KPD_GET_BLG_STATUS,
222 IOCTL_KPD_GET_KEYS_STATUS,
223 IOCTL_KPD_GET_HEADPHONE_STATE,
224
225//for FLASHLIGHT
226 IOCTL_FLASHLIGHT_ENABLE = 0xF000,
227 IOCTL_FLASHLIGHT_CHECKSTA,
228//for CAMERA
229 IOCTL_CAM_SENSOR_GET_INFO = 0x10000,
230 IOCTL_CAM_SENSOR_SELECT,
231 IOCTL_CAM_SET_ZOOM,
232 IOCTL_CAM_SET_IMG_SIZE,
233 IOCTL_CAM_SET_EFFECT,
234 IOCTL_CAM_SET_MIRRORFLIP,
235 IOCTL_CAM_SET_BRIGHTNESS,
236 IOCTL_CAM_SET_CONTRAST,
237 IOCTL_CAM_SET_SATURATION,
238 IOCTL_CAM_SET_WHITE_BALANCE,
239 IOCTL_CAM_SET_LIGHTMODE,
240 IOCTL_CAM_SET_NIGHTMODE,
241 IOCTL_CAM_SET_FRAMERATE,
242 IOCTL_CAM_GET_ONEFRAME,
243 IOCTL_CAM_FREE_FRAME_BUFFER,
244// IOCTL_CAM_SET_EXPOSURE_COMPENSATION,
245 IOCTL_CAM_SET_ANTIFLICKER,
246 IOCTL_CAM_START,
247 IOCTL_CAM_STOP,
248 IOCTL_UNDEFINE=0x7FFFFFFF
249
250} T_DRVIO_CTRL_KEY;
251
252//===================IO DEV===============
253
254#if IOKEYS(IOCTL_VNIC_GET_VNIC_STATE)
255/*VNIC State*/
256typedef enum _T_DRVIO_VNIC_STATE
257{
258 DRVIO_VNIC_DISABLE = 0x0, //½ûÓÃ״̬
259 DRVIO_VNIC_READY = 0x1, //δÁ¬½Ó£¬¿É²¦ºÅ
260 DRVIO_VNIC_CONNECT = 0x2, //ÒÑÁ¬½Ó
261 DRVIO_VNIC_ERR = 0xff, //Ò쳣״̬
262}
263T_DRVIO_VNIC_STATE;
264#endif
265
266#if IOKEYS(IOCTL_IODEV_GET_DEV_STATUS)
267/*Device Status*/
268typedef struct _T_DRVIO_DEV_STATUS
269{
270 UINT32 CONNECT: 1;
271 UINT32 reserved:31;
272}
273T_DRVIO_DEV_STATUS;
274#endif
275
276#if IOKEYS(IOCTL_IODEV_REGISTER_NOTIFY)
277/*Global Event*/
278typedef enum _T_DRVIO_EVENT
279{
280 DRVIO_EV_CONNECT = 2,
281 DRVIO_EV_PRE_DISCONNECT,
282 DRVIO_EV_DISCONNECT,
283} T_DRVIO_EVENT;
284
285/*Device Notify*/
286typedef struct _T_ZDrvIO_DevNotify
287{
288 VOID ( *notify_fn )(VOID *privData, T_DRVIO_EVENT event);
289 VOID *privData;
290}
291T_ZDrvIO_DevNotify;
292#endif
293
294//===================block device===============
295
296#if IOKEYS(IOCTL_BLKDEV_GET_INFO)
297typedef struct _T_BlkDev_Info
298{
299 UINT32 blkSize;
300 UINT32 blkCnt;
301}T_BlkDev_Info;
302#endif
303
304
305#if IOKEYS(IOCTL_BLKDEV_EREASE)
306typedef struct _T_BlkDev_EraseInfo
307{
308 UINT32 startBlk;
309 UINT32 blkCnt;
310}T_BlkDev_EraseInfo;
311#endif
312
313
314#if IOKEYS(IOCTL_SERIAL_SET_CONFIG)
315typedef struct _T_UartDev_ConfigInfo
316{
317 UINT8 dataBits;
318 UINT8 stopBits;
319 UINT8 parity;
320 UINT32 baudrate;
321}T_UartDev_ConfigInfo;
322#endif
323
324
325
326typedef union
327{
328 UINT8 nodeInBytes[8];
329 struct
330 {
331 UINT8* pNodeBuf;
332 UINT32 uiNodeBufLen;
333 }
334 node;
335}
336T_ZDrv_BufNode;
337
338typedef T_ZDrv_BufNode T_ZDrvVcom_BufNode;
339
340typedef unsigned long long UINT64;
341
342#if IOKEYS(IOCTL_VNIC_REG_CBK_XFER_STATISTICS)
343typedef struct _T_ZDrvVnic_XferStatistics
344{
345 UINT64 TxOkCnt;
346 UINT64 RxOkCnt;
347 UINT64 TxErrCnt;
348 UINT64 RxErrCnt;
349 UINT64 TxOverFlowCnt;
350 UINT64 RxOverFlowCnt;
351}
352T_ZDrvVnic_XferStatistics;
353
354typedef T_ZDrvVnic_XferStatistics* (* VnicCbk_XferStatistics) (VOID);
355#endif
356
357
358#if IOKEYS(IOCTL_VNIC_REG_CBK_NIC_DISABLE)
359typedef VOID (* VnicCbk_Disable) (VOID*privData);
360#endif
361
362
363#if IOKEYS(IOCTL_VNIC_REG_CBK_NIC_ENABLE)
364typedef VOID (* VnicCbk_Enable) (VOID*privData);
365#endif
366
367//typedef UINT32 (* VnicCbk_GetSpeed) (VOID);
368
369#endif/*_DRVS_IOKEYS_H*/
370