zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/cp/ps/driver/inc/io/drvs_io_keys.h b/cp/ps/driver/inc/io/drvs_io_keys.h
new file mode 100644
index 0000000..ef1a438
--- /dev/null
+++ b/cp/ps/driver/inc/io/drvs_io_keys.h
@@ -0,0 +1,370 @@
+/*******************************************************************************

+ * Copyright (C) 2007, ZTE Corporation.

+ *

+ * File Name:    drvs_iokeys.h

+ * File Mark:

+ * Description:

+ * Others:

+ * Version:       1.0

+ * Author:        geanfeng

+ * Date:          2014-02-11

+ * History 1:

+ *     Date:

+ *     Version:

+ *     Author:

+ *     Modification:

+ * History 2:

+  ********************************************************************************/

+

+#ifndef _DRVS_IOKEYS_H

+#define _DRVS_IOKEYS_H

+

+/****************************************************************************

+* 	                                        Macros

+****************************************************************************/

+#define IOKEYS(x) (1)

+/****************************************************************************

+* 	                                        Types

+****************************************************************************/

+/*IO CTRL Function KEY*/

+typedef enum _T_DRVIO_CTRL_KEY

+{

+// for io dal layer use

+	IOCTL_IODEV_REGISTER_NOTIFY = 2,

+	IOCTL_IODEV_GET_DEV_STATUS,

+	IOCTL_IODEV_WAIT_CONNECT,

+	IOCTL_IODEV_DISALLOW_DISCONNECT,

+	IOCTL_IODEV_ALLOW_DISCONNECT,

+	IOCTL_IODEV_VENDOR = 31,

+//end

+

+	/*ÒÔÏ¿ØÖÆ×ÖÔÚÉ豸Á¬½Óºó²ÅÓÐЧ*/

+

+// for common io device

+

+    IOCTL_IODEV_SET_BLOCKTIME = 0x1000,

+

+// for block device function

+

+	IOCTL_BLKDEV_GET_INFO=0x2000,

+	IOCTL_BLKDEV_EREASE,

+	IOCTL_BLKDEV_GET_STATE,

+

+// for serial device function

+

+	IOCTL_SERIAL_SET_CONFIG=0x3000,

+	IOCTL_SERIAL_UART_SET_CTSRTS,

+	IOCTL_SERIAL_UART_SET_CONFIG,

+

+// for virtual com port

+

+    IOCTL_VCOM_GET_USB_STATUS=0x4000,

+    IOCTL_VCOM_OPEN_ECHO,

+    IOCTL_VCOM_CLOSE_ECHO,

+

+

+// for virtual NIC(Netword Interface Card)

+

+    IOCTL_VNIC_CONNECT=0x5000,

+    IOCTL_VNIC_DISCONNECT,

+

+    IOCTL_VNIC_REG_CBK_XFER_STATISTICS,

+    IOCTL_VNIC_FREE_UNREAD_BUF,

+    IOCTL_VNIC_REG_CBK_NIC_DISABLE,

+    IOCTL_VNIC_GET_USB_STATUS,

+    IOCTL_VNIC_REG_CBK_NIC_ENABLE,

+    IOCTL_VNIC_GET_VNIC_STATE,

+    IOCTL_VNIC_SET_ECM_TPYE,

+    IOCTL_VNIC_SET_NET_DEV,

+

+// for io voice

+

+    IOCTL_VOICE_SET_SAMPLE    = 0x6000,          /*Set sample.param:T_ZDrvVoice_Sample*/

+    IOCTL_VOICE_SET_INPUT_PATH,      /*Set input path.  param:T_ZDrv_VoiceInputPath*/

+    IOCTL_VOICE_SET_OUTPUT_PATH,     /*Set output path.  param:T_ZDrv_VoiceOutputPath*/

+    IOCTL_VOICE_SET_INPUT_VOL,       /*Set input volume. param:T_ZDrvVoice_InputVolLevel*/

+    IOCTL_VOICE_SET_OUTPUT_VOL,      /*Set output volume. param:T_ZDrvVoice_OutputVolLevel*/

+    IOCTL_VOICE_ENABLE,              /*enable voice  channel.param:none*/

+    IOCTL_VOICE_DISABLE,             /*disable voice channel.param:none*/

+

+    IOCTL_VOICE_SET_VT_START,        /*Start voice for VideoTelephone. param:T_ZDrvVoice_AmrInfoPtr*/

+    IOCTL_VOICE_SET_VT_STOP,         /*Stop voice for VideoTelephone. param:NULL*/

+    IOCTL_VOICE_SET_MUTE,            /*Set voice mute or not. param:T_ZDrvVoice_MuteInfo*/

+    IOCTL_VOICE_RECORD_START,        /*record start.param:T_ZDrvRcd_InfoParam*/

+    IOCTL_VOICE_RECORD_STOP,         /*record stop.param:none*/

+    IOCTL_VOICE_RECORD_DATA_READ,    /*read record data. param:T_ZDrvVoice_BufInfo*/

+    IOCTL_VOICE_TEST_LOOPBACK,       /*Set voice loop or not. param:T_ZDrvVoice_Switch*/

+    IOCTL_VOICE_RCD_FREE_BUFF,       /*free record buffer. param:VOID*/

+

+    IOCTL_VOICE_CONFIG_PARAM,             /*config volte param .param:T_ZDrvVp_Cfg, for volte*/

+    IOCTL_VOICE_READ_START,             /* volte read start .param:VOID, for volte*/

+    IOCTL_VOICE_READ_STOP,             /* volte read stop .param:VOID, for volte*/

+    IOCTL_VOICE_WRITE_START,             /* volte write start .param:VOID, for volte*/

+    IOCTL_VOICE_WRITE_STOP,             /* volte write stop .param:VOID, for volte*/

+    IOCTL_VOICE_MODE_CONFIG,

+

+// for audio

+    IOCTL_AUDIO_RECORD_START,      /* start record,param:T_ZDrvRcd_InfoParam */

+    IOCTL_AUDIO_RECORD_STOP,       /* stop record,param:none */

+    IOCTL_AUDIO_SET_RECORD_PATH,   /* set record input path,param:T_ZDrv_CodecInputPath */

+    IOCTL_AUDIO_SET_RECORD_VOL,    /* set record volum,param:T_ZDrvAudio_InputVolLevel */

+    IOCTL_AUDIO_RCD_FREE_BUFF,     /* free record buffer,param:VOID * */

+    IOCTL_AUDIO_SET_RECORD_SAMPLE,  /* Set audio codec config for RECORD, SAMPLE param:T_ZDrvAudio_SampleRate  */

+    IOCTL_AUDIO_SET_SAMPLE,            /* Set audio codec config for PLAY, SAMPLE param:T_ZDrvAudio_SampleRate */

+    IOCTL_AUDIO_SET_BANLANCE,      /* set balance,param:T_ZDrvAudio_Banlance */

+    IOCTL_AUDIO_SET_OUTPUT_PATH,   /* Set OUTPUT path for play ,param:T_ZDrv_AudioOutputPath */

+    IOCTL_AUDIO_SET_OUTPUT_VOL,    /* Set OUTPUT volume for play ,param:T_ZDrvAudio_OutputVolLevel */

+    IOCTL_AUDIO_SET_EQMODE,        /* set EQmode,param:T_ZDrvAUDIO_EQMODE */

+    IOCTL_AUDIO_ENABLE_3DEFFECT,   /* set 3deffect,param:T_ZDrvAudio_3DEFFECT */

+    IOCTL_AUDIO_SET_MUTE,          /* set mute,param:BOOL */

+    IOCTL_AUDIO_PLAY_START,        /* start  audio play ,param:T_ZDrvAudio_PlayParam */

+    IOCTL_AUDIO_PLAY_STOP,         /* stop  audio play,param:none */

+    IOCTL_AUDIO_PLAY_PAUSE,        /* pause  audio play,param:none */

+    IOCTL_AUDIO_PLAY_RESUME,       /* resume  audio play ,param:none */

+    IOCTL_AUDIO_GET_PLAY_INFO,     /* get the audio play info ,param:T_ZDrvAudio_PlayInfo */

+    IOCTL_AUDIO_GET_BUFFER,        /* get the audio buffer ,param:T_ZDrvAudio_BufInfo */

+    IOCTL_AUDIO_SET_CALLBACK,      /* set audio callback func,param:T_ZDrvAudio_CallbackFunc */

+

+//for earpiece

+	IOCTL_EARP_SET_CALLBACK 	,  /*Set callback function, it is used to register the callback function which will send the earpiece switch status to user.*/

+	IOCTL_EARP_GET_PLUG_STATUS	 ,	/*Get earpiece plug status, replace the read function.*/

+	IOCTL_EARP_SET_HOOK_ENABLE,

+	IOCTL_EARP_SET_HOOK_DISABLE,

+

+// for io led

+    IOCTL_LED_WAN = 0x7000,

+    IOCTL_LED_LAN,

+    IOCTL_LED_SMS,

+    IOCTL_LED_BATTERY,

+    IOCTL_LED_TRAFFIC,

+    IOCTL_LED_SLEEP,

+    IOCTL_LED_LEFT_1,

+    IOCTL_LED_LEFT_2,

+    IOCTL_LED_LEFT_3,

+    IOCTL_LED_LEFT_4,

+    IOCTL_LED_1_2_ON,

+    IOCTL_LED_1_2_3_ON,

+    IOCTL_LED_ALL_ON,

+    IOCTL_LED_ALL_OFF,

+    IOCTL_LED_CTRL_MOD,

+    IOCTL_LED_LGP,

+

+// for rtc

+    IOCTL_PMIC_RTC_SET_TIME = 0x8000,

+    IOCTL_PMIC_RTC_GET_TIME,

+    IOCTL_PMIC_RTC_SET_ALARM,

+    IOCTL_PMIC_RTC_GET_ALARM,

+    IOCTL_PMIC_RTC_ENABLE_ALARM,

+    IOCTL_PMIC_RTC_ENABLE_CYCLE,

+    IOCTL_PMIC_RTC_REGIS_CYCLE_NOTIFY,

+    IOCTL_PMIC_RTC_REGIS_ALARM_NOTIFY,

+    IOCTL_PMIC_RTC_ENABLE_TIMER,          //Éètimerʱ¼ä, 0¹Ø±Õ

+    IOCTL_PMIC_RTC_REGIS_TIMER_NOTIFY,    //Éètimerʱ¼ä»Øµ÷º¯Êý

+    IOCTL_PMIC_RTC_GET_TIMER_REMAIN,      //»ñÈ¡timerÊ£Óàʱ¼ä

+    IOCTL_PMIC_RTC_CYCLE_INT_SEL,

+

+

+//for charger

+    IOCTL_CHARGER_SET_CALLBACK = 0x9000,

+    IOCTL_CHARGER_GET_VOLTAGE,

+    IOCTL_CHARGER_GET_CHG_STATUS,

+    IOCTL_CHARGER_GET_DISCHG_STATUS,

+    IOCTL_CHARGER_TEMP_DETECT,

+    IOCTL_CHARGER_CHG_SWITCH,

+    IOCTL_CHARGER_DISCHG_SWITCH,

+    IOCTL_CHARGER_QUICK_START_FLAG,

+    IOCTL_CHARGER_GET_CHGTYPE,

+    IOCTL_CHARGER_BOOST_ON,

+    IOCTL_CHARGER_RELEASE_BUTTON,

+    IOCTL_CHARGER_GET_ELECQUAN,

+    IOCTL_CHARGER_DEBUG,

+    

+

+    IOCTL_CHARGER_SET_OTG,

+    IOCTL_CHARGER_SET_SHIPPING_MODE,

+    IOCTL_CHARGER_GET_ERROR_CODE,

+    IOCTL_CHARGER_SET_STOP_CURRENT,

+    IOCTL_CHARGER_GET_STOP_REASON,

+    IOCTL_CHARGER_GET_USB_STATUS,

+

+//for LCD

+    IOCTL_LCD_UPDATE = 0xA000,

+    IOCTL_LCD_SLEEP,

+    IOCTL_LCD_BACKLIGHT,

+    IOCTL_LCD_BRIGHTNESS,

+    IOCTL_LCD_GET_INFO,

+	IOCTL_LCD_VOU_WBUPDATE,

+//for spi

+	IOCTL_SSP_SET_XFER_WIDTH,

+	IOCTL_SSP_SET_CHG_FREQ,

+	IOCTL_SSP_SET_MSMODE,

+	IOCTL_SSP_SET_TXTHES,

+	IOCTL_SSP_SET_RXTHES,

+

+//for FM

+	IOCTL_FM_SET_OUTPATH = 0xB000,

+	IOCTL_FM_SET_VOL,

+	IOCTL_FM_SET_SOUNDMODE,

+	IOCTL_FM_SET_FREQ,

+	IOCTL_FM_SET_SCANNEXT,

+	IOCTL_FM_GET_CURFREQ,

+	IOCTL_FM_GET_CURVOL,

+

+//for VIB

+	IOCTL_VIB_ENABLE = 0xC000,

+	IOCTL_VIB_CHECKSTA,

+

+/* for Keypad */

+    IOCTL_KPD_SET_BLG_ON = 0xD000,

+    IOCTL_KPD_SET_BLG_OFF,

+    IOCTL_KPD_SET_BLG_BRIGHTNESS,

+    IOCTL_KPD_GET_BLG_STATUS,

+    IOCTL_KPD_GET_KEYS_STATUS,

+    IOCTL_KPD_GET_HEADPHONE_STATE,

+

+//for FLASHLIGHT

+	IOCTL_FLASHLIGHT_ENABLE = 0xF000,

+	IOCTL_FLASHLIGHT_CHECKSTA,

+//for CAMERA

+	IOCTL_CAM_SENSOR_GET_INFO = 0x10000,

+	IOCTL_CAM_SENSOR_SELECT,

+	IOCTL_CAM_SET_ZOOM,

+	IOCTL_CAM_SET_IMG_SIZE,

+	IOCTL_CAM_SET_EFFECT,

+	IOCTL_CAM_SET_MIRRORFLIP,

+	IOCTL_CAM_SET_BRIGHTNESS,

+	IOCTL_CAM_SET_CONTRAST,

+	IOCTL_CAM_SET_SATURATION,

+	IOCTL_CAM_SET_WHITE_BALANCE,

+	IOCTL_CAM_SET_LIGHTMODE,

+	IOCTL_CAM_SET_NIGHTMODE,

+	IOCTL_CAM_SET_FRAMERATE,

+	IOCTL_CAM_GET_ONEFRAME,

+	IOCTL_CAM_FREE_FRAME_BUFFER,

+//	IOCTL_CAM_SET_EXPOSURE_COMPENSATION,

+	IOCTL_CAM_SET_ANTIFLICKER,

+	IOCTL_CAM_START,

+	IOCTL_CAM_STOP,

+	IOCTL_UNDEFINE=0x7FFFFFFF

+

+} T_DRVIO_CTRL_KEY;

