aboutsummaryrefslogtreecommitdiffstats
path: root/drv_Crystalfontz.c
diff options
context:
space:
mode:
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2004-01-25 05:30:09 +0000
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2004-01-25 05:30:09 +0000
commit870fec3b7b48712b88c2c8b3ebb05613b186cdd3 (patch)
treeca155e758edec1f13ad82cf5b0fef9d323920a0b /drv_Crystalfontz.c
parent821103866ec28ee777a093c71d696faf71152d0c (diff)
downloadlcd4linux-870fec3b7b48712b88c2c8b3ebb05613b186cdd3.tar.gz
[lcd4linux @ 2004-01-25 05:30:08 by reinelt]
plugin_netdev for parsing /proc/net/dev added git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@338 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
Diffstat (limited to 'drv_Crystalfontz.c')
-rw-r--r--drv_Crystalfontz.c39
1 files changed, 30 insertions, 9 deletions
diff --git a/drv_Crystalfontz.c b/drv_Crystalfontz.c
index c4a856f..62723bc 100644
--- a/drv_Crystalfontz.c
+++ b/drv_Crystalfontz.c
@@ -1,4 +1,4 @@
-/* $Id: drv_Crystalfontz.c,v 1.4 2004/01/23 07:04:03 reinelt Exp $
+/* $Id: drv_Crystalfontz.c,v 1.5 2004/01/25 05:30:09 reinelt Exp $
*
* new style driver for Crystalfontz display modules
*
@@ -23,6 +23,9 @@
*
*
* $Log: drv_Crystalfontz.c,v $
+ * Revision 1.5 2004/01/25 05:30:09 reinelt
+ * plugin_netdev for parsing /proc/net/dev added
+ *
* Revision 1.4 2004/01/23 07:04:03 reinelt
* icons finished!
*
@@ -88,7 +91,9 @@ typedef struct {
static MODEL Models[] = {
{ 0x26, "626", 2, 16, 0, 1 },
+ { 0x31, "631", 2, 16, 0, 2 },
{ 0x32, "632", 2, 16, 0, 1 },
+ { 0x33, "633", 2, 16, 0, 2 },
{ 0x34, "634", 4, 20, 0, 1 },
{ 0x36, "636", 2, 16, 0, 1 },
{ 0xff, "Unknown", -1, -1, 0, 0 }
@@ -128,6 +133,7 @@ static int drv_CF_start (char *section)
{
int i;
char *model;
+ char buffer[17];
model=cfg_get(section, "Model", NULL);
if (model!=NULL && *model!='\0') {
@@ -141,22 +147,37 @@ static int drv_CF_start (char *section)
Model=i;
info ("%s: using model '%s'", Name, Models[Model].name);
} else {
- error ("%s: no '%s.Model' entry from %s", Name, section, cfg_source());
- return -1;
+ info ("%s: no '%s.Model' entry from %s, auto-dedecting", Name, section, cfg_source());
+ Model=-1;
}
- // initialize global variables
- DROWS = Models[Model].rows;
- DCOLS = Models[Model].cols;
- GPOS = Models[Model].gpos;
- Protocol = Models[Model].protocol;
-
// open serial port
if (drv_generic_serial_open(section, Name)<0) return -1;
// MR: why such a large delay?
usleep(350*1000);
+ // read display type
+ memset(buffer, 0, sizeof(buffer));
+ drv_generic_serial_write ("\1", 2);
+ usleep(250*1000);
+#if 1
+ {
+ int len=drv_generic_serial_read (buffer, 16);
+ debug ("Michi: len=<%d> buffer=<%s>", len, buffer);
+ }
+#else
+ if (drv_generic_serial_read (buffer, 16)==16) {
+ info ("%s: display reports serial number 0x%x", Name, *(short*)buffer);
+ }
+#endif
+
+ // initialize global variables
+ DROWS = Models[Model].rows;
+ DCOLS = Models[Model].cols;
+ GPOS = Models[Model].gpos;
+ Protocol = Models[Model].protocol;
+
drv_generic_serial_write ("\014", 1); // Form Feed (Clear Display)
drv_generic_serial_write ("\004", 1); // hide cursor
drv_generic_serial_write ("\024", 1); // scroll off