[Bugfix][S300AI][bug-view-1824] fix poweron below 3.5v & not light on power led in uboot, old files

Change-Id: I06fafd336acbf8ec0a1c84887dc8871ca297ca82
diff --git a/lynq/S300AI/boot/common/src/uboot/drivers/led/led.c b/lynq/S300AI/boot/common/src/uboot/drivers/led/led.c
new file mode 100755
index 0000000..a8e574b
--- /dev/null
+++ b/lynq/S300AI/boot/common/src/uboot/drivers/led/led.c
@@ -0,0 +1,238 @@
+/*******************************************************************************

+ * Copyright (C) 2016, ZIXC Corporation.

+ *

+ * File Name:   hal_led.c

+ * File Mark:

+ * Description:  This file contains the hal layer routines for i2c driver.

+ * Others:

+ * Version:       V1.0

+ * Author:        yx

+ * Date:          2014-07-03

+ * History 1:

+ *     Date:

+ *     Version:

+ *     Author:

+ *     Modification:

+ * History 2:

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

+

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

+*                                  Include files

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

+#include <drvs_gpio.h>

+#include <led.h>

+

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

+* 	                                           Local Types

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

+

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

+* 	                                           Local Constants

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

+

+

+SINT32 led_SetStatus(led_channel channel, led_status status)

+{

+    SINT32 ret = 0;

+    if (status == LED_STATUS_ON)

+    {

+        switch (channel)

+        {

+        case LED_WIFI_BLUE:

+            zDrvGpio_SetOutputValue(LED_WIFI_BLUE_GPIO,GPIO_HIGH);

+            break;

+        case LED_SMS_BLUE:

+            zDrvGpio_SetOutputValue(LED_SMS_BLUE_GPIO,GPIO_HIGH);

+            break;

+        case LED_BAT_RED:

+            zDrvGpio_SetOutputValue(LED_BAT_RED_GPIO,GPIO_HIGH);

+            break;

+        case LED_BAT_GREEN:

+            zDrvGpio_SetOutputValue(LED_BAT_GREEN_GPIO,GPIO_HIGH);

+            break;

+		case LED_MODEM_BLUE:

+			zDrvGpio_SetOutputValue(LED_MODEM_BLUE_GPIO,GPIO_HIGH);			

+			break;

+		case LED_MODEM_RED:		

+			zDrvGpio_SetOutputValue(LED_MODEM_RED_GPIO,GPIO_HIGH);

+			break;		

+        default:

+            break;

+			

+

+        }

+    }

+    else if (status == LED_STATUS_OFF)

+    {

+        switch (channel)

+        {

+        case LED_WIFI_BLUE:

+            zDrvGpio_SetOutputValue(LED_WIFI_BLUE_GPIO,GPIO_LOW);

+            break;

+        case LED_SMS_BLUE:

+            zDrvGpio_SetOutputValue(LED_SMS_BLUE_GPIO,GPIO_LOW);

+            break;

+        case LED_BAT_RED:

+            zDrvGpio_SetOutputValue(LED_BAT_RED_GPIO,GPIO_LOW);

+            break;

+        case LED_BAT_GREEN:

+            zDrvGpio_SetOutputValue(LED_BAT_GREEN_GPIO,GPIO_LOW);

+            break;

+		case LED_MODEM_BLUE:

+			zDrvGpio_SetOutputValue(LED_MODEM_BLUE_GPIO,GPIO_LOW);			

+			break;

+		case LED_MODEM_RED:		

+			zDrvGpio_SetOutputValue(LED_MODEM_RED_GPIO,GPIO_LOW);

+			break;		

+        default:

+            break;

+			

+

+        }

+    }

+    else

+    {

+        return -1;

+    }

+

+    return ret;

+

+}

+

+#if 0

+

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

+  * Function:	       led_SetLEDcurrent

+  * Description:

+  * Parameters:

+  *   Input:		 led_color:  	LED_RED / LED_GREEN / LED_BLUE

+  *				brightness: LED_BRIGHTNESS_1 ~ LED_BRIGHTNESS_16

+  *   Output:

+  * Returns:					success or fail

+  * Others: blue led can't set brightness, only can set on/off

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

+SINT32 led_SetLEDcurrent(UINT8 sink, led_current current)

+{

+    SINT32 ret = 0;

+    UINT8 slv_addr=0, reg_addr=0, reg_val=0, mask=0;

+

+    slv_addr = ZX234290_I2C_SLAVE_ADDR0;

+

+    reg_addr = ZX234290_REG_ADDR_SYS_CTRL;

+    if (current)

+    {

+        switch (sink)

+        {

+            case 1:

+            reg_val = LED_BITFVAL(1, 0);	/* 0x07 寄存器 [1:0]	*/

