diff options
Diffstat (limited to 'drivers/gdisp/LGD4532')
-rw-r--r-- | drivers/gdisp/LGD4532/board_LGD4532_template.h | 71 | ||||
-rw-r--r-- | drivers/gdisp/LGD4532/driver.mk | 2 | ||||
-rw-r--r-- | drivers/gdisp/LGD4532/gdisp_lld_LGD4532.c | 359 | ||||
-rw-r--r-- | drivers/gdisp/LGD4532/gdisp_lld_config.h | 21 |
4 files changed, 0 insertions, 453 deletions
diff --git a/drivers/gdisp/LGD4532/board_LGD4532_template.h b/drivers/gdisp/LGD4532/board_LGD4532_template.h deleted file mode 100644 index ca89cdc1..00000000 --- a/drivers/gdisp/LGD4532/board_LGD4532_template.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef GDISP_LLD_BOARD_H -#define GDISP_LLD_BOARD_H - -static inline void init_board(GDisplay *g) -{ - (void) g; -} - -static inline void post_init_board(GDisplay *g) -{ - (void) g; -} - -static inline void setpin_reset(GDisplay *g, bool_t state) -{ - (void) g; - (void) state; -} - -static inline void set_backlight(GDisplay *g, uint8_t percent) -{ - (void) g; - (void) percent; -} - -static inline void acquire_bus(GDisplay *g) -{ - (void) g; -} - -static inline void release_bus(GDisplay *g) -{ - (void) g; -} - -static inline void write_index(GDisplay *g, uint16_t index) -{ - (void) g; - (void) index; -} - -static inline void write_data(GDisplay *g, uint16_t data) -{ - (void) g; - (void) data; -} - -static inline void setreadmode(GDisplay *g) -{ - (void) g; -} - -static inline void setwritemode(GDisplay *g) -{ - (void) g; -} - -static inline uint16_t read_data(GDisplay *g) -{ - (void) g; - return 0; -} - -#endif /* GDISP_LLD_BOARD_H */ diff --git a/drivers/gdisp/LGD4532/driver.mk b/drivers/gdisp/LGD4532/driver.mk deleted file mode 100644 index 8323b891..00000000 --- a/drivers/gdisp/LGD4532/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += $(GFXLIB)/drivers/gdisp/LGD4532 -GFXSRC += $(GFXLIB)/drivers/gdisp/LGD4532/gdisp_lld_LGD4532.c diff --git a/drivers/gdisp/LGD4532/gdisp_lld_LGD4532.c b/drivers/gdisp/LGD4532/gdisp_lld_LGD4532.c deleted file mode 100644 index 1cd58f16..00000000 --- a/drivers/gdisp/LGD4532/gdisp_lld_LGD4532.c +++ /dev/null @@ -1,359 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#include "gfx.h" - -#if GFX_USE_GDISP - -/* This controller is only ever used with a 240 x 320 display */ -#if defined(GDISP_SCREEN_HEIGHT) - #warning "GDISP: This low level driver does not support setting a screen size. It is being ignored." - #undef GDISP_SCREEN_HEIGHT -#endif -#if defined(GDISP_SCREEN_WIDTH) - #warning "GDISP: This low level driver does not support setting a screen size. It is being ignored." - #undef GDISP_SCREEN_WIDTH -#endif - -#define GDISP_DRIVER_VMT GDISPVMT_LGD4532 -#include "gdisp_lld_config.h" -#include "src/gdisp/driver.h" - -#include "board_LGD4532.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 320 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 240 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 50 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 100 -#endif - -/*===========================================================================*/ -/* Driver local variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -// Some common routines and macros -#define dummy_read(g) { volatile uint16_t dummy; dummy = read_data(g); (void) dummy; } -#define write_reg(g, reg, data) { write_index(g, reg); write_data(g, data); } - -static void set_cursor(GDisplay *g) { - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - write_reg(g, 0x20, g->p.x); - write_reg(g, 0x21, g->p.y); - break; - - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - write_reg(g, 0x20, g->p.y); - write_reg(g, 0x21, g->p.x); - break; - } - write_index(g, 0x22); -} - -static void set_viewport(GDisplay* g) { - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - write_reg(g, 0x50, g->p.x); - write_reg(g, 0x51, g->p.x + g->p.cx - 1); - write_reg(g, 0x52, g->p.y); - write_reg(g, 0x53, g->p.y + g->p.cy - 1); - break; - - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - write_reg(g, 0x50, g->p.y); - write_reg(g, 0x51, g->p.y + g->p.cy - 1); - write_reg(g, 0x52, g->p.x); - write_reg(g, 0x53, g->p.x + g->p.cx - 1); - break; - } -} - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // No private area for this controller - g->priv = 0; - - // Initialise the board interface - init_board(g); - - /* Hardware reset */ - setpin_reset(g, TRUE); - gfxSleepMilliseconds(1); - setpin_reset(g, FALSE); - gfxSleepMilliseconds(2); - - acquire_bus(g); - setwritemode(g); - - // chinese code starts here - //############# void Power_Set(void) ################// - write_reg(g, 0x00, 0x0001); - gfxSleepMilliseconds(10); - - write_reg(g, 0x15, 0x0030); - write_reg(g, 0x11, 0x0040); - write_reg(g, 0x10, 0x1628); - write_reg(g, 0x12, 0x0000); - write_reg(g, 0x13, 0x104d); - gfxSleepMilliseconds(10); - write_reg(g, 0x12, 0x0010); - gfxSleepMilliseconds(10); - write_reg(g, 0x10, 0x2620); - write_reg(g, 0x13, 0x344d); //304d - gfxSleepMilliseconds(10); - - write_reg(g, 0x01, 0x0100); - write_reg(g, 0x02, 0x0300); - write_reg(g, 0x03, 0x1038);//0x1030 - write_reg(g, 0x08, 0x0604); - write_reg(g, 0x09, 0x0000); - write_reg(g, 0x0A, 0x0008); - - write_reg(g, 0x41, 0x0002); - write_reg(g, 0x60, 0xA700); - write_reg(g, 0x61, 0x0001); - write_reg(g, 0x90, 0x0182); - write_reg(g, 0x93, 0x0001); - write_reg(g, 0xa3, 0x0010); - gfxSleepMilliseconds(10); - - //################# void Gamma_Set(void) ####################// - write_reg(g, 0x30, 0x0000); - write_reg(g, 0x31, 0x0502); - write_reg(g, 0x32, 0x0307); - write_reg(g, 0x33, 0x0305); - write_reg(g, 0x34, 0x0004); - write_reg(g, 0x35, 0x0402); - write_reg(g, 0x36, 0x0707); - write_reg(g, 0x37, 0x0503); - write_reg(g, 0x38, 0x1505); - write_reg(g, 0x39, 0x1505); - gfxSleepMilliseconds(10); - - //################## void Display_ON(void) ####################// - write_reg(g, 0x07, 0x0001); - gfxSleepMilliseconds(10); - write_reg(g, 0x07, 0x0021); - write_reg(g, 0x07, 0x0023); - gfxSleepMilliseconds(10); - write_reg(g, 0x07, 0x0033); - gfxSleepMilliseconds(10); - write_reg(g, 0x07, 0x0133); - // chinese code ends here - - // Finish Init - post_init_board(g); - - // Release the bus - release_bus(g); - - // Turn on the backlight - set_backlight(g, GDISP_INITIAL_BACKLIGHT); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - - return TRUE; -} - -#if GDISP_HARDWARE_STREAM_WRITE - LLDSPEC void gdisp_lld_write_start(GDisplay *g) { - acquire_bus(g); - set_viewport(g); - } - LLDSPEC void gdisp_lld_write_color(GDisplay *g) { - write_data(g, gdispColor2Native(g->p.color)); - } - LLDSPEC void gdisp_lld_write_stop(GDisplay *g) { - release_bus(g); - } - LLDSPEC void gdisp_lld_write_pos(GDisplay *g) { - set_cursor(g); - } -#endif - -#if GDISP_HARDWARE_STREAM_READ - LLDSPEC void gdisp_lld_read_start(GDisplay *g) { - acquire_bus(g); - set_viewport(g); - set_cursor(g); - setreadmode(g); - dummy_read(g); - } - LLDSPEC color_t gdisp_lld_read_color(GDisplay *g) { - uint16_t data; - - data = read_data(g); - return gdispNative2Color(data); - } - LLDSPEC void gdisp_lld_read_stop(GDisplay *g) { - setwritemode(g); - release_bus(g); - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - acquire_bus(g); - write_reg(g, 0x07, 0x0000); - write_reg(g, 0x10, 0x0000); - write_reg(g, 0x11, 0x0000); - write_reg(g, 0x12, 0x0000); - write_reg(g, 0x13, 0x0000); - release_bus(g); - set_backlight(g, 0); - break; - - case powerOn: - //*************Power On sequence ******************// - acquire_bus(g); - write_reg(g, 0x10, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */ - write_reg(g, 0x11, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */ - write_reg(g, 0x12, 0x0000); /* VREG1OUT voltage */ - write_reg(g, 0x13, 0x0000); /* VDV[4:0] for VCOM amplitude */ - gfxSleepMilliseconds(200); /* Dis-charge capacitor power voltage */ - write_reg(g, 0x10, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */ - write_reg(g, 0x11, 0x0147); /* DC1[2:0], DC0[2:0], VC[2:0] */ - gfxSleepMilliseconds(50); - write_reg(g, 0x12, 0x013C); /* VREG1OUT voltage */ - gfxSleepMilliseconds(50); - write_reg(g, 0x13, 0x0E00); /* VDV[4:0] for VCOM amplitude */ - write_reg(g, 0x29, 0x0009); /* VCM[4:0] for VCOMH */ - gfxSleepMilliseconds(50); - write_reg(g, 0x07, 0x0173); /* 262K color and display ON */ - release_bus(g); - set_backlight(g, g->g.Backlight); - break; - - case powerSleep: - acquire_bus(g); - write_reg(g, 0x07, 0x0000); /* display OFF */ - write_reg(g, 0x10, 0x0000); /* SAP, BT[3:0], APE, AP, DSTB, SLP */ - write_reg(g, 0x11, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */ - write_reg(g, 0x12, 0x0000); /* VREG1OUT voltage */ - write_reg(g, 0x13, 0x0000); /* VDV[4:0] for VCOM amplitude */ - gfxSleepMilliseconds(200); /* Dis-charge capacitor power voltage */ - write_reg(g, 0x10, 0x0002); /* SAP, BT[3:0], APE, AP, DSTB, SLP */ - release_bus(g); - set_backlight(g, g->g.Backlight); - break; - - case powerDeepSleep: - acquire_bus(g); - write_reg(g, 0x07, 0x0000); /* display OFF */ - write_reg(g, 0x10, 0x0000); /* SAP, BT[3:0], APE, AP, DSTB, SLP */ - write_reg(g, 0x11, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */ - write_reg(g, 0x12, 0x0000); /* VREG1OUT voltage */ - write_reg(g, 0x13, 0x0000); /* VDV[4:0] for VCOM amplitude */ - gfxSleepMilliseconds(200); /* Dis-charge capacitor power voltage */ - write_reg(g, 0x10, 0x0004); /* SAP, BT[3:0], APE, AP, DSTB, SLP */ - release_bus(g); - set_backlight(g, g->g.Backlight); - break; - - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - case GDISP_ROTATE_0: - acquire_bus(g); - write_reg(g, 0x01, 0x0100); - write_reg(g, 0x03, 0x1030); - write_reg(g, 0x60, 0x2700); - release_bus(g); - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - - case GDISP_ROTATE_90: - acquire_bus(g); - write_reg(g, 0x01, 0x0100); - write_reg(g, 0x03, 0x1038); - write_reg(g, 0x60, 0xA700); - release_bus(g); - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - - case GDISP_ROTATE_180: - acquire_bus(g); - write_reg(g, 0x01, 0x0000); - write_reg(g, 0x03, 0x1030); - write_reg(g, 0x60, 0xa700); - release_bus(g); - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - - case GDISP_ROTATE_270: - acquire_bus(g); - write_reg(g, 0x01, 0x0000); - write_reg(g, 0x03, 0x1038); - write_reg(g, 0x60, 0x2700); - release_bus(g); - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - - default: - return; - } - - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_BACKLIGHT: - if ((unsigned)g->p.ptr > 100) - g->p.ptr = (void *)100; - set_backlight(g, (unsigned)g->p.ptr); - g->g.Backlight = (unsigned)g->p.ptr; - return; - - default: - return; - } - } -#endif - -#endif /* GFX_USE_GDISP */ diff --git a/drivers/gdisp/LGD4532/gdisp_lld_config.h b/drivers/gdisp/LGD4532/gdisp_lld_config.h deleted file mode 100644 index 3f11ecc3..00000000 --- a/drivers/gdisp/LGD4532/gdisp_lld_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef GDISP_LLD_CONFIG_H -#define GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -#define GDISP_HARDWARE_STREAM_WRITE TRUE -#define GDISP_HARDWARE_STREAM_READ TRUE -#define GDISP_HARDWARE_STREAM_POS TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_RGB565 - -#endif /* GFX_USE_GDISP */ -#endif /* _GDISP_LLD_CONFIG_H */ |