zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/cp/ps/driver/inc/io/drvs_io_kpd.h b/cp/ps/driver/inc/io/drvs_io_kpd.h
new file mode 100644
index 0000000..a711853
--- /dev/null
+++ b/cp/ps/driver/inc/io/drvs_io_kpd.h
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (C) 2014, ZTE Corporation.
+ *
+ * File Name:    drvs_io_kpd.h
+ * File Mark:
+ * Description:
+ * Others:
+ * Version:       1.0
+ * Author:        yuxiang
+ * Date:          2014-07-11
+ * History 1:
+ *     Date:
+ *     Version:
+ *     Author:
+ *     Modification:
+ * History 2:
+  ********************************************************************************/
+
+#ifndef _DRVS_IO_KPD_H
+#define _DRVS_IO_KPD_H
+
+/****************************************************************************
+*                                           Include files
+****************************************************************************/
+#include "drvs_io.h"
+
+/****************************************************************************
+*                                           Macros
+****************************************************************************/
+#define ZDRV_DEV_KPD            "kpd"
+
+/****************************************************************************
+*                                           Types
+****************************************************************************/
+
+/* tianbao zhou 20171122 */
+typedef enum
+{
+    KPD_VK_NULL,
+
+    KPD_VK_1,                   /* number 1 */
+    KPD_VK_2,                   /* number 2 */
+    KPD_VK_3,                   /* number 3 */
+    KPD_VK_4,                   /* number 4 */
+    KPD_VK_5,                   /* number 5 */
+    KPD_VK_6,                   /* number 6 */
+    KPD_VK_7,                   /* number 7 */
+    KPD_VK_8,                   /* number 8 */
+    KPD_VK_9,                   /* number 9 */
+    KPD_VK_0,                   /* number 0 */
+    KPD_VK_STAR,                /* 11: key * */
+    KPD_VK_HASH,                /* 12: key # */
+
+    KPD_VK_NV_UP,               /* 13: key up */
+    KPD_VK_NV_DOWN,             /* 14: key down */
+    KPD_VK_NV_LEFT,             /* 15: key left */
+    KPD_VK_NV_RIGHT,            /* 16: key right */
+    KPD_VK_NV_CENTER,           /* 17: key ok */
+    KPD_VK_SOFT_LEFT,           /* 18: left soft */
+    KPD_VK_SOFT_RIGHT,          /* 19: right soft */
+    KPD_VK_CALL,                /* 20: call key */
+
+    /* Use only KPD_VK_POWER if a key is both KPD_VK_CANCEL and KPD_VK_POWER */
+    KPD_VK_CANCEL,              /* cancel key. */
+    KPD_VK_POWER,               /* 22: power key. */
+
+    KPD_VK_SOFT_1,              /* 23: soft key 1 for additional functional key */
+    KPD_VK_SOFT_2,              /* 24: soft key 2 for additional functional key */
+    KPD_VK_SOFT_3,              /* 25: soft key 3 for additional functional key */
+    KPD_VK_SOFT_4,              /* 26: soft key 4 for additional functional key */
+
+    KPD_VK_SIDE_UP,             /* 27: up key on the side */
+    KPD_VK_SIDE_DOWN,           /* 28: down key on the side */
+    KPD_VK_WEB,                 /* 29: web key */
+    KPD_VK_CAMERA,              /* 30: camera key */
+    KPD_VK_FLIP,                /* 31: flip key */
+
+    KPD_VK_SHORTCUT1,			/* 32: */
+    KPD_VK_SHORTCUT2,
+    KPD_VK_SHORTCUT3,
+    KPD_VK_SHORTCUT4,
+    KPD_VK_SHORTCUT5,
+    KPD_VK_SHORTCUT6,
+    KPD_VK_VOLUME,              /* 38: ÒôÁ¿µ÷½Ú½çÃæ¿ì½Ý¼ü */
+    KPD_VK_SETTING,             /* 39: ¿ì½ÝÉèÖà */
+    KPD_VK_WEATHERPORT,         /* 40: ÌìÆøÔ¤±¨ */
+    KPD_VK_MESSAGE,             /* 41: ¶ÌÐÅ */
+    KPD_VK_12580,				/* 42: */
+    KPD_VK_SOS,					/* 43: */
+    KPD_VK_REDIAL,              /* 44: ÖØ²¥ */
+    KPD_VK_HEADFREE,            /* 45: ÃâÌá¼ü */
+    KPD_VK_HEADSET,             /* 46: Õª»ú »ò ¹Ò»ú */
+    KPD_VK_HEADSETUP,           /* 47: ͻȜ */
+    KPD_VK_HEADSETDOWN,         /* 48: ¹Ò»ú */
+
+    KPD_VK_WIFI,
+    KPD_VK_RESET,
+    KPD_VK_WPS,
+
+    KPD_VK_NUM					/* 52 */
+} T_ZDrvKpd_VirtualKey;
+
+/* key state */
+typedef enum
+{
+    KEY_RELEASED,         /* key has been released */
+    KEY_PRESSED,          /* key has been pressed */
+
+    MAX_KEY_STATE
+} T_ZDrvKpd_KeyState;
+
+typedef struct
+{
+    T_ZDrvKpd_VirtualKey    key;    /* key code */
+    T_ZDrvKpd_KeyState      state;  /* key state */
+    UINT8                   times;  /* scaned times when pressed, and by this can get the de pressed
+                                     * time equal to times x scan interval( 100ms ) */
+} T_ZDrvKpd_KeyItem;
+
+#if IOKEYS(IOCTL_KPD_SET_BLG_BRIGHTNESS) || IOKEYS(IOCTL_KPD_GET_BLG_STATUS)
+typedef UINT8 T_ZDrvKpd_BlgBrightness;  /* 0~255 */
+#endif
+
+#if IOKEYS(IOCTL_KPD_GET_BLG_STATUS)
+typedef struct
+{
+    UINT8 isBlgOn;
+    T_ZDrvKpd_BlgBrightness brightness;
+} T_ZDrvKpd_BlgStatus;
+#endif
+
+
+#endif/*_DRVS_IO_KPD_H*/
+