zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/boot/common/src/uboot/drivers/peripheral/peripheral_mifi.c b/boot/common/src/uboot/drivers/peripheral/peripheral_mifi.c
new file mode 100644
index 0000000..94b76e5
--- /dev/null
+++ b/boot/common/src/uboot/drivers/peripheral/peripheral_mifi.c
@@ -0,0 +1,430 @@
+/*******************************************************************************
+ * 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 <common.h>
+//#include "drvs_general.h"
+//#include "drvs_i2c.h"
+#include <linux/types.h>
+#include <power.h>
+#include <zx234290.h>
+#include <led.h>
+#include <lcd.h>
+//#include <lcd_blg.h>
+#include <charge.h>
+#include <zx234502.h>
+#include <partition_table.h>
+#include <linux/mtd/compat.h>
+/****************************************************************************
+*											   Local Macros
+****************************************************************************/
+
+
+/****************************************************************************
+*											   Local Types
+****************************************************************************/
+
+/****************************************************************************
+*											   Local Constants
+****************************************************************************/
+extern volatile T_ZDrvLcd_Info s_lcd_info;
+
+/****************************************************************************
+ * 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*/
+	zx29_led_init();
+/*lcd*/
+	//ret |= zDrvLcd_Initiate();
+#if 0
+	usb_charger_init();
+#endif
+	zx234502_charger_enable();
+
+	/* jtagµ÷ÊÔ */
+#if 0
+	jtag_init();
+#endif
+
+	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*/
+	zx29_led_PowerOnLedOn();
+	
+	/*lcd*/
+	zDrvLcd_ShowLowBattery();
+	
+	udelay(300);
+	zx29_led_PowerOnLedOff();
+	
+	/*lcd*/
+	if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0)
+	{
+		zDrvLcd_TurnBacklightOnOff(0);
+	}
+	else
+	{
+		zDrvLcd_TurnBacklightOnOff(1);
+	}
+	
+	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*/
+	zx29_led_PowerOnLedOn();
+
+	/*lcd*/
+	zDrvLcd_ShowNoBattery();
+
+	udelay(300);
+	/*led*/
+	zx29_led_PowerOnLedOff();
+	
+	if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0)
+	{
+		zDrvLcd_TurnBacklightOnOff(0);
+	}
+	else
+	{
+		zDrvLcd_TurnBacklightOnOff(1);
+	}
+	
+	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*/
+	zx29_led_PowerOnLedOn();
+
+	/*lcd*/
+	zDrvLcd_PowerOnLogo();
+	udelay(300);
+	zx29_led_PowerOnLedOff();
+
+	if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0)
+	{
+		zDrvLcd_TurnBacklightOnOff(0);
+	}
+	else
+	{
+		zDrvLcd_TurnBacklightOnOff(1);
+	}
+
+	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*/
+	zx29_led_PowerOnLedOn();
+
+	/*lcd*/
+	zDrvLcd_ShowUpdateWait();
+
+	udelay(300);
+	zx29_led_PowerOnLedOff();
+	
+	if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0)
+	{
+		zDrvLcd_TurnBacklightOnOff(0);
+	}
+	else
+	{
+		zDrvLcd_TurnBacklightOnOff(1);
+	}
+
+	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*/
+	zx29_led_PowerOnLedOn();
+
+	/*lcd*/
+	zDrvLcd_ShowCharging();
+	udelay(300);
+	zx29_led_PowerOnLedOff();
+	
+	if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0)
+	{
+		zDrvLcd_TurnBacklightOnOff(0);
+	}
+	else
+	{
+		zDrvLcd_TurnBacklightOnOff(1);
+	}
+	
+	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)
+{
+#if 0
+    int ret = 0;
+	int boost_flag = 1;
+
+	zx234502_battery_status(&boost_flag);
+	if(boost_flag){
+		return 0;/*battery uninstall*/
+	}
+	else
+		return 1;/*battery install*/
+#else
+    int ret = 0;
+    int battery_status = 0;
+
+    ret = zx234290_get_adc2_voltage();
+    if (ret < 0)
+    {
+        printf("\t[zx234290_get_adc2_voltage] return [%d] in [%s]\n", ret, __FUNCTION__);
+        return ret;
+    }
+
+    battery_status = (ret < 1770);
+
+#if 0
+    if (battery_status)
+        printf("\t[%s] get %d and return battery connected\n", __FUNCTION__, ret);
+    else
+        printf("\t[%s] get %d and return battery disconnected\n", __FUNCTION__, ret);
+#endif
+
+    return battery_status;
+#endif
+}
+