aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gdisp/Nokia6610GE8/gdisp_lld.c14
-rw-r--r--drivers/gdisp/SSD1289/gdisp_lld.c99
2 files changed, 53 insertions, 60 deletions
diff --git a/drivers/gdisp/Nokia6610GE8/gdisp_lld.c b/drivers/gdisp/Nokia6610GE8/gdisp_lld.c
index a41ab3c9..ce0400d1 100644
--- a/drivers/gdisp/Nokia6610GE8/gdisp_lld.c
+++ b/drivers/gdisp/Nokia6610GE8/gdisp_lld.c
@@ -17,9 +17,6 @@
#if GFX_USE_GDISP
-#define GDISP_LLD_DECLARATIONS
-#include "gdisp/lld/gdisp_lld.h"
-
/**
* This is for the EPSON (GE8) controller driving a Nokia6610 color LCD display.
* Note that there is also a PHILIPS (GE12) controller for the same display that this code
@@ -52,10 +49,6 @@
* orientation support and the streaming operations will be emulated (as described above).
*/
-/*===========================================================================*/
-/* Driver local definitions. */
-/*===========================================================================*/
-
#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
@@ -65,7 +58,14 @@
#undef GDISP_SCREEN_WIDTH
#endif
+#define GDISP_LLD_DECLARATIONS
+#include "gdisp/lld/gdisp_lld.h"
#include "gdisp_lld_board.h"
+
+/*===========================================================================*/
+/* Driver local definitions. */
+/*===========================================================================*/
+
#include "GE8.h"
#define GDISP_SCAN_LINES 132
diff --git a/drivers/gdisp/SSD1289/gdisp_lld.c b/drivers/gdisp/SSD1289/gdisp_lld.c
index c724e80b..7ec2b590 100644
--- a/drivers/gdisp/SSD1289/gdisp_lld.c
+++ b/drivers/gdisp/SSD1289/gdisp_lld.c
@@ -8,14 +8,11 @@
/**
* @file drivers/gdisp/SSD1289/gdisp_lld.c
* @brief GDISP Graphics Driver subsystem low level driver source for the SSD1289 display.
- *
- * @addtogroup GDISP
- * @{
*/
#include "gfx.h"
-#if GFX_USE_GDISP /*|| defined(__DOXYGEN__)*/
+#if GFX_USE_GDISP
#define GDISP_LLD_DECLARATIONS
#include "gdisp/lld/gdisp_lld.h"
@@ -43,9 +40,8 @@
/*===========================================================================*/
// Some common routines and macros
+#define dummy_read() { volatile uint16_t dummy; dummy = read_data(); (void) dummy; }
#define write_reg(reg, data) { write_index(reg); write_data(data); }
-#define delay(us) gfxSleepMicroseconds(us)
-#define delayms(ms) gfxSleepMilliseconds(ms)
static void set_viewport(GDISPDriver* g) {
/* Reg 0x44 - Horizontal RAM address position
@@ -107,54 +103,54 @@ LLDSPEC bool_t gdisp_lld_init(GDISPDriver *g) {
// Hardware reset
setpin_reset(TRUE);
- delayms(20);
+ gfxSleepMilliseconds(20);
setpin_reset(FALSE);
- delayms(20);
+ gfxSleepMilliseconds(20);
// Get the bus for the following initialisation commands
acquire_bus();
- write_reg(0x0000,0x0001); delay(5);
- write_reg(0x0003,0xA8A4); delay(5);
- write_reg(0x000C,0x0000); delay(5);
- write_reg(0x000D,0x080C); delay(5);
- write_reg(0x000E,0x2B00); delay(5);
- write_reg(0x001E,0x00B0); delay(5);
- write_reg(0x0001,0x2B3F); delay(5);
- write_reg(0x0002,0x0600); delay(5);
- write_reg(0x0010,0x0000); delay(5);
- write_reg(0x0011,0x6070); delay(5);
- write_reg(0x0005,0x0000); delay(5);
- write_reg(0x0006,0x0000); delay(5);
- write_reg(0x0016,0xEF1C); delay(5);
- write_reg(0x0017,0x0003); delay(5);
- write_reg(0x0007,0x0133); delay(5);
- write_reg(0x000B,0x0000); delay(5);
- write_reg(0x000F,0x0000); delay(5);
- write_reg(0x0041,0x0000); delay(5);
- write_reg(0x0042,0x0000); delay(5);
- write_reg(0x0048,0x0000); delay(5);
- write_reg(0x0049,0x013F); delay(5);
- write_reg(0x004A,0x0000); delay(5);
- write_reg(0x004B,0x0000); delay(5);
- write_reg(0x0044,0xEF00); delay(5);
- write_reg(0x0045,0x0000); delay(5);
- write_reg(0x0046,0x013F); delay(5);
- write_reg(0x0030,0x0707); delay(5);
- write_reg(0x0031,0x0204); delay(5);
- write_reg(0x0032,0x0204); delay(5);
- write_reg(0x0033,0x0502); delay(5);
- write_reg(0x0034,0x0507); delay(5);
- write_reg(0x0035,0x0204); delay(5);
- write_reg(0x0036,0x0204); delay(5);
- write_reg(0x0037,0x0502); delay(5);
- write_reg(0x003A,0x0302); delay(5);
- write_reg(0x003B,0x0302); delay(5);
- write_reg(0x0023,0x0000); delay(5);
- write_reg(0x0024,0x0000); delay(5);
- write_reg(0x0025,0x8000); delay(5);
- write_reg(0x004f,0x0000); delay(5);
- write_reg(0x004e,0x0000); delay(5);
+ write_reg(0x0000,0x0001); gfxSleepMicroseconds(5);
+ write_reg(0x0003,0xA8A4); gfxSleepMicroseconds(5);
+ write_reg(0x000C,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x000D,0x080C); gfxSleepMicroseconds(5);
+ write_reg(0x000E,0x2B00); gfxSleepMicroseconds(5);
+ write_reg(0x001E,0x00B0); gfxSleepMicroseconds(5);
+ write_reg(0x0001,0x2B3F); gfxSleepMicroseconds(5);
+ write_reg(0x0002,0x0600); gfxSleepMicroseconds(5);
+ write_reg(0x0010,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0011,0x6070); gfxSleepMicroseconds(5);
+ write_reg(0x0005,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0006,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0016,0xEF1C); gfxSleepMicroseconds(5);
+ write_reg(0x0017,0x0003); gfxSleepMicroseconds(5);
+ write_reg(0x0007,0x0133); gfxSleepMicroseconds(5);
+ write_reg(0x000B,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x000F,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0041,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0042,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0048,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0049,0x013F); gfxSleepMicroseconds(5);
+ write_reg(0x004A,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x004B,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0044,0xEF00); gfxSleepMicroseconds(5);
+ write_reg(0x0045,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0046,0x013F); gfxSleepMicroseconds(5);
+ write_reg(0x0030,0x0707); gfxSleepMicroseconds(5);
+ write_reg(0x0031,0x0204); gfxSleepMicroseconds(5);
+ write_reg(0x0032,0x0204); gfxSleepMicroseconds(5);
+ write_reg(0x0033,0x0502); gfxSleepMicroseconds(5);
+ write_reg(0x0034,0x0507); gfxSleepMicroseconds(5);
+ write_reg(0x0035,0x0204); gfxSleepMicroseconds(5);
+ write_reg(0x0036,0x0204); gfxSleepMicroseconds(5);
+ write_reg(0x0037,0x0502); gfxSleepMicroseconds(5);
+ write_reg(0x003A,0x0302); gfxSleepMicroseconds(5);
+ write_reg(0x003B,0x0302); gfxSleepMicroseconds(5);
+ write_reg(0x0023,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0024,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x0025,0x8000); gfxSleepMicroseconds(5);
+ write_reg(0x004f,0x0000); gfxSleepMicroseconds(5);
+ write_reg(0x004e,0x0000); gfxSleepMicroseconds(5);
// Release the bus
release_bus();
@@ -187,12 +183,10 @@ LLDSPEC bool_t gdisp_lld_init(GDISPDriver *g) {
#if GDISP_HARDWARE_STREAM_READ
LLDSPEC void gdisp_lld_read_start(GDISPDriver *g) {
- uint16_t dummy;
-
acquire_bus();
set_viewport(g);
setreadmode();
- dummy = read_data(); // dummy read
+ dummy_read();
}
LLDSPEC color_t gdisp_lld_read_color(GDISPDriver *g) {
return read_data();
@@ -318,4 +312,3 @@ LLDSPEC bool_t gdisp_lld_init(GDISPDriver *g) {
#endif
#endif /* GFX_USE_GDISP */
-/** @} */