aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gdisp/SSD1289/gdisp_lld.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/gdisp/SSD1289/gdisp_lld.c b/drivers/gdisp/SSD1289/gdisp_lld.c
index 68cdf675..5743afc0 100644
--- a/drivers/gdisp/SSD1289/gdisp_lld.c
+++ b/drivers/gdisp/SSD1289/gdisp_lld.c
@@ -42,8 +42,6 @@
// Some common routines and macros
#define write_reg(reg, data) { write_index(reg); write_data(data); }
-#define stream_start() write_index(0x0022);
-#define stream_stop()
#define delay(us) gfxSleepMicroseconds(us)
#define delayms(ms) gfxSleepMilliseconds(ms)
@@ -55,9 +53,8 @@ static void set_viewport(GDISPDriver* g) {
* Reg 0x45,0x46 - Vertical RAM address position
* Lower 9 bits gives 0-511 range in each value
* 0 <= Reg(0x45) <= Reg(0x46) <= 0x13F
- */
- /* Reg 0x004E is an 8 bit value
- * Reg 0x004F is 9 bit
+ * Reg 0x004E is an 8 bit value - start x position
+ * Reg 0x004F is 9 bit - start y position
* Use a bit mask to make sure they are not set too high
*/
switch(g->g.Orientation) {
@@ -91,6 +88,7 @@ static void set_viewport(GDISPDriver* g) {
write_reg(0x004f, g->p.x & 0x01FF);
break;
}
+ write_index(0x0022);
}
/*===========================================================================*/
@@ -176,13 +174,11 @@ LLDSPEC bool_t gdisp_lld_init(GDISPDriver *g) {
LLDSPEC void gdisp_lld_write_start(GDISPDriver *g) {
acquire_bus();
set_viewport(g);
- stream_start();
}
LLDSPEC void gdisp_lld_write_color(GDISPDriver *g) {
write_data(g->p.color);
}
LLDSPEC void gdisp_lld_write_stop(GDISPDriver *g) {
- stream_stop();
release_bus();
}
#endif
@@ -193,7 +189,6 @@ LLDSPEC bool_t gdisp_lld_init(GDISPDriver *g) {
acquire_bus();
set_viewport(g);
- stream_start();
setreadmode();
dummy = read_data(); // dummy read
}
@@ -202,7 +197,6 @@ LLDSPEC bool_t gdisp_lld_init(GDISPDriver *g) {
}
LLDSPEC void gdisp_lld_read_stop(GDISPDriver *g) {
setwritemode();
- stream_stop();
release_bus();
}
#endif
@@ -211,9 +205,7 @@ LLDSPEC bool_t gdisp_lld_init(GDISPDriver *g) {
LLDSPEC void gdisp_lld_fill_area(GDISPDriver *g) {
acquire_bus();
set_viewport(g);
- stream_start();
dma_with_noinc(&color, g->p.cx*g->p.cy)
- stream_stop();
release_bus();
}
#endif
@@ -227,15 +219,12 @@ LLDSPEC bool_t gdisp_lld_init(GDISPDriver *g) {
acquire_bus();
set_viewport(g);
- stream_start();
-
if (g->p.x2 == g->p.cx) {
dma_with_inc(buffer, g->p.cx*g->p.cy);
} else {
for (ycnt = g->p.cy; ycnt; ycnt--, buffer += g->p.x2)
dma_with_inc(buffer, g->p.cy);
}
- stream_stop();
release_bus();
}
#endif