[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/boot/common/src/uboot/include/led.h b/boot/common/src/uboot/include/led.h
new file mode 100755
index 0000000..816b899
--- /dev/null
+++ b/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*/