[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/lcd.h b/boot/common/src/uboot/include/lcd.h
new file mode 100644
index 0000000..902557d
--- /dev/null
+++ b/boot/common/src/uboot/include/lcd.h
@@ -0,0 +1,160 @@
+/*
+ * (C) Copyright 2016, ZIXC Corporation.
+ *
+ */
+
+#ifndef _LCD_H_
+#define _LCD_H_
+
+#include <common.h>
+
+//#include "types.h"
+/* return code */
+#define DRV_SUCCESS 0 /* successed */
+#define DRV_ERROR -1 /* failed */
+#define DRV_ERR_NOT_OPENED -9 /* the device to operate hasn't been opened yet */
+#define DRV_ERR_OPEN_TIMES -10 /* try to open a device which has been opened already */
+
+typedef unsigned int UINT32;
+
+typedef enum
+{
+ LCD_DCX_CMD = 0, // µÍµçƽÃüÁî
+ LCD_DCX_DATA, // ¸ßµçƽ²ÎÊý»òÊý¾Ý
+
+ MAX_LCD_DCX_TYPE
+} T_ZDrvLcd_DcxType; // transmission byte type
+
+typedef enum
+{
+ LCD_XFER_POLL = 0, // ÂÖѯ·½Ê½
+ LCD_XFER_INT, // ÖжϷ½Ê½
+ LCD_XFER_DMA, // DMA·½Ê½
+ LCD_XFER_CPU,
+
+ MAX_LCD_XFER_TYPE
+} T_ZDrvLcd_XferType;
+
+typedef enum zx297520_lcd_vendor
+{
+ VENDOR_YS = 0,
+ VENDOR_LD = 1,
+ VENDOR_TM = 2,
+ VENDOR_NUM = 3,
+};
+
+/* lcd mode */
+typedef enum
+{
+ LCD_NORMAL, /* normal mode */
+ LCD_SLEEP, /* sleep mode */
+
+ MAX_LCD_MODE
+} T_ZDrvLcd_Mode;
+
+/* lcd instance */
+typedef struct
+{
+ bool bOpen; /* status: open, close */
+ T_ZDrvLcd_Mode eMode; /* working mode: normal, sleep */
+ T_ZDrvLcd_XferType eXferType; /* poll, interrupt or DMA */
+ T_ZDrvLcd_DcxType eDcxType; /* command or parameter/data */
+} T_ZDrvLcd_Instance;
+
+
+typedef enum
+{
+ LCD_BACKLIGHT_OFF = 0,
+ LCD_BACKLIGHT_ON,
+
+} T_ZDrvLcd_BacklightStatus;
+
+typedef unsigned int T_ZDrvLcd_Brightness; /* [0, 255]: 0 - darkest; 255 - brightest */
+
+/* lcd module list */
+typedef enum
+{
+ ZGD_ST7735_128x160=0,
+ ZGD_GC910x_128x160,
+ ZGD_GC930x_240x320,
+ ZGD_GC9306_240x320,
+ ST7789V_240x320,
+ ST7567_128x64,
+ LEAD_ST7735_128x128,
+ LEAD_ST7735_128x128_F231E,
+ S93521A_128x128,
+ BOE7735S_128x128,
+ ST7789V_240x240,
+ ILI9342C_320x240,
+
+ MAX_LCD_ITEM
+} T_ZDrvLcd_Module_List;
+
+
+struct T_ZDrvLcd_Lcm_Id
+{
+ unsigned short dev_id;
+ unsigned char man_id;
+ T_ZDrvLcd_Module_List lcd_item;
+ char *name;
+};
+
+struct T_ZDrvLcd_gpio_define
+{
+ UINT32 spi_cs_gpio;
+ UINT32 spi_scl_gpio;
+ UINT32 spi_sda_gpio;
+ UINT32 spi_dcx_gpio;
+
+ UINT32 spi_cs_func_sel;
+ UINT32 spi_scl_func_sel;
+ UINT32 spi_sda_func_sel;
+ UINT32 spi_dcx_func_sel;
+
+ UINT32 spi_cs_gpio_sel;
+ UINT32 spi_scl_gpio_sel;
+ UINT32 spi_sda_gpio_sel;
+ UINT32 spi_dcx_gpio_sel;
+ UINT32 lcd_reset_gpio;
+ UINT32 lcd_reset_gpio_sel;
+
+ UINT32 lcd_blg_gpio;
+ UINT32 lcd_blg_gpio_sel;
+};
+
+typedef struct
+{
+ unsigned short width;
+ unsigned short height;
+ unsigned short bitsPerPixel;
+ unsigned short rMask;
+ unsigned short gMask;
+ unsigned short bMask;
+ T_ZDrvLcd_Instance instance;
+ T_ZDrvLcd_BacklightStatus backlight;
+ T_ZDrvLcd_Brightness brightness;
+ struct T_ZDrvLcd_Lcm_Id lcm_info;
+ struct T_ZDrvLcd_gpio_define gpio_def;
+} T_ZDrvLcd_Info;
+
+struct lcd_opt{
+ int (*get_info)(T_ZDrvLcd_Info* lcd_info);
+ int (*lcm_init)(void);
+ int (*update_rect)(unsigned char *pBuf, unsigned short uiLeft, unsigned short uiTop, unsigned short uiWidth, unsigned short uiHeight);
+};
+
+int zDrvLcd_BootPicFromRes(void);
+int zDrvLcd_PowerOnLogo(void);
+int zDrvLcd_ShowCharging(void);
+int zDrvLcd_ShowUpdateWait(void);
+int zDrvLcd_ShowUpdateSucc(void);
+int zDrvLcd_ShowUpdateFail(void);
+int zDrvLcd_ShowLowBattery(void);
+int zDrvLcd_ShowNoBattery(void);
+int zDrvLcd_TurnBacklightOnOff(unsigned int enable);
+
+int zDrvLcd_Initiate(void);
+int lcd_init(void);
+
+#endif
+