Linux Kernel 2.4 Useful Patches

Web access to the GIT repository - GIT access to the repository

lcdpanel : Driver for HD44780-based LCD panels (and derivatives)

This driver supports an HD44780-based LCD panel connected to the parallel port. It accepts any wiring, both parallel and serial, and also supports an input keypad without any external component. Some characters can be redefined.

Initial date:2000/08/10
Last update:2005/05/20
Description:Driver for HD44780-based LCD panels (and derivatives)
Author(s):Willy Tarreau
Abstract:This driver supports an HD44780-based LCD panel connected to the parallel port. It accepts any wiring, both parallel and serial, and also supports an input keypad without any external component. Some characters can be redefined.

Notes

The LCD is accessible through the /dev/lcd char device (10,156), and the keypad through /dev/keypad (10,185). Some common LCDs are pre-defined.

Some LCDs allow you to define up to 8 characters, mapped to ASCII characters 0 to 7. The escape code to define a new character is 'G' followed by one digit from 0 to 7, representing the character number, and up to 8 couples of hex digits terminated by a semi-colon (';'). Each couple of digits represents a line, with 1-bits for each illuminated pixel with LSB on the right. Lines are numberred from the top of the character to the bottom. On a 5x7 matrix, only the 5 lower bits of the 7 first bytes are used for each character. If the string is incomplete, only complete lines will be redefined. Here are some examples :

  printf "G0010101050D1F0C04;"  => 0 = [enter]
  printf "G1040E1F0000000000;"  => 1 = [up]
  printf "G2000000001F0E0400;"  => 2 = [down]
  printf "G3040E1F001F0E0400;"  => 3 = [up-down]
  printf "G40002060E1E0E0602;"  => 4 = [left]
  printf "G500080C0E0F0E0C08;"  => 5 = [right]
  printf "G60016051516141400;"  => 6 = "IP"

  printf "G00103071F1F070301;"  => big speaker
  printf "G00002061E1E060200;"  => small speaker

Willy


Contents


(C) Willy Tarreau - 2008-06-01