LINUX KERNEL DRIVER FOR TOSHIBA T6963C CONTROLLER BASED LIQUID CRYSTAL DISPLAYS

(C) 1999-2000 by Alexander Frink (Alexander.Frink@Uni-Mainz.DE)
VERSION 0.1, 11 Apr 2000

WARNING:

  1. THIS IS ALPHA SOFTWARE!!!!!!!!!!!!!!!!!!!!!!
  2. Since I am currently busy with my PhD thesis, further development is on hold and support is limited.
  3. Do not buy a display just because this driver seems to exist. It is tested on one (1) device only.
  4. You must not be afraid using a soldering iron.
  5. Knowledge of the Toshiba T6963C controller helps.
  6. Knowledge of the Linux kernel helps.

DISCLAIMER

These programs are provided "as is" and come without any warranty of any kind, either expressed or implied, including but not limited to fitness for a particular purpose or a particular system. In no case shall the author be liable for any damage or unwanted behavior of any computer hardware and/or software, including but not limited to data loss or time spent to recover your system. Do not test this program on your production machines without a backup you know you can restore!

INTRODUCTION

This is the first release of a Linux kernel driver for LCDs with the Toshiba T6963C controller which can be easily attached to the paraellel port. Unlike other drivers for other controllers, it does not act as a rather dumb character device which accepts lines of input, but a as fully featured console driver, which means you get a login prompt, can run Emacs or ncurses based applications on it. You see all boot and shutdown messages up to "Restarting system" (which you hardly can see after the "Rebooting..." message). It can be used as a replacement for the VGA card or as a "dual head" graphics card.

LICENSE

The driver is, of course, available under the GNU General Public License, which should be included in this package. It is based on the original Linux kernel console drivers for VGA and Hercules cards (main authors Linus Torvalds, Jay Estabrook, Geert Uytterhoeven, Martin Mares, Patrick Caulfield and Andrew Apted) and a DOS program to access T6963C based displays by John P. Beale.

SUPPORTED HARDWARE

This driver is written for a 240x128 graphics LCD manufactured by Nan Ya (NLC-240x128) with a Toshiba T6963C controller. I purchased the display in summer 1999 at Conrad Electronic, but it does not seem available there now. It should work with any display with a T6963C controller, but the display resolution (40x16 text mode with 6x8 pixel characters) is currently hard coded in the driver (but should be easily adjustable).

HARDWARE INSTALLATION

The display must be attached to the parallel printer port with a self-made cable. The actual pin layout may depend on your display Mine was similar, but not identical, to the layout described in ftp://ftp.microelect.com/lcdcontrol/controlt6963c.c. Therefore I do not list the pin numbering on the T6963C side. These are the most important connections:
Toshiba T6963C Parallel Port
D0-D7 D0-D7 (Pin 2-9)
C/D /SEL (Pin 17)
/WR Init (Pin 16)
/RD /LF (Pin 14)
/CE /Strobe (Pin 1)
Before installing the Linux driver, please test and try to access the display with the DOS program found in ftp://ftp.microelect.com/lcdcontrol/controlt6963c.c. Play with different BIOS settings for the parallel port. My display runs with EPP. Please do not contact me when you seem to have hardware problems. I am a theoretical physicist and left the hardware part to a friend.

SOFTWARE INSTALLATION

The driver can be used as the primary display which replaces the VGA card or as a secondary "dual head" graphics card. In the latter case it can be loaded as a module. The driver was developed and tested with kernel version 2.2.10. It is not possible to use it with 2.0.x kernels, since the console driver interface has changed. The driver consists of the following files:
File Description
README.html this file
LICENSE GNU General Public License
vgacon_lcd.c driver for primary display
mdacon_lcd.c driver for secondary display
font_6x8.c common font file
Copy the .c files to /usr/src/linux/drivers/video. If your display is not 40x16 (240x128 pixel graphics mode), adjust the lines
#define LCD_NUM_COLUMNS 40
#define LCD_NUM_LINES 16
in vgacon_lcd.c and mdacon_lcd.c. If you are planning to attach the display to a port other than LPT1 based at 0x378, adjust
        lcd_data_port = 0x378;
in these files as well.

PRIMARY DISPLAY

If you want to use the LCD as the primary display instead of the VGA card, delete the vgacon.c file and rename the vgacon_lcd.c file to vgacon.c. Recompile the kernel, install it, boot the system. If everything is working correctly, you should see all boot messages after the LILO messages and get a login prompt. You can switch to other virtual consoles with Alt-Fn. Good luck!

SECONDARY DISPLAY

To use the LCD as a secondary dual head display, replace the mdacon.c with mdacon_lcd.c. Then start your preferred kernel config program (e.g. make xconfig), enable "Prompt for development and/or incomplete code/drivers" under "Code maturity level options" and then choose Yes or Module for the "MDA text console (dual headed)" driver under "Console drivers" (or set CONFIG_MDA_CONSOLE in .config properly). Recompile the kernel, install it, boot the system (or say insmod mdacon if you compiled a module). If everything is working correctly, you can switch to a console on tty13-16 with AltGr-F1 to AltGr-F4, but there is no login prompt yet since no getty is running. Please refer to http://www.pandh.demon.co.uk/mdafaq-1.html#ss1.3. Good luck!

THINGS TO DO

UPDATES OF THIS DRIVER

Since I am currently very busy with my PhD thesis, this driver currently has a low priority for me. Updates will mainly be based on feedback by other users. Please send patches to Alexander.Frink@Uni-Mainz.DE. New releases can then be downloaded from http://wwwthep.physik.uni-mainz.de/~frink/linux.html. Other requests and suggestions might take longer to be included.

SOME LINKS