+

+//===================IO DEV===============

+

+#if IOKEYS(IOCTL_VNIC_GET_VNIC_STATE)

+/*VNIC State*/

+typedef enum _T_DRVIO_VNIC_STATE

+{

+    DRVIO_VNIC_DISABLE = 0x0,	//½ûÓÃ״̬

+    DRVIO_VNIC_READY = 0x1,		//δÁ¬½Ó£¬¿É²¦ºÅ

+    DRVIO_VNIC_CONNECT = 0x2,	//ÒÑÁ¬½Ó

+    DRVIO_VNIC_ERR = 0xff,		//Ò쳣״̬

+}

+T_DRVIO_VNIC_STATE;

+#endif

+

+#if IOKEYS(IOCTL_IODEV_GET_DEV_STATUS)

+/*Device Status*/

+typedef struct _T_DRVIO_DEV_STATUS

+{

+	UINT32 CONNECT: 1;

+	UINT32 reserved:31;

+}

+T_DRVIO_DEV_STATUS;

+#endif

+

+#if IOKEYS(IOCTL_IODEV_REGISTER_NOTIFY)

+/*Global Event*/

+typedef enum _T_DRVIO_EVENT

+{

+    DRVIO_EV_CONNECT = 2,

+    DRVIO_EV_PRE_DISCONNECT,

+    DRVIO_EV_DISCONNECT,

+} T_DRVIO_EVENT;