+            break;

+            case 2:

+            reg_val = LED_BITFVAL(1, 1);	/* 0x07 寄存器 [1:0]	*/

+            break;

+            default:

+            break;

+        }

+    }

+    else

+    {

+        switch (sink)

+        {

+            case 1:

+                reg_val = LED_BITFVAL(0, 0);

+                break;

+            case 2:

+                reg_val = LED_BITFVAL(0, 1);	/* 0x07 寄存器 [1:0]	*/

+                break;

+            default:

+                break;

+        }

+    }

+

+    switch (sink)

+    {

+        case 1:

+            mask = LED_BITFMASK(1, 0);

+            break;

+        case 2:

+            mask = LED_BITFMASK(1, 1);;	/* 0x07 寄存器 [1:0]	*/

+            break;

+        default:

+            break;

+    }

+

+

+    ret = zx297520_led_SetRegister(reg_addr, reg_val, mask);

+    //zOss_Sleep(500);

+

+    switch (sink)

+    {

+        case 1:

+            reg_addr = ZX234290_REG_ADDR_SINK1_CUR_SEL;

+            break;

+        case 2:

+            reg_addr = ZX234290_REG_ADDR_SINK2_CUR_SEL;

+            break;

+        default:

+            break;

+    }

+

+    reg_val = LED_BITFVAL(current, 0);	/* 0x07 寄存器 [1:0]	*/

+    mask = LED_BITFMASK(4, 0);

+    ret = zx297520_led_SetRegister(reg_addr, reg_val, mask);

+

+    if (ret != 0)

+    {

+        return -1;

+    }

+

+    return 0;

+}

+#endif

+void zx29_led_init(void)

+{

+    zDrvGpio_SetFunc(LED_WIFI_BLUE_GPIO,LED_WIFI_BLUE_GPIO_FUN);

+    zDrvGpio_SetDirection(LED_WIFI_BLUE_GPIO,GPIO_OUT);	

+	zDrvGpio_SetOutputValue(LED_WIFI_BLUE_GPIO,GPIO_LOW);

+

+    zDrvGpio_SetFunc(LED_SMS_BLUE_GPIO,LED_SMS_BLUE_GPIO_FUN);

+    zDrvGpio_SetDirection(LED_SMS_BLUE_GPIO,GPIO_OUT);

+	zDrvGpio_SetOutputValue(LED_SMS_BLUE_GPIO,GPIO_LOW);

+

+    zDrvGpio_SetFunc(LED_BAT_RED_GPIO,LED_BAT_RED_GPIO_FUN);

+    zDrvGpio_SetDirection(LED_BAT_RED_GPIO,GPIO_OUT);

+	zDrvGpio_SetOutputValue(LED_BAT_RED_GPIO,GPIO_LOW);

+

+    zDrvGpio_SetFunc(LED_BAT_GREEN_GPIO,LED_BAT_GREEN_GPIO_FUN);

+    zDrvGpio_SetDirection(LED_BAT_GREEN_GPIO,GPIO_OUT);

+	zDrvGpio_SetOutputValue(LED_BAT_GREEN_GPIO,GPIO_LOW);

+	

+    zDrvGpio_SetFunc(LED_MODEM_RED_GPIO,LED_MODEM_RED_GPIO_FUN);

+    zDrvGpio_SetDirection(LED_MODEM_RED_GPIO,GPIO_OUT);

+	zDrvGpio_SetOutputValue(LED_MODEM_RED_GPIO,GPIO_LOW);

+

+    zDrvGpio_SetFunc(LED_MODEM_BLUE_GPIO,LED_MODEM_BLUE_GPIO_FUN);

+    zDrvGpio_SetDirection(LED_MODEM_BLUE_GPIO,GPIO_OUT);

+	zDrvGpio_SetOutputValue(LED_MODEM_BLUE_GPIO,GPIO_LOW);

+}

