]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2005-05-04 06:13:05 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 4 May 2005 06:13:05 +0000 (06:13 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 4 May 2005 06:13:05 +0000 (06:13 +0000)
parport_wire_status() added

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@540 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

drv_generic_parport.c
drv_generic_parport.h

index 5cd2cd31efaab54ee00499768a87c8a79d492121..e39da76b56f8ef88e7cd103d9272903f56475995 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_generic_parport.c,v 1.13 2005/01/18 06:30:23 reinelt Exp $
+/* $Id: drv_generic_parport.c,v 1.14 2005/05/04 06:13:05 reinelt Exp $
  *
  * generic driver helper for serial and parport access
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv_generic_parport.c,v $
+ * Revision 1.14  2005/05/04 06:13:05  reinelt
+ * parport_wire_status() added
+ *
  * Revision 1.13  2005/01/18 06:30:23  reinelt
  * added (C) to all copyright statements
  *
 #define PARPORT_CONTROL_AUTOFD    0x2
 #define PARPORT_CONTROL_INIT      0x4
 #define PARPORT_CONTROL_SELECT    0x8
+#define PARPORT_STATUS_ERROR      0x8
+#define PARPORT_STATUS_SELECT     0x10
+#define PARPORT_STATUS_PAPEROUT   0x20
+#define PARPORT_STATUS_ACK        0x40
+#define PARPORT_STATUS_BUSY       0x80
 #endif
 
 #if !defined(WITH_OUTB) && !defined(WITH_PPDEV)
@@ -266,21 +274,21 @@ static unsigned char drv_generic_parport_signal_ctrl (const char *name, const ch
 
   if (strcasecmp(signal,"STROBE") == 0) {
     wire = PARPORT_CONTROL_STROBE;
-    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:STROBE]", Driver, name);
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:STROBE (Pin 1)]", Driver, name);
   } else if(strcasecmp(signal,"AUTOFD") == 0) {
     wire = PARPORT_CONTROL_AUTOFD;
-    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:AUTOFD]", Driver, name);
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:AUTOFD (Pin 14)]", Driver, name);
   } else if(strcasecmp(signal,"INIT") == 0) {
     wire = PARPORT_CONTROL_INIT;
-    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:INIT]", Driver, name);
-  } else if(strcasecmp(signal,"SELECT") == 0) {
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:INIT (Pin 16)]", Driver, name);
+  } else if(strcasecmp(signal,"SELECT") == 0 || strcasecmp(signal,"SLCTIN") == 0) {
     wire = PARPORT_CONTROL_SELECT;
-    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:SELECT]", Driver, name);
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:SLCTIN (Pin 17)]", Driver, name);
   } else if(strcasecmp(signal,"GND") == 0) {
     wire = 0;
     info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:GND]", Driver, name);
   } else {
-    error ("%s: unknown signal <%s> for wire <%s>", Driver, signal, name);
+    error ("%s: unknown signal <%s> for control line <%s>", Driver, signal, name);
     error ("%s: should be STROBE, AUTOFD, INIT, SELECT or GND", Driver);
     return 0xff;
   }
@@ -317,7 +325,7 @@ unsigned char drv_generic_parport_hardwire_ctrl (const char *name, const char *s
   
   /* maybe warn the user */
   if (*val != '\0' && strcasecmp (signal, val) != 0) {
-    error ("%s: ignoring configured signal <%s> for wire <%s>", Driver, val, name);
+    error ("%s: ignoring configured signal <%s> for control line <%s>", Driver, val, name);
   }
   free (val);
   
@@ -327,6 +335,55 @@ unsigned char drv_generic_parport_hardwire_ctrl (const char *name, const char *s
 }
 
 
+static unsigned char drv_generic_parport_signal_status (const char *name, const char *signal)
+{
+  unsigned char wire;
+
+  if (strcasecmp(signal,"ERROR") == 0) {
+    wire = PARPORT_STATUS_ERROR;
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:ERROR (Pin 15)]", Driver, name);
+  } else if(strcasecmp(signal,"SELECT") == 0) {
+    wire = PARPORT_STATUS_SELECT;
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:SELECT (Pin 13)]", Driver, name);
+  } else if(strcasecmp(signal,"PAPEROUT") == 0) {
+    wire = PARPORT_STATUS_PAPEROUT;
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:PAPEROUT (Pin 12)]", Driver, name);
+  } else if(strcasecmp(signal,"ACK") == 0) {
+    wire = PARPORT_STATUS_ACK;
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:ACK (Pin 10)]", Driver, name);
+  } else if(strcasecmp(signal,"BUSY") == 0) {
+    wire = PARPORT_STATUS_BUSY;
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:BUSY (Pin 11)]", Driver, name);
+  } else if(strcasecmp(signal,"GND") == 0) {
+    wire = 0;
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:GND]", Driver, name);
+  } else {
+    error ("%s: unknown signal <%s> for status line <%s>", Driver, signal, name);
+    error ("%s: should be STROBE, AUTOFD, INIT, SELECT or GND", Driver);
+    return 0xff;
+  }
+  
+  return wire;
+}
+
+
+unsigned char drv_generic_parport_wire_status (const char *name, const char *deflt)
+{
+  unsigned char wire;
+  char key[256];
+  char *val;
+  
+  qprintf(key, sizeof(key), "Wire.%s", name);
+  val = cfg_get (Section, key, deflt);
+  
+  wire = drv_generic_parport_signal_status (name, val);
+  
+  free (val);
+
+  return wire;
+}
+
+
 unsigned char drv_generic_parport_wire_data (const char *name, const char *deflt)
 {
   unsigned char w;
@@ -340,7 +397,7 @@ unsigned char drv_generic_parport_wire_data (const char *name, const char *deflt
   } else if(strcasecmp(s,"GND")==0) {
     w=0;
   } else {
-    error ("%s: unknown signal <%s> for wire <%s>", Driver, s, name);
+    error ("%s: unknown signal <%s> for data line <%s>", Driver, s, name);
     error ("%s: should be DB0..7 or GND", Driver);
     return 0xff;
   }
@@ -348,7 +405,7 @@ unsigned char drv_generic_parport_wire_data (const char *name, const char *deflt
   if (w==0) {
     info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:GND]", Driver, name);
   } else {
-    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:DB%d]", Driver, name, w);
+    info ("%s: wiring: [DISPLAY:%s]<==>[PARPORT:DB%d (Pin %d)]", Driver, name, w, w+2);
   }
   
   w=1<<w;
index fb72fdaacae7285ed73bdd5029657f0f0ff6fbc2..52aa63b24009026e881588d6df4afea11c4ed912 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_generic_parport.h,v 1.9 2005/01/18 06:30:23 reinelt Exp $
+/* $Id: drv_generic_parport.h,v 1.10 2005/05/04 06:13:05 reinelt Exp $
  *
  * generic driver helper for parallel port displays
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv_generic_parport.h,v $
+ * Revision 1.10  2005/05/04 06:13:05  reinelt
+ * parport_wire_status() added
+ *
  * Revision 1.9  2005/01/18 06:30:23  reinelt
  * added (C) to all copyright statements
  *
  * unsigned char drv_generic_parport_hardwire_ctrl (char *name)
  *   returns hardwiring for one control signal
  *   same as above, but does not read from config,
- *   but cheks the config and emits a warning that the config
+ *   but checks the config and emits a warning that the config
  *   entry will be ignored
  *   returns DRV_GENERIC_PARPORT_CONTROL_* or 255 on error
  *
+ * unsigned char drv_generic_parport_wire_status (char *name, char *deflt)
+ *   reads wiring for one status signal from config
+ *   returns DRV_GENERIC_PARPORT_STATUS_* or 255 on error
+ *
  * unsigned char drv_generic_parport_wire_data (char *name, char *deflt)
  *   reads wiring for one data signal from config
  *   returns 1<<bitpos or 255 on error
@@ -117,6 +124,7 @@ int           drv_generic_parport_open          (const char *section, const char
 int           drv_generic_parport_close         (void);
 unsigned char drv_generic_parport_wire_ctrl     (const char *name, const char *deflt);
 unsigned char drv_generic_parport_hardwire_ctrl (const char *name, const char *deflt);
+unsigned char drv_generic_parport_wire_status   (const char *name, const char *deflt);
 unsigned char drv_generic_parport_wire_data     (const char *name, const char *deflt);
 void          drv_generic_parport_direction     (const int direction);
 unsigned char drv_generic_parport_status        (void);