+

+/*Device Notify*/

+typedef struct _T_ZDrvIO_DevNotify

+{

+    VOID ( *notify_fn )(VOID *privData, T_DRVIO_EVENT  event);

+    VOID *privData;

+}

+T_ZDrvIO_DevNotify;

+#endif

+

+//===================block device===============

+

+#if IOKEYS(IOCTL_BLKDEV_GET_INFO)

+typedef struct  _T_BlkDev_Info

+{

+    UINT32 blkSize;

+    UINT32 blkCnt;

+}T_BlkDev_Info;

+#endif

+

+

+#if IOKEYS(IOCTL_BLKDEV_EREASE)

+typedef struct  _T_BlkDev_EraseInfo

+{

+    UINT32 startBlk;

+    UINT32 blkCnt;

+}T_BlkDev_EraseInfo;

+#endif

+

+

+#if IOKEYS(IOCTL_SERIAL_SET_CONFIG)

+typedef struct  _T_UartDev_ConfigInfo

+{

+	UINT8  dataBits;

+	UINT8  stopBits;

+	UINT8  parity;

+	UINT32	baudrate;

+}T_UartDev_ConfigInfo;

+#endif

+

+

+

+typedef union

+{

+    UINT8 nodeInBytes[8];

+    struct

+    {

+        UINT8* 	pNodeBuf;

+        UINT32 	uiNodeBufLen;

+    }

+    node;

+}

+T_ZDrv_BufNode;

+

+typedef  T_ZDrv_BufNode T_ZDrvVcom_BufNode;

+

+typedef unsigned long long  UINT64;

+

+#if IOKEYS(IOCTL_VNIC_REG_CBK_XFER_STATISTICS)

+typedef struct  _T_ZDrvVnic_XferStatistics

+{

+    UINT64 TxOkCnt;

+    UINT64 RxOkCnt;

+    UINT64 TxErrCnt;

+    UINT64 RxErrCnt;

+    UINT64 TxOverFlowCnt;

+    UINT64 RxOverFlowCnt;

+}

+T_ZDrvVnic_XferStatistics;

+

+typedef  T_ZDrvVnic_XferStatistics* (* VnicCbk_XferStatistics) (VOID);

+#endif

+

+

+#if IOKEYS(IOCTL_VNIC_REG_CBK_NIC_DISABLE)

+typedef  VOID (* VnicCbk_Disable) (VOID*privData);

+#endif

+

+

+#if IOKEYS(IOCTL_VNIC_REG_CBK_NIC_ENABLE)

+typedef  VOID (* VnicCbk_Enable) (VOID*privData);

+#endif

+

+//typedef  UINT32  (* VnicCbk_GetSpeed) (VOID);

+

+#endif/*_DRVS_IOKEYS_H*/

+