use It8951 files
This commit is contained in:
		| @@ -0,0 +1,209 @@ | ||||
| /***************************************************************************** | ||||
| * | File      	:   EPD_IT8951.h | ||||
| * | Author      :   Waveshare team | ||||
| * | Function    :   IT8951 Common driver | ||||
| * | Info        : | ||||
| *---------------- | ||||
| * |	This version:   V1.0 | ||||
| * | Date        :   2019-09-17 | ||||
| * | Info        : | ||||
| * ----------------------------------------------------------------------------- | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| # of this software and associated documnetation files (the "Software"), to deal | ||||
| # in the Software without restriction, including without limitation the rights | ||||
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| # copies of the Software, and to permit persons to  whom the Software is | ||||
| # furished to do so, subject to the following conditions: | ||||
| # | ||||
| # The above copyright notice and this permission notice shall be included in | ||||
| # all copies or substantial portions of the Software. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| # FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| # LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
| # THE SOFTWARE. | ||||
| # | ||||
| ******************************************************************************/ | ||||
| #ifndef __EPD_IT8951_H_ | ||||
| #define __EPD_IT8951_H_ | ||||
|  | ||||
| #include <stdbool.h> | ||||
|  | ||||
| #include "../Config/DEV_Config.h" | ||||
|  | ||||
|  | ||||
| // INIT mode, for every init or some time after A2 mode refresh | ||||
| extern UBYTE INIT_Mode; | ||||
| // GC16 mode, for every time to display 16 grayscale image | ||||
| extern UBYTE GC16_Mode; | ||||
| // A2 mode, for fast refresh without flash | ||||
| extern UBYTE A2_Mode; | ||||
|  | ||||
|  | ||||
| typedef struct IT8951_Load_Img_Info | ||||
| { | ||||
|     UWORD    Endian_Type;         //little or Big Endian | ||||
|     UWORD    Pixel_Format;        //bpp | ||||
|     UWORD    Rotate;              //Rotate mode | ||||
|     UDOUBLE  Source_Buffer_Addr;  //Start address of source Frame buffer | ||||
|     UDOUBLE  Target_Memory_Addr;  //Base address of target image buffer | ||||
| }IT8951_Load_Img_Info; | ||||
|  | ||||
| typedef struct IT8951_Area_Img_Info | ||||
| { | ||||
|     UWORD Area_X; | ||||
|     UWORD Area_Y; | ||||
|     UWORD Area_W; | ||||
|     UWORD Area_H; | ||||
| }IT8951_Area_Img_Info; | ||||
|  | ||||
| typedef struct IT8951_Dev_Info | ||||
| { | ||||
|     UWORD Panel_W; | ||||
|     UWORD Panel_H; | ||||
|     UWORD Memory_Addr_L; | ||||
|     UWORD Memory_Addr_H; | ||||
|     UWORD FW_Version[8]; | ||||
|     UWORD LUT_Version[8]; | ||||
| }IT8951_Dev_Info; | ||||
|  | ||||
| /*----------------------------------------------------------------------- | ||||
| IT8951 Command defines | ||||
| ------------------------------------------------------------------------*/ | ||||
|  | ||||
| //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 | ||||
| #define USDEF_I80_CMD_VCOM		   0x0039 | ||||
|  | ||||
| /*----------------------------------------------------------------------- | ||||
|  IT8951 Mode defines | ||||
| ------------------------------------------------------------------------*/ | ||||
|  | ||||
| //Rotate mode | ||||
| #define IT8951_ROTATE_0     0 | ||||
| #define IT8951_ROTATE_90    1 | ||||
| #define IT8951_ROTATE_180   2 | ||||
| #define IT8951_ROTATE_270   3 | ||||
|  | ||||
| //Pixel mode (Bit per Pixel) | ||||
| #define IT8951_2BPP   0 | ||||
| #define IT8951_3BPP   1 | ||||
| #define IT8951_4BPP   2 | ||||
| #define IT8951_8BPP   3 | ||||
|  | ||||
| //Endian Type | ||||
| #define IT8951_LDIMG_L_ENDIAN   0 | ||||
| #define IT8951_LDIMG_B_ENDIAN   1 | ||||
|  | ||||
| /*----------------------------------------------------------------------- | ||||
| IT8951 Registers defines | ||||
| ------------------------------------------------------------------------*/ | ||||
| //Register Base Address | ||||
| #define DISPLAY_REG_BASE 0x1000               //Register RW access | ||||
|  | ||||
| //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 EPD_IT8951_SystemRun(); | ||||
| void EPD_IT8951_Standby(); | ||||
| void EPD_IT8951_Sleep(); | ||||
|  | ||||
| UWORD EPD_IT8951_ReadReg(UWORD Reg_Address); | ||||
| void EPD_IT8951_WriteReg(UWORD Reg_Address,UWORD Reg_Value); | ||||
| UWORD EPD_IT8951_GetVCOM(void); | ||||
| void EPD_IT8951_SetVCOM(UWORD VCOM); | ||||
|  | ||||
| void EPD_IT8951_LoadImgStart( IT8951_Load_Img_Info* Load_Img_Info ); | ||||
| void EPD_IT8951_LoadImgAreaStart( IT8951_Load_Img_Info* Load_Img_Info, IT8951_Area_Img_Info* Area_Img_Info ); | ||||
| void EPD_IT8951_LoadImgEnd(void); | ||||
|  | ||||
| void EPD_IT8951_GetSystemInfo(void* Buf); | ||||
| void EPD_IT8951_SetTargetMemoryAddr(UDOUBLE Target_Memory_Addr); | ||||
| void EPD_IT8951_WaitForDisplayReady(void); | ||||
|  | ||||
|  | ||||
| void EPD_IT8951_HostAreaPackedPixelWrite_8bp(IT8951_Load_Img_Info*Load_Img_Info,IT8951_Area_Img_Info*Area_Img_Info); | ||||
|  | ||||
| void EPD_IT8951_HostAreaPackedPixelWrite_1bp(IT8951_Load_Img_Info*Load_Img_Info,IT8951_Area_Img_Info*Area_Img_Info, bool Packed_Write); | ||||
|  | ||||
| void EPD_IT8951_HostAreaPackedPixelWrite_2bp(IT8951_Load_Img_Info*Load_Img_Info,IT8951_Area_Img_Info*Area_Img_Info, bool Packed_Write); | ||||
|  | ||||
| void EPD_IT8951_Display_Area(UWORD X,UWORD Y,UWORD W,UWORD H,UWORD Mode); | ||||
| void EPD_IT8951_Display_AreaBuf(UWORD X,UWORD Y,UWORD W,UWORD H,UWORD Mode, UDOUBLE Target_Memory_Addr); | ||||
|  | ||||
| void EPD_IT8951_Display_1bp(UWORD X, UWORD Y, UWORD W, UWORD H, UWORD Mode,UDOUBLE Target_Memory_Addr, UBYTE Front_Gray_Val, UBYTE Back_Gray_Val); | ||||
| */ | ||||
|  | ||||
| void Enhance_Driving_Capability(void); | ||||
|  | ||||
| void EPD_IT8951_SystemRun(void); | ||||
|  | ||||
| void EPD_IT8951_Standby(void); | ||||
|  | ||||
| void EPD_IT8951_Sleep(void); | ||||
|  | ||||
| IT8951_Dev_Info EPD_IT8951_Init(UWORD VCOM); | ||||
|  | ||||
| void EPD_IT8951_Clear_Refresh(IT8951_Dev_Info Dev_Info,UDOUBLE Target_Memory_Addr, UWORD Mode); | ||||
|  | ||||
| void EPD_IT8951_1bp_Refresh(UBYTE* Frame_Buf, UWORD X, UWORD Y, UWORD W, UWORD H, UBYTE Mode, UDOUBLE Target_Memory_Addr, bool Packed_Write); | ||||
| void EPD_IT8951_1bp_Multi_Frame_Write(UBYTE* Frame_Buf, UWORD X, UWORD Y, UWORD W, UWORD H,UDOUBLE Target_Memory_Addr, bool Packed_Write); | ||||
| void EPD_IT8951_1bp_Multi_Frame_Refresh(UWORD X, UWORD Y, UWORD W, UWORD H,UDOUBLE Target_Memory_Addr); | ||||
|  | ||||
| void EPD_IT8951_2bp_Refresh(UBYTE* Frame_Buf, UWORD X, UWORD Y, UWORD W, UWORD H, bool Hold, UDOUBLE Target_Memory_Addr, bool Packed_Write); | ||||
|  | ||||
| void EPD_IT8951_4bp_Refresh(UBYTE* Frame_Buf, UWORD X, UWORD Y, UWORD W, UWORD H, bool Hold, UDOUBLE Target_Memory_Addr, bool Packed_Write); | ||||
|  | ||||
| void EPD_IT8951_8bp_Refresh(UBYTE *Frame_Buf, UWORD X, UWORD Y, UWORD W, UWORD H, bool Hold, UDOUBLE Target_Memory_Addr); | ||||
|  | ||||
|  | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user