[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/cp/ps/driver/inc/misc/drvs_led.h b/cp/ps/driver/inc/misc/drvs_led.h
new file mode 100644
index 0000000..0134203
--- /dev/null
+++ b/cp/ps/driver/inc/misc/drvs_led.h
@@ -0,0 +1,153 @@
+/*******************************************************************************

+ * Copyright (C) 2010, ZTE Corporation.

+ *

+ * File Name:	drvs_led.h

+ * File Mark:

+ * Description:

+ * Others:

+ * Version:       V1.0

+ * Author:        yuxiang

+ * Date:          2014-07-07

+ * History 1:

+ *     Date:

+ *     Version:

+ *     Author:

+ *     Modification:

+ * History 2:

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

+

+#ifndef _DRVS_LED_H

+#define _DRVS_LED_H

+

+

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

+* 	                                        Include files

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

+

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

+* 	                                        Macros

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

+/*  */

+#define SN3216_REG_MODE_CONFIG  0x00 /* D7=SSD, D6:D5=MODE, D4=AE */

+#define SN3216_REG_OUT_STATUS1  0x01 /* out16:out9 led on/off, default all on */

+#define SN3216_REG_OUT_STATUS2  0x02 /* out8:out1 led on/off, default all off */

+

+#define SN3216_REG_CURRENT      0x03 /* D7=CM, D6:D4=CS, D3=AGCE, D2:D0=AGS */

+#define SN3216_REG_GPIO_CONFIG  0x04 /*  */

+#define SN3216_REG_GPIO_DIRECT  0x05 /*  */

+#define SN3216_REG_GPIO_VALUE   0x06 /*  */

+

+#define SN3216_REG_OUT16_PWM     0x10 /* out16~out1 pwm level 10h~1fh */

+

+#define SN3216_REG_UPDATE_PWM   0xB0 /* update pwm regs */

+

+/*00h*/

+#define SN3216_REG_MODE_CONFIG_AE_LSH       (4)

+#define SN3216_REG_MODE_CONFIG_MODE_LSH     (5)

+#define SN3216_REG_MODE_CONFIG_SSD_LSH      (7)

+

+/*03h*/

+#define SN3216_REG_CURRENT_CS_LSH           (4)

+

+

+#define SN3216_BITFVAL(var, lsh)   ( (var) << (lsh) )

+#define SN3216_BITFMASK(wid, lsh)  ( ((1U << (wid)) - 1) << (lsh) )

+#define SN3216_BITFEXT(var, wid, lsh)   ((var & SN3216_BITFMASK(wid, lsh)) >> (lsh))

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

+* 	                                        Types

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

+#if 1

+typedef enum sn3216_channel {

+    SN3216_LED1 =0x0,

+    SN3216_LED2,

+    SN3216_LED3,

+    SN3216_LED4,

+    SN3216_LED5,

+    SN3216_LED6,

+    SN3216_LED7,

+    SN3216_LED8,

+

+    SN3216_LED9,

+    SN3216_LED10,

+    SN3216_LED11,

+    SN3216_LED12,

+    SN3216_LED13,

+    SN3216_LED14,

+    SN3216_LED15,

+    SN3216_LED16,

+

+    SN3216_LED_MAX

+}sn3216_channel;

+#else

+

+typedef enum sn3216_channel {

+

+    SN3216_LED16 = 0x0,

+    SN3216_LED15,

+    SN3216_LED14,

+    SN3216_LED13,

+    SN3216_LED12,

+    SN3216_LED11,

+    SN3216_LED10,

+    SN3216_LED9,

+

+    SN3216_LED8,

+    SN3216_LED7,

+    SN3216_LED6,

+    SN3216_LED5,

+    SN3216_LED4,

+    SN3216_LED3,

+    SN3216_LED2,

+    SN3216_LED1,

+

+    SN3216_LED_MAX

+}sn3216_channel;

+#endif

+typedef enum sn3216_current {

+    SN3216_CURRENT_20 =0x0,

+    SN3216_CURRENT_15,

+    SN3216_CURRENT_10,

+    SN3216_CURRENT_5,

+    SN3216_CURRENT_40,

+    SN3216_CURRENT_35,

+    SN3216_CURRENT_30,

+    SN3216_CURRENT_25,

+

+    SN3216_CURRENT_MAX

+}sn3216_current;

+

+typedef enum sn3216_status {

+	SN3216_LED_STATUS_OFF  = 0x0,

+	SN3216_LED_STATUS_ON   = 0x1,

+

+	SN3216_LED_STATUS_MAX,

+}sn3216_status;

+

+typedef enum sn3216_sleep {

+	SN3216_SLEEP_OFF  = 0x0,

+	SN3216_SLEEP_ON   = 0x1,

+	SN3216_SLEEP_MAX,

+}sn3216_sleep;

+

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

+* 	                                        Constants

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

+

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

+* 	                                        Global  Variables

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

+

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

+* 	                                        Function Prototypes

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

+SINT32 sn3216_I2cRead(UINT8 reg_addr, UINT8 *reg_val);

+SINT32 sn3216_I2cRead(UINT8 reg_addr, UINT8 *reg_val);

+SINT32 sn3216_GetRegister(UINT8 addr, UINT8* data);

+SINT32 sn3216_SetRegister(UINT8 addr, UINT8 data, UINT8 mask);

+SINT32 sn3216_SetStatus(sn3216_channel channel, sn3216_status status);

+SINT32 sn3216_SetBlink(sn3216_channel channel,	UINT32 delay_on, UINT32 delay_off);

+SINT32 sn3216_SetCurrent(sn3216_current sn_current);

+SINT32 sn3216_SetPwm(sn3216_channel channel, UINT16 level);

+SINT32 sn3216_SetSleep(sn3216_sleep sleep);

+#endif/*_DRVS_LED_H*/

+