+

+void zx29_led_PowerOnLedOn(void)

+{

+	#if 1

+    led_SetStatus(LED_MODEM_RED,LED_STATUS_OFF);

+    led_SetStatus(LED_BAT_GREEN,LED_STATUS_OFF);

+	

+    led_SetStatus(LED_WIFI_BLUE,LED_STATUS_ON);

+    led_SetStatus(LED_SMS_BLUE,LED_STATUS_ON);

+    led_SetStatus(LED_BAT_RED,LED_STATUS_ON);

+    led_SetStatus(LED_MODEM_BLUE,LED_STATUS_ON);

+	#endif

+	

+}

+void zx29_led_PowerOnLedOff(void)

+{	

+    udelay(19500);	/*300ms*/

+    led_SetStatus(LED_WIFI_BLUE,LED_STATUS_OFF);

+    led_SetStatus(LED_SMS_BLUE,LED_STATUS_OFF);

+    led_SetStatus(LED_MODEM_BLUE,LED_STATUS_OFF);	

+}

+

diff --git a/lynq/S300AI/boot/common/src/uboot/drivers/peripheral/peripheral.c b/lynq/S300AI/boot/common/src/uboot/drivers/peripheral/peripheral.c
new file mode 100644
index 0000000..564c2ca
--- /dev/null
+++ b/lynq/S300AI/boot/common/src/uboot/drivers/peripheral/peripheral.c
@@ -0,0 +1,341 @@
+/*******************************************************************************

+ * Copyright (C) 2016, ZIXC Corporation.

+ *

+ * File Name:	hal_led.c

+ * File Mark:

+ * Description:	 This file contains the hal layer routines for i2c driver.

+ * Others:

+ * Version:		  V1.0

+ * Author:		  yx

+ * Date:		  2014-07-03

+ * History 1:

+ *	   Date:

+ *	   Version:

+ *	   Author:

+ *	   Modification:

+ * History 2:

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

+

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

+*								   Include files

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

+

+//#include "drvs_general.h"

+//#include "drvs_i2c.h"

+#include <linux/types.h>

+#include <zx234290.h>

+#include <led.h>

+#include "common.h"

+//#include <gpio.h>

+

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

+*											   Local Macros

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

+#define SD1_IO_1V8_EN	0x13c830

+#define REG32(x)			    (*(volatile u32*)(x))

+

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

+*											   Local Types

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

+

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

+*											   Local Constants

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

+

+

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

+ * Function:	peripheral_init

+ * Description: init the peripheral include pmu\charger\led\lcd etc.

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+int peripheral_init(void)

+{

+	int ret = 0;

+	ret = power_init();

+

+/*led*/

+

+/*lcd*/

+

+	/* jtagµ÷ÊÔ */

+#if 0

+	jtag_init();

+#endif

+

+#if 0//ref need ldo8 2.85V

+/*set mmc io and vccQ*/	

+	zx234290_set_ldo8_voltage(VLDOD_1_800);

+	zx234290_set_ldo8_sleep_voltage(VLDOD_1_800);

+	zx234290_ldo8_enable(1);

+	

+	REG32(SD1_IO_1V8_EN) |=(1<<1);

+#endif

+	zx234502_charger_enable();

+

+	return ret ;

+}

+

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

