#ifndef _IT8951_H_ #define _IT8951_H_ #include #include #include #include #include #include "miniGUI.h" #define CS 8 #define HRDY 24 #define RESET 17 //prototype of structure //structure prototype 1 typedef struct IT8951LdImgInfo { uint16_t usEndianType; //little or Big Endian uint16_t usPixelFormat; //bpp uint16_t usRotate; //Rotate mode uint32_t ulStartFBAddr; //Start address of source Frame buffer uint32_t ulImgBufBaseAddr;//Base address of target image buffer }IT8951LdImgInfo; //structure prototype 2 typedef struct IT8951AreaImgInfo { uint16_t usX; uint16_t usY; uint16_t usWidth; uint16_t usHeight; }IT8951AreaImgInfo; typedef struct { uint16_t usPanelW; uint16_t usPanelH; uint16_t usImgBufAddrL; uint16_t usImgBufAddrH; uint16_t usFWVersion[8]; //16 Bytes String uint16_t usLUTVersion[8]; //16 Bytes String }IT8951DevInfo; //Built in I80 Command Code #define IT8951_TCON_SYS_RUN 0x0001 #define IT8951_TCON_STANDBY 0x0002 #define IT8951_TCON_SLEEP 0x0003 #define IT8951_TCON_REG_RD 0x0010 #define IT8951_TCON_REG_WR 0x0011 #define IT8951_TCON_MEM_BST_RD_T 0x0012 #define IT8951_TCON_MEM_BST_RD_S 0x0013 #define IT8951_TCON_MEM_BST_WR 0x0014 #define IT8951_TCON_MEM_BST_END 0x0015 #define IT8951_TCON_LD_IMG 0x0020 #define IT8951_TCON_LD_IMG_AREA 0x0021 #define IT8951_TCON_LD_IMG_END 0x0022 //I80 User defined command code #define USDEF_I80_CMD_DPY_AREA 0x0034 #define USDEF_I80_CMD_GET_DEV_INFO 0x0302 #define USDEF_I80_CMD_DPY_BUF_AREA 0x0037 //Panel #define IT8951_PANEL_WIDTH 1024 //it Get Device information #define IT8951_PANEL_HEIGHT 758 //Rotate mode #define IT8951_ROTATE_0 0 #define IT8951_ROTATE_90 1 #define IT8951_ROTATE_180 2 #define IT8951_ROTATE_270 3 //Pixel mode , BPP - Bit per Pixel #define IT8951_2BPP 0 #define IT8951_3BPP 1 #define IT8951_4BPP 2 #define IT8951_8BPP 3 //Waveform Mode #define IT8951_MODE_0 0 #define IT8951_MODE_1 1 #define IT8951_MODE_2 2 #define IT8951_MODE_3 3 #define IT8951_MODE_4 4 //Endian Type #define IT8951_LDIMG_L_ENDIAN 0 #define IT8951_LDIMG_B_ENDIAN 1 //Auto LUT #define IT8951_DIS_AUTO_LUT 0 #define IT8951_EN_AUTO_LUT 1 //LUT Engine Status #define IT8951_ALL_LUTE_BUSY 0xFFFF //----------------------------------------------------------------------- // IT8951 TCon Registers defines //----------------------------------------------------------------------- //Register Base Address #define DISPLAY_REG_BASE 0x1000 //Register RW access for I80 only //Base Address of Basic LUT Registers #define LUT0EWHR (DISPLAY_REG_BASE + 0x00) //LUT0 Engine Width Height Reg #define LUT0XYR (DISPLAY_REG_BASE + 0x40) //LUT0 XY Reg #define LUT0BADDR (DISPLAY_REG_BASE + 0x80) //LUT0 Base Address Reg #define LUT0MFN (DISPLAY_REG_BASE + 0xC0) //LUT0 Mode and Frame number Reg #define LUT01AF (DISPLAY_REG_BASE + 0x114) //LUT0 and LUT1 Active Flag Reg //Update Parameter Setting Register #define UP0SR (DISPLAY_REG_BASE + 0x134) //Update Parameter0 Setting Reg #define UP1SR (DISPLAY_REG_BASE + 0x138) //Update Parameter1 Setting Reg #define LUT0ABFRV (DISPLAY_REG_BASE + 0x13C) //LUT0 Alpha blend and Fill rectangle Value #define UPBBADDR (DISPLAY_REG_BASE + 0x17C) //Update Buffer Base Address #define LUT0IMXY (DISPLAY_REG_BASE + 0x180) //LUT0 Image buffer X/Y offset Reg #define LUTAFSR (DISPLAY_REG_BASE + 0x224) //LUT Status Reg (status of All LUT Engines) #define BGVR (DISPLAY_REG_BASE + 0x250) //Bitmap (1bpp) image color table //-------System Registers---------------- #define SYS_REG_BASE 0x0000 //Address of System Registers #define I80CPCR (SYS_REG_BASE + 0x04) //-------Memory Converter Registers---------------- #define MCSR_BASE_ADDR 0x0200 #define MCSR (MCSR_BASE_ADDR + 0x0000) #define LISAR (MCSR_BASE_ADDR + 0x0008) void InterfaceInit(void); //void HostInit(void); uint8_t IT8951_Init(void); void IT8951_Cancel(void); void IT8951DisplayExample(void); void IT8951DisplayExample2(void); void IT8951Display1bppExample2(void); void IT8951DisplayExample3(void); void IT8951_GUI_Example(void); void IT8951_BMP_Example(uint32_t x, uint32_t y,char *path); //temp uint16_t IT8951ReadReg(uint16_t usRegAddr); void IT8951SetImgBufBaseAddr(uint32_t ulImgBufAddr); void LCDWaitForReady(void); void GetIT8951SystemInfo(void* pBuf); void gpio_i80_16b_cmd_out(uint16_t usCmd); void GPIO_Configuration_Out(void); void GPIO_Configuration_In(void); void IT8951DisplayClear(void); //uint16_t IT8951ReadReg(uint16_t usRegAddr); void IT8951WriteReg(uint16_t usRegAddr,uint16_t usValue); #endif