Skip to content

Commit

Permalink
[PATCH] drivers: add LCD support
Browse files Browse the repository at this point in the history
Add support for auxiliary displays, the ks0108 LCD controller, the
cfag12864b LCD and adds a framebuffer device: cfag12864bfb.

- Add a "auxdisplay/" folder in "drivers/" for auxiliary display
  drivers.

- Add support for the ks0108 LCD Controller as a device driver.  (uses
  parport interface)

- Add support for the cfag12864b LCD as a device driver.  (uses ks0108
  LCD Controller driver)

- Add a framebuffer device called cfag12864bfb.  (uses cfag12864b LCD
  driver)

- Add the usual Documentation, includes, Makefiles, Kconfigs,
  MAINTAINERS, CREDITS...

- Miguel Ojeda will maintain all the stuff above.

[[email protected]: workqueue fixups]
[[email protected]: kconfig fix]
Signed-off-by: Miguel Ojeda Sandonis <[email protected]>
Cc: Greg KH <[email protected]>
Acked-by: Paulo Marques <[email protected]>
Cc: "Randy.Dunlap" <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
ojeda authored and Linus Torvalds committed Feb 11, 2007
1 parent 81d79be commit 70e8404
Show file tree
Hide file tree
Showing 14 changed files with 1,446 additions and 0 deletions.
10 changes: 10 additions & 0 deletions CREDITS
Original file line number Diff line number Diff line change
Expand Up @@ -2571,6 +2571,16 @@ S: Subiaco, 6008
S: Perth, Western Australia
S: Australia

N: Miguel Ojeda Sandonis
E: [email protected]
D: Author: Auxiliary LCD Controller driver (ks0108)
D: Author: Auxiliary LCD driver (cfag12864b)
D: Author: Auxiliary LCD framebuffer driver (cfag12864bfb)
D: Maintainer: Auxiliary display drivers tree (drivers/auxdisplay/*)
S: C/ Mieses 20, 9-B
S: Valladolid 47009
S: Spain

N: Greg Page
E: [email protected]
D: IPX development and support
Expand Down
105 changes: 105 additions & 0 deletions Documentation/auxdisplay/cfag12864b
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
===================================
cfag12864b LCD Driver Documentation
===================================

License: GPLv2
Author & Maintainer: Miguel Ojeda Sandonis <[email protected]>
Date: 2006-10-27



--------
0. INDEX
--------

1. DRIVER INFORMATION
2. DEVICE INFORMATION
3. WIRING
4. USERSPACE PROGRAMMING


---------------------
1. DRIVER INFORMATION
---------------------

This driver support one cfag12864b display at time.


---------------------
2. DEVICE INFORMATION
---------------------

Manufacturer: Crystalfontz
Device Name: Crystalfontz 12864b LCD Series
Device Code: cfag12864b
Webpage: http://www.crystalfontz.com
Device Webpage: http://www.crystalfontz.com/products/12864b/
Type: LCD (Liquid Crystal Display)
Width: 128
Height: 64
Colors: 2 (B/N)
Controller: ks0108
Controllers: 2
Pages: 8 each controller
Addresses: 64 each page
Data size: 1 byte each address
Memory size: 2 * 8 * 64 * 1 = 1024 bytes = 1 Kbyte


---------
3. WIRING
---------

The cfag12864b LCD Series don't have official wiring.

The common wiring is done to the parallel port as shown:

Parallel Port cfag12864b

Name Pin# Pin# Name

Strobe ( 1)------------------------------(17) Enable
Data 0 ( 2)------------------------------( 4) Data 0
Data 1 ( 3)------------------------------( 5) Data 1
Data 2 ( 4)------------------------------( 6) Data 2
Data 3 ( 5)------------------------------( 7) Data 3
Data 4 ( 6)------------------------------( 8) Data 4
Data 5 ( 7)------------------------------( 9) Data 5
Data 6 ( 8)------------------------------(10) Data 6
Data 7 ( 9)------------------------------(11) Data 7
(10) [+5v]---( 1) Vdd
(11) [GND]---( 2) Ground
(12) [+5v]---(14) Reset
(13) [GND]---(15) Read / Write
Line (14)------------------------------(13) Controller Select 1
(15)
Init (16)------------------------------(12) Controller Select 2
Select (17)------------------------------(16) Data / Instruction
Ground (18)---[GND] [+5v]---(19) LED +
Ground (19)---[GND]
Ground (20)---[GND] E A Values:
Ground (21)---[GND] [GND]---[P1]---(18) Vee � R = Resistor = 22 ohm
Ground (22)---[GND] | � P1 = Preset = 10 Kohm
Ground (23)---[GND] ---- S ------( 3) V0 � P2 = Preset = 1 Kohm
Ground (24)---[GND] | |
Ground (25)---[GND] [GND]---[P2]---[R]---(20) LED -


------------------------
4. USERSPACE PROGRAMMING
------------------------

The cfag12864bfb describes a framebuffer device (/dev/fbX).

It has a size of 1024 bytes = 1 Kbyte.
Each bit represents one pixel. If the bit is high, the pixel will
turn on. If the pixel is low, the pixel will turn off.

You can use the framebuffer as a file: fopen, fwrite, fclose...
Although the LCD won't get updated until the next refresh time arrives.

Also, you can mmap the framebuffer: open & mmap, munmap & close...
which is the best option for most uses.

Check Documentation/auxdisplay/cfag12864b-example.c
for a real working userspace complete program with usage examples.
Loading

0 comments on commit 70e8404

Please sign in to comment.