+ * Function:	Show_UpdateWait

+ * Description: show the logo when the local updataing through lcd/led etc.

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+int Show_UpdateWait(void)

+{

+	int ret = 0;

+/*led*/

+

+/*lcd*/

+	;

+	return ret;

+}

+

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

+ * Function:	Show_UpdateSucc

+ * Description: show the logo when the local updataing through lcd/led etc.

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+int Show_UpdateSucc(void)

+{

+	int ret = 0;

+/*led*/

+

+/*lcd*/

+	;

+	return ret;

+}

+

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

+ * Function:	Show_UpdateFail

+ * Description: show the logo when the local updataing through lcd/led etc.

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+int Show_UpdateFail(void)

+{

+	int ret = 0;

+/*led*/

+

+/*lcd*/

+	;

+	return ret;

+}

+

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

+ * Function:	Show_LowPower

+ * Description: show the logo when the local updataing through lcd/led etc.

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+int Show_LowPower(void)

+{

+	int ret = 0;

+/*led*/

+

+/*lcd*/

+	;

+	return ret;

+}

+

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

+ * Function:	Show_No_Battery

+ * Description: show the logo when the local updataing through lcd/led etc.

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+int Show_No_Battery(void)

+{

+	int ret = 0;

+/*led*/

+

+/*lcd*/

+	;

+	return ret;

+}

+

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

+ * Function:	Show_PowerOn_Normal

+ * Description: show the logo when the local updataing through lcd/led etc.

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+int Show_PowerOn_Normal(void)

+{

+	int ret = 0;

+/*led*/

+

+/*lcd*/

+	;

+	return ret;

+}

+

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

+ * Function:	Show_PowerOn_Normal

+ * Description: show the logo when the local updataing through lcd/led etc.

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+

+int Show_PowerOn_Fota(void)

+{

+	int ret = 0;

+/*led*/

+

+/*lcd*/

+	;

+	return ret;

+}

+

+

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

+ * Function:	Show_Charging

+ * Description: show the logo when the local updataing through lcd/led etc.

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+int Show_Charging(void)

+{

+	int ret = 0;

+/*led*/

+

+/*lcd*/

+	;

+	return ret;

+}

+

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

+ * Function:	zx_get_vbat_voltage

+ * Description: .

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+int zx_get_vbat_voltage(void)

+{

+   // int ret = 0;

+

+	return zx234290_get_adc1_voltage();

+}

+

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

+ * Function:	zx_get_battery_Status

+ * Description:

+ * Parameters:

+ *	 Input:

+ *

+ *	 Output:

+ *

+ *

+ * Returns:

+ *	   int

+ *

+ *

+ * Others:

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

+unsigned int zx_get_battery_Status(void)

+{

+	int ret = 0;

+	int boost_flag = 1;

+

+	zx234502_battery_status(&boost_flag);

+	if(boost_flag){

+		return 0;/*battery uninstall*/

+	}

+	else

+		return 1;/*battery install*/

+}

+

+

+

+

diff --git a/lynq/S300AI/boot/common/src/uboot/include/led.h b/lynq/S300AI/boot/common/src/uboot/include/led.h
new file mode 100755
index 0000000..816b899
--- /dev/null
+++ b/lynq/S300AI/boot/common/src/uboot/include/led.h
@@ -0,0 +1,200 @@
+/*******************************************************************************
+ * Copyright (C) 2016, ZIXC 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 "board.h"
+
+/****************************************************************************
+* 	                                        Include files
+****************************************************************************/
+
+/****************************************************************************
+* 	                                        Macros
+****************************************************************************/
+
+#include <linux/types.h>
+
+
+/*00h*/
+
+/*03h*/
+
+/****************************************************************************
+* 	                                        Types
+****************************************************************************/
+
+typedef enum
+{
+    /* 0 ~ -29: commom */
+    DRV_SUCCESS                                     = 0,        /* successed */
+    DRV_ERROR                                        = -1,      /* failed */
+    DRV_ERR_INVALID_IOCTL_CMD = -2,      /* no this control command branch */
+    DRV_ERR_NOT_SUPPORTED          = -3,      /* this function hasn't been supported */
+    DRV_ERR_INVALID_PARAM          = -4,      /* the input parameter is invalid */
+    DRV_ERR_MEM_ALLOC                  = -5,      /* failed to malloc memory */
+    DRV_ERR_HISR_CREATE_FAIL     = -6,      /* failed to create hisr */
+    DRV_ERR_TIMEOUT                         = -7,      /* timeout for a block waitting operation */
+    DRV_ERR_BUSY                                 = -8,      /* busy now to do the request operation */
+    DRV_ERR_NOT_OPENED                 = -9,      /* the device to operate hasn't been opened yet */
+    DRV_ERR_OPEN_TIMES                  = -10,    /* try to open a device which has been opened already */
+    DRV_ERR_NOT_STARTED               = -11,    /* the device to operate hasn't been started yet */
+    DRV_ERR_START_TIMES                = -12,    /* try to open a device which has been opened already */
+    /* reserved */
+
+}T_DRVS_RETURN_TYPE;
+
+/****************************************************************************
+* 	                                        Constants
+****************************************************************************/
+
+/****************************************************************************
+* 	                                        Global  Variables
+****************************************************************************/
+
+/****************************************************************************
+* 	                                        Function Prototypes
+****************************************************************************/
+
+typedef signed char SINT8;
+typedef unsigned char UINT8;
+
+typedef signed short SINT16;
+typedef unsigned short UINT16;
+
+typedef signed int SINT32;
+typedef unsigned int UINT32;
+
+#if defined(CONFIG_ZX297520V3E_MIFI_MINI_XR819)||defined(CONFIG_ZX297520V3E_MIFI_MINI)
+#define LED_WIFI_BLUE_GPIO		GPIO39       //real wifi green led
+#define LED_SMS_BLUE_GPIO		GPIO40          //real sms green led
+#define LED_BAT_RED_GPIO		GPIO41          
+#define LED_BAT_GREEN_GPIO		GPIO42          
+#define LED_MODEM_RED_GPIO		GPIO124
+#define LED_MODEM_BLUE_GPIO		GPIO125			//real modem green
+#define LED_WIFI_BLUE_GPIO_FUN		GPIO39_GPIO39
+#define LED_SMS_BLUE_GPIO_FUN		GPIO40_GPIO40
+#define LED_BAT_RED_GPIO_FUN		GPIO41_GPIO41
+#define LED_BAT_GREEN_GPIO_FUN		GPIO42_GPIO42
+#define LED_MODEM_RED_GPIO_FUN		GPIO124_GPIO124
+#define LED_MODEM_BLUE_GPIO_FUN		GPIO125_GPIO125
+
+#elif defined(CONFIG_ZX297520V3E_CPE_SWITCH)
+#define LED_LTE_RED			GPIO45
+#define LED_LTE_BLUE		GPIO46
+#define LED_WIFI 		 	GPIO86
+#define LED_WPS 		 	GPIO72
+#define LED_RJ11 			GPIO22
+#define LED_4G_1 			GPIO29
+#define LED_4G_2 			GPIO30
+#define LED_4G_3 			GPIO73
+#define LED_4G_4 			GPIO74
+#define LED_4G_5 			GPIO75
+
+#define LED_POWER_FUNC_SEL 		GPIO21_GPIO21
+#define LED_LTE_RED_FUNC_SEL 	GPIO45_GPIO45
+#define LED_LTE_BLUE_FUNC_SEL 	GPIO46_GPIO46
+#define LED_WIFI_FUNC_SEL 		GPIO86_GPIO86
+#define LED_WPS_FUNC_SEL		GPIO72_GPIO72
+#define LED_RJ11_FUNC_SEL		GPIO22_GPIO22
+#define LED_4G_1_FUNC_SEL		GPIO29_GPIO29
+#define LED_4G_2_FUNC_SEL		GPIO30_GPIO30
+#define LED_4G_3_FUNC_SEL		GPIO73_GPIO73
+#define LED_4G_4_FUNC_SEL		GPIO74_GPIO74
+#define LED_4G_5_FUNC_SEL		GPIO75_GPIO75
+
+#else
+#define LED_WIFI_BLUE_GPIO GPIO39       //wifi blue led
+#define LED_SMS_BLUE_GPIO  GPIO40          //sms blue led
+#define LED_BAT_RED_GPIO  GPIO42          //bat red led
+#define LED_BAT_GREEN_GPIO  GPIO41          //bat_green led
+#define LED_MODEM_RED_GPIO  GPIO124
+#define LED_MODEM_BLUE_GPIO  GPIO123
+#define LED_WIFI_BLUE_GPIO_FUN GPIO39_GPIO39//wifi blue led
+#define LED_SMS_BLUE_GPIO_FUN  GPIO40_GPIO40//sms blue led
+#define LED_BAT_RED_GPIO_FUN  GPIO42_GPIO42//bat red led change to green
+#define LED_BAT_GREEN_GPIO_FUN  GPIO41_GPIO41//bat_green led
+#define LED_MODEM_RED_GPIO_FUN  GPIO124_GPIO124
+#define LED_MODEM_BLUE_GPIO_FUN  GPIO123_GPIO123
+#endif
+
+#define LED_BITFVAL(var, lsh)   ( (var) << (lsh) )
+#define LED_BITFMASK(wid, lsh)  ( ((1U << (wid)) - 1) << (lsh) )
+#define LED_BITFEXT(var, wid, lsh)   ((var & LED_BITFMASK(wid, lsh)) >> (lsh))
+
+/* adc & sink and sink current select	*/
+#if 0/* adc & sink and sink current select	*/
+#define ZX234290_REG_ADDR_SYS_CTRL        	0x07
+#define ZX234290_REG_ADDR_SINK2_CUR_SEL    	0x08
+#define ZX234290_REG_ADDR_SINK1_CUR_SEL   	0x09
+#endif
+typedef enum led_channel {
+    LED_WIFI_BLUE =0x0,       //wifi green led
+    LED_SMS_BLUE,            //sms green led
+    LED_BAT_RED,            //bat red led
+    LED_BAT_GREEN,            //bat_green led
+    LED_MODEM_BLUE,            //modem green led
+    LED_MODEM_GREEN,            //no
+    LED_MODEM_RED,            //modem red
+    LED_CHANNEL_MAX,
+}led_channel;
+
+typedef enum led_current {
+    LED_CURRENT_0 =0x0,
+    LED_CURRENT_5,
+    LED_CURRENT_10,
+    LED_CURRENT_15,
+    LED_CURRENT_20,
+    LED_CURRENT_25,
+    LED_CURRENT_30,
+    LED_CURRENT_35,
+    LED_CURRENT_40,
+
+    SM5201_CURRENT_MAX,
+}led_current;
+
+typedef enum led_status {
+	LED_STATUS_OFF  = 0x0,
+	LED_STATUS_ON   = 0x1,
+
+	LED_STATUS_MAX,
+}led_status;
+
+
+/****************************************************************************
+* 	                                        Constants
+****************************************************************************/
+
+/****************************************************************************
+* 	                                        Global  Variables
+****************************************************************************/
+
+/****************************************************************************
+* 	                                        Function Prototypes
+****************************************************************************/
+
+SINT32 led_SetStatus(led_channel channel, led_status status);
+SINT32 led_SetBlink(led_channel channel,	UINT32 delay_on, UINT32 delay_off);
+SINT32 led_SetLEDcurrent(UINT8 sink, led_current current);
+
+void zx29_led_init(void);
+void zx29_led_PowerOnLedOn(void);
+
+void zx29_led_PowerOnLedOff(void);
+
+#endif/*_DRVS_LED_H*/