aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2015-09-18 11:17:19 +1000
committerinmarket <andrewh@inmarket.com.au>2015-09-18 11:18:01 +1000
commit0ab22283645c819dc6228356ed1b608904a6ba9a (patch)
treeb6e8f3b91b96e1c23d47c18db0b0628bc198ac89 /drivers
parent4eb0dbb1e3b8be7eb85c8830ef350d4dae021f87 (diff)
downloaduGFX-0ab22283645c819dc6228356ed1b608904a6ba9a.tar.gz
uGFX-0ab22283645c819dc6228356ed1b608904a6ba9a.tar.bz2
uGFX-0ab22283645c819dc6228356ed1b608904a6ba9a.zip
Add support for SH1106 in the SSD1306 driver
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gdisp/SSD1306/SSD1306.h3
-rw-r--r--drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gdisp/SSD1306/SSD1306.h b/drivers/gdisp/SSD1306/SSD1306.h
index 7d7010e8..8ec8b3ad 100644
--- a/drivers/gdisp/SSD1306/SSD1306.h
+++ b/drivers/gdisp/SSD1306/SSD1306.h
@@ -44,6 +44,9 @@
#define SSD1306_EXTERNALVCC 0x1
#define SSD1306_SWITCHCAPVCC 0x2
+#define SSD1306_SETLOWCOLUMN 0x00
+#define SSD1306_SETHIGHCOLUMN 0x10
+
// Scrolling #defines
#define SSD1306_SCROLL_ACTIVATE 0x2F
#define SSD1306_SCROLL_DEACTIVATE 0x2E
diff --git a/drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c b/drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c
index 2313e765..5a950b0d 100644
--- a/drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c
+++ b/drivers/gdisp/SSD1306/gdisp_lld_SSD1306.c
@@ -150,6 +150,12 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
write_cmd(g, SSD1306_SETSTARTLINE | 0);
while (pages--) {
+ #if SSD1306_SH1106
+ write_cmd(g, SSD1306_PAM_PAGE_START + (7 - pages));
+ write_cmd(g, SSD1306_SETLOWCOLUMN + 2);
+ write_cmd(g, SSD1306_SETHIGHCOLUMN);
+ #endif
+
write_data(g, ram, SSD1306_PAGE_WIDTH);
ram += SSD1306_PAGE_WIDTH;
}