[Feature][T106]ZXW P56U09 code

Only Configure: Yes
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: No
Doc Update: No

Change-Id: I3cbd8b420271eb20c2b40ebe5c78f83059cd42f3
diff --git a/boot/common/src/uboot/drivers/peripheral/peripheral.c b/boot/common/src/uboot/drivers/peripheral/peripheral.c
new file mode 100755
index 0000000..82b7061
--- /dev/null
+++ b/boot/common/src/uboot/drivers/peripheral/peripheral.c
@@ -0,0 +1,354 @@
+/*******************************************************************************

+ * 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 <drvs_gpio.h>

+#include "common.h"

+#include <dma_cfg.h>

+

+//#include <gpio.h>

+

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

+*											   Local Macros

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

+#define SD1_IO_1V8_EN	0x13c830

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

+#define MMC0_USED_EN	1

+#define MMC1_USED_EN	1

+

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

+*											   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();

+	

+/*mmc config*/

+	REG32(MMC_FLAG_ADDR) &=~0x3;//clear bit0~1	

+	REG32(MMC_FLAG_ADDR) |=((MMC0_USED_EN<<0)|(MMC1_USED_EN<<1));

+/*led*/

+/*lcd*/

+

+	/* jtag调试 */

+#if 0

+	jtag_init();

+#endif

+

+//#if 0//ref need ldo8 2.85V

+#if defined(CONFIG_ZX297520V3E_VEHICLE_DC) || defined(CONFIG_ZX297520V3E_VEHICLE_DC_REF)

+/*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);

+

+	/*关闭gps电源*/

+	zDrvGpio_SetFunc(GPIO86, GPIO86_GPIO86);

+	zDrvGpio_SetDirection(GPIO86, GPIO_OUT);

+	zDrvGpio_SetOutputValue(GPIO86, GPIO_LOW);

+#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*/

+}

+

+

+

+