/* $Id: drv_M50530.c,v 1.2 2004/02/15 21:43:43 reinelt Exp $ * * new style driver for M50530-based displays * * Copyright 1999-2004 Michael Reinelt * Copyright 2004 The LCD4Linux Team * * This file is part of LCD4Linux. * * LCD4Linux is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * LCD4Linux is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * * $Log: drv_M50530.c,v $ * Revision 1.2 2004/02/15 21:43:43 reinelt * T6963 driver nearly finished * framework for graphic displays done * i2c_sensors patch from Xavier * some more old generation files removed * * Revision 1.1 2004/02/15 08:22:47 reinelt * ported USBLCD driver to NextGeneration * added drv_M50530.c (I forgot yesterday, sorry) * removed old drivers M50530.c and USBLCD.c * */ /* * * exported fuctions: * * struct DRIVER drv_M50530 * */ #include "config.h" #include #include #include #include #include #include #include #include #include "debug.h" #include "cfg.h" #include "udelay.h" #include "plugin.h" #include "widget.h" #include "widget_text.h" #include "widget_icon.h" #include "widget_bar.h" #include "drv.h" #include "drv_generic_text.h" #include "drv_generic_parport.h" static char Name[]="M50530"; static int Model; static unsigned char SIGNAL_EX; static unsigned char SIGNAL_IOC1; static unsigned char SIGNAL_IOC2; static unsigned char SIGNAL_GPO; // Fixme static int GPOS; // static int GPO=0; typedef struct { int type; char *name; } MODEL; static MODEL Models[] = { { 0x01, "generic" }, { 0xff, "Unknown" } }; // **************************************** // *** hardware dependant functions *** // **************************************** static void drv_M5_command (unsigned int cmd, int delay) { // put data on DB1..DB8 drv_generic_parport_data (cmd&0xff); // set I/OC1 // set I/OC2 drv_generic_parport_control (SIGNAL_IOC1|SIGNAL_IOC2, (cmd&0x200?SIGNAL_IOC1:0) | (cmd&0x100?SIGNAL_IOC2:0)); // Control data setup time ndelay(200); // send command // EX signal pulse width = 500ns // Fixme: why 500 ns? Datasheet says 200ns drv_generic_parport_toggle (SIGNAL_EX, 1, 500); // wait udelay(delay); } static void drv_M5_write (unsigned char *string, int len) { unsigned int cmd; while (len--) { cmd=*string++; drv_M5_command (0x100|cmd, 20); } } static void drv_M5_goto (int row, int col) { int pos=row*48+col; if (row>3) pos-=168; drv_M5_command (0x300|pos, 20); } static void drv_M5_defchar (int ascii, unsigned char *buffer) { drv_M5_command (0x300+192+8*(ascii-CHAR0), 20); // Fixme: looks like the M50530 cannot control the bottom line // therefore we have only 7 bytes here drv_M5_write (buffer, 7); } // Fixme #if 0 static void drv_M5_setGPO (int bits) { if (Lcd.gpos>0) { // put data on DB1..DB8 drv_generic_parport_data (bits); // 74HCT573 set-up time ndelay(20); // send data // 74HCT573 enable pulse width = 24ns drv_generic_parport_toggle (SIGNAL_GPO, 1, 24); } } #endif static int drv_M5_start (char *section) { char *model, *s; int rows=-1, cols=-1, gpos=-1; model=cfg_get(section, "Model", "generic"); if (model!=NULL && *model!='\0') { int i; for (i=0; Models[i].type!=0xff; i++) { if (strcase
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain

# $Id: mkinstalldirs,v 1.2 2003/02/27 07:43:11 reinelt Exp $

errstatus=0

for file
do
   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
   shift

   pathcomp=
   for d
   do
     pathcomp="$pathcomp$d"
     case "$pathcomp" in
       -* ) pathcomp=./$pathcomp ;;
     esac

     if test ! -d "$pathcomp"; then
        echo "mkdir $pathcomp"

        mkdir "$pathcomp" || lasterr=$?

        if test ! -d "$pathcomp"; then
  	  errstatus=$lasterr
        fi
     fi

     pathcomp="$pathcomp/"
   done
done

exit $errstatus

# mkinstalldirs ends here