zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/cp/ps/driver/inc/misc/drvs_cam.h b/cp/ps/driver/inc/misc/drvs_cam.h
new file mode 100644
index 0000000..5c533a9
--- /dev/null
+++ b/cp/ps/driver/inc/misc/drvs_cam.h
@@ -0,0 +1,351 @@
+/*******************************************************************************

+ * Copyright by ZTE Corporation.

+ *

+ * File Name:    

+ * File Mark:    

+ * Description:  

+ * Others:        

+ * Version:       V1.0

+ * Author:        wuhui

+ * Date:          2016-9-6

+ * History 1:      

+ *     Date: 

+ *     Version:

+ *     Author: 

+ *     Modification:  

+ * History 2: 

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

+

+#ifndef _DRVS_CAM_H

+#define _DRVS_CAM_H

+

+

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

+* 	                                        Include files

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

+#include "drvs_general.h"

+

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

+* 	                                        Macros

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

+//#define ZDRV_DEV_CAMERA    "camera"       /* device name of camera */

+

+typedef UINT32 PhyAddr;

+typedef UINT8 *  T_HalCam_Buff_Addr;

+

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

+* 	                                        Types

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

+typedef enum

+{

+	HAL_CAM_BUF_FREE= 0,	/* Buffer isn't full filled */

+	HAL_CAM_BUF_READY= 1,

+	HAL_CAM_BUF_BUSY= 2,

+	MAX_HAL_CAM_BUF_FLAG =3

+}T_HalCam_EBufFlag;

+#if defined(_USE_RAW_BUFFER)

+typedef struct

+{

+	T_HalCam_Buff_Addr	bufaddr;

+	T_HalCam_EBufFlag	bufflag;

+} T_HalSensor_Buff;

+#endif

+/* sensors */

+typedef enum

+{

+	SENSOR_MAIN,	   /* main sensor */

+	SENSOR_SUB, 	   /* sub sensor */

+	MAX_SENSOR_ID

+} T_ZDrv_SensorId;

+typedef enum

+{

+    //SENSOR_OV9656,

+    //SENSOR_OV7670,

+    //SENSOR_MT9D113,

+    //SENSOR_MT9V113,

+    //SENSOR_HI704,

+    #if defined(_USE_TYPE_GC6133)

+	SENSOR_GC6133,

+	#endif

+	#if defined(_USE_TYPE_BF3A01CS)

+	SENSOR_BF3A01CS,

+	#endif

+    MAX_SENSOR_DEV_TYPE

+} T_ZDrv_Sensor_DevType;

+

+/* sensor info */

+typedef struct

+{

+	T_ZDrv_Sensor_DevType tDevType;	    /* the sensor now using*/

+	T_ZDrv_SensorId tActivedSensor; 	/* the sensor now using*/

+	UINT16			uiWidth;	  /* max pixel width of the actived sensor */

+	UINT16			uiHeight;	  /* max pixel height of the actived sensor */

+	UINT16          pixelBytes;

+	BOOL 			fucSetZoom;            /*whether to support set_zoom function */

+	BOOL 			fucSetImgSize; 		  /*whether to support set_img_Size function */

+	BOOL 			fucSetEffect;          /*whether to support set_effect function */

+	BOOL 			fucSetMirrorFlip;		/*whether to support set MirrorFlip function */

+	BOOL 			fucSetBrightness;		/*whether to support set Brightness function */

+	BOOL 			fucSetContrast;		/*whether to support SetContrast function */

+	BOOL 			fucSetSaturation;		/*whether to support SetSaturation function */

+	BOOL 			fucSetWhiteBalance;	/*whether to support SetWhiteBalance function */

+	BOOL 			fucSetLightMode;		/*whether to support SetLightMode function */

+	BOOL 			fucSetNightMode;		/*whether to support SetNightMode function */

+	BOOL 			fucSetFrameRate;		/*whether to support SetFrameRate function */

+

+	//BOOL            funcSetExposureCompensation;	/*whether to support ExposureCompensation function */

+	BOOL            funcSetAntiFlicker; 

+

+} T_ZDrv_SensorInfo;

+/* camera frame rate*/

+typedef enum

+{

+    Fps714  = 0,

+    Fps75      ,

+    Fps143     ,

+    Fps15      ,

+    Fps25      ,

+    Fps30      ,

+   

+    MAX_FPS_SIZE

+} T_ZDrv_CamFps;

+

+/* output size */

+typedef enum

+{

+    OUTPUT_IMG_SXGA =0,

+    OUTPUT_IMG_VGA,

+    OUTPUT_IMG_QVGA,

+    OUTPUT_IMG_QQVGA,

+    OUTPUT_IMG_CIF ,

+    OUTPUT_IMG_QCIF,

+    OUTPUT_IMG_QQCIF ,

+    OUTPUT_IMG_USVGA,

+

+    MAX_OUTPUT_IMG_SIZE

+} T_ZDrv_CamOutputSize;

+

+/* night mode */

+typedef enum

+{

+    NIGHT_MODE_0,             /* level 0*/

+    NIGHT_MODE_1,             /* level 1 */

+    NIGHT_MODE_2,             /* level 2 */    

+

+    MAX_NIGHT_MODE

+} T_ZDrv_CamNightMode;

+

+/* zomm level */

+typedef enum

+{

+    ZOOM_LEVEL_0,             /* level 0  */

+    ZOOM_LEVEL_1,             /* level 1 */

+    ZOOM_LEVEL_2,             /* level 2 */

+    ZOOM_LEVEL_3,             /* level 3 */

+    ZOOM_LEVEL_4,             /* level 4 */

+

+    MAX_ZOOM_LEVEL

+} T_ZDrv_CamZoom;

+

+/* brightness level */

+typedef enum

+{

+    BRI_LEVEL_0 = 0,             /* level 0 (darkest) */

+    BRI_LEVEL_1,             /* level 1 */

+    BRI_LEVEL_2,             /* level 2 */

+    BRI_LEVEL_3,             /* level 3 */

+    BRI_LEVEL_4,             /* level 4  */

+    BRI_LEVEL_5,			 /* level 5  */

+    BRI_LEVEL_6,			 /* level 6  */

+

+    MAX_BRI_LEVEL

+} T_ZDrv_CamBrightness;

+

+/* contrast level*/

+typedef enum

+{

+    CON_LEVEL_0 = 0,           /* level 0 (thinnest) */

+    CON_LEVEL_1,           /* level 1 */

+    CON_LEVEL_2,           /* level 2 */

+    CON_LEVEL_3,           /* level 3 */

+    CON_LEVEL_4,           /* level 4 */

+    CON_LEVEL_5,           /* level 5 */

+    CON_LEVEL_6,           /* level 6 (sharpest) */

+    

+    MAX_CON_LEVEL

+} T_ZDrv_CamContrast;

+

+/* saturation level */

+typedef enum

+{

+    SAT_LEVEL_0,

+    SAT_LEVEL_1,

+    SAT_LEVEL_2,

+    SAT_LEVEL_3,

+    SAT_LEVEL_4,

+    

+    MAX_SAT_LEVEL

+} T_ZDrv_CamSaturation;

+

+/* camera effect */

+typedef enum

+{

+    EFF_NORMAL = 0,

+    EFF_ANTIQUE,

+    EFF_BLUISH,

+    EFF_GREENISH,

+    EFF_REDISH,

+    EFF_YELLOW,

+    EFF_NEGATIVE,

+    EFF_BLACK_AND_WHITE,

+    EFF_BW_NEGATIVE,

+    EFF_SEPIA_GREEN,

+    

+    MAX_EFF_TYPE

+} T_ZDrv_CamEffect;

+

+/* camera whiteblance */

+typedef enum

+{

+    WB_AUTO = 0,

+    WB_INSCANDSENCE,

+    WB_FLUORESCENT,//CWF

+   // WB_FLUORECWF, //cool white FLUORESCENT

+    WB_TUNGSTEN,

+    WB_SUNNY,    

+    WB_CLOUDY,

+

+    MAX_WB_MODE

+} T_ZDrv_CamWhiteBalance;

+

+/* camera light mode */

+typedef enum

+{

+    LIGTH_AUTO,     /* auto */

+    LIGTH_SUNNY,    /* sunny */

+    LIGTH_CLOUDY,   /* cloudy */

+    LIGTH_OFFICE,   /* office */

+    LIGTH_HOME,     /* home */

+    LIGTH_NIGHT,    /* night */

+

+    MAX_LIGTH_MODE

+} T_ZDrv_CamLightMode;

+

+/* exposure compesation  level */

+typedef enum

+{

+    EV_NEG_4_3 = 0,               /*  EV -2    */

+    EV_NEG_3_3,           	  /*  EV -1.5 */

+    EV_NEG_2_3,            	  /*  EV -1    */

+    EV_NEG_1_3,            	  /*  EV -0.5 */

+    EV_ZERO,            	  /*  EV 0      */

+    EV_POS_1_3,            	  /*  EV +0.5 */

+	EV_POS_2_3, 			  /*  EV +1    */

+	EV_POS_3_3,            	  /*  EV +1.5 */

+	EV_POS_4_3,            	  /*  EV +2 */

+

+    MAX_EV_LEVEL

+} T_ZDrv_CamExpCom;

+

+typedef enum

+{

+    HAL_CAM_WORD_MODE_YUV,

+    HAL_CAM_WORD_MODE_RGB,

+    

+    MAX_HAL_CAM_WORD_MODE

+}T_HalCam_EWorkMode;

+

+typedef struct

+{

+   PhyAddr *Y;

+   PhyAddr *Cb;

+   PhyAddr *Cr;  

+}T_ZDrv_YuvBuf;

+

+/* Image data buffer */

+typedef union

+{

+    T_ZDrv_YuvBuf  YuvBuf;

+    PhyAddr *streamDataBuf;

+    PhyAddr*ARGBdataBuf;

+} T_ZDrv_ImageDataBuf;

+/* Pixel format. */

+typedef enum

+{

+    PIXEL_YCbCr400,

+    PIXEL_YCbCr420,

+    PIXEL_YUYV,

+//    PIXEL_YCbCr422 = PIXEL_YUYV,

+//    PIXEL_YCbCr422H = PIXEL_YUYV,

+//    PIXEL_YCbCr422V = PIXEL_YUYV,

+    PIXEL_YCbCr444,

+    PIXEL_RGB_PLANAR,

+    PIXEL_RGB555,

+    PIXEL_RGB565,

+    PIXEL_RGB666,

+    PIXEL_RGB888,

+    PIXEL_ARGB888,

+    

+    MAX_PIXEL_FORMAT

+} T_ZDrv_PixelFmt;

+

+/* camera data info */

+typedef struct

+{

+    T_ZDrv_ImageDataBuf  dataBuf;  /* image data buffer */

+    UINT32 Width;                  /* image width */

+    UINT32 Height;                 /* image height */

+    T_ZDrv_PixelFmt  pixeFmt;      /* pixel format */

+} T_ZDrv_CamDataInfo;

+

+typedef struct

+{

+    UINT32     ySize;

+    UINT32     uSize;

+    UINT32     vSize;

+   

+} T_ZDrv_YuvBufSize;

+

+/* Image buffer size */

+typedef union

+{

+    T_ZDrv_YuvBufSize  YuvBufSize;

+    UINT32   streamBufSize;

+    UINT32   ARGBBufSize;

+} T_ZDrv_ImageBufSzie;

+

+/* mirror type */

+typedef enum

+{

+    MIR_NONE,

+    MIR_V,

+    MIR_H,

+    MIR_V_H,

+    

+    MAX_MIR_TYPE

+} T_ZDrv_MirrorType;

+

+typedef enum

+{

+    FLICKER_50HZ,

+	FLICKER_60HZ,

+   

+    MAX_FLICKER_TYPE

+} T_ZDrv_AntiFlicker;

+

+

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

+* 	                                        Constants

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

+

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

+* 	                                        Global  Variables

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

+

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

+* 	                                        Function Prototypes

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

+

+

+#endif/*_FILENAME_H*/

+