xref: /OK3568_Linux_fs/kernel/Documentation/admin-guide/auxdisplay/cfag12864b.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun===================================
2*4882a593Smuzhiyuncfag12864b LCD Driver Documentation
3*4882a593Smuzhiyun===================================
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun:License:		GPLv2
6*4882a593Smuzhiyun:Author & Maintainer:	Miguel Ojeda Sandonis
7*4882a593Smuzhiyun:Date:			2006-10-27
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun.. INDEX
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun	1. DRIVER INFORMATION
14*4882a593Smuzhiyun	2. DEVICE INFORMATION
15*4882a593Smuzhiyun	3. WIRING
16*4882a593Smuzhiyun	4. USERSPACE PROGRAMMING
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun1. Driver Information
19*4882a593Smuzhiyun---------------------
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunThis driver supports a cfag12864b LCD.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun2. Device Information
25*4882a593Smuzhiyun---------------------
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun:Manufacturer:	Crystalfontz
28*4882a593Smuzhiyun:Device Name:	Crystalfontz 12864b LCD Series
29*4882a593Smuzhiyun:Device Code:	cfag12864b
30*4882a593Smuzhiyun:Webpage:	http://www.crystalfontz.com
31*4882a593Smuzhiyun:Device Webpage: http://www.crystalfontz.com/products/12864b/
32*4882a593Smuzhiyun:Type:		LCD (Liquid Crystal Display)
33*4882a593Smuzhiyun:Width:		128
34*4882a593Smuzhiyun:Height:	64
35*4882a593Smuzhiyun:Colors:	2 (B/N)
36*4882a593Smuzhiyun:Controller:	ks0108
37*4882a593Smuzhiyun:Controllers:	2
38*4882a593Smuzhiyun:Pages:		8 each controller
39*4882a593Smuzhiyun:Addresses:	64 each page
40*4882a593Smuzhiyun:Data size:	1 byte each address
41*4882a593Smuzhiyun:Memory size:	2 * 8 * 64 * 1 = 1024 bytes = 1 Kbyte
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun3. Wiring
45*4882a593Smuzhiyun---------
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunThe cfag12864b LCD Series don't have official wiring.
48*4882a593Smuzhiyun
49*4882a593SmuzhiyunThe common wiring is done to the parallel port as shown::
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun  Parallel Port                          cfag12864b
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun    Name Pin#                            Pin# Name
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun  Strobe ( 1)------------------------------(17) Enable
56*4882a593Smuzhiyun  Data 0 ( 2)------------------------------( 4) Data 0
57*4882a593Smuzhiyun  Data 1 ( 3)------------------------------( 5) Data 1
58*4882a593Smuzhiyun  Data 2 ( 4)------------------------------( 6) Data 2
59*4882a593Smuzhiyun  Data 3 ( 5)------------------------------( 7) Data 3
60*4882a593Smuzhiyun  Data 4 ( 6)------------------------------( 8) Data 4
61*4882a593Smuzhiyun  Data 5 ( 7)------------------------------( 9) Data 5
62*4882a593Smuzhiyun  Data 6 ( 8)------------------------------(10) Data 6
63*4882a593Smuzhiyun  Data 7 ( 9)------------------------------(11) Data 7
64*4882a593Smuzhiyun         (10)                      [+5v]---( 1) Vdd
65*4882a593Smuzhiyun         (11)                      [GND]---( 2) Ground
66*4882a593Smuzhiyun         (12)                      [+5v]---(14) Reset
67*4882a593Smuzhiyun         (13)                      [GND]---(15) Read / Write
68*4882a593Smuzhiyun    Line (14)------------------------------(13) Controller Select 1
69*4882a593Smuzhiyun         (15)
70*4882a593Smuzhiyun    Init (16)------------------------------(12) Controller Select 2
71*4882a593Smuzhiyun  Select (17)------------------------------(16) Data / Instruction
72*4882a593Smuzhiyun  Ground (18)---[GND]              [+5v]---(19) LED +
73*4882a593Smuzhiyun  Ground (19)---[GND]
74*4882a593Smuzhiyun  Ground (20)---[GND]              E    A             Values:
75*4882a593Smuzhiyun  Ground (21)---[GND]       [GND]---[P1]---(18) Vee    - R = Resistor = 22 ohm
76*4882a593Smuzhiyun  Ground (22)---[GND]                |                 - P1 = Preset = 10 Kohm
77*4882a593Smuzhiyun  Ground (23)---[GND]       ----   S ------( 3) V0     - P2 = Preset = 1 Kohm
78*4882a593Smuzhiyun  Ground (24)---[GND]       |  |
79*4882a593Smuzhiyun  Ground (25)---[GND] [GND]---[P2]---[R]---(20) LED -
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun4. Userspace Programming
83*4882a593Smuzhiyun------------------------
84*4882a593Smuzhiyun
85*4882a593SmuzhiyunThe cfag12864bfb describes a framebuffer device (/dev/fbX).
86*4882a593Smuzhiyun
87*4882a593SmuzhiyunIt has a size of 1024 bytes = 1 Kbyte.
88*4882a593SmuzhiyunEach bit represents one pixel. If the bit is high, the pixel will
89*4882a593Smuzhiyunturn on. If the pixel is low, the pixel will turn off.
90*4882a593Smuzhiyun
91*4882a593SmuzhiyunYou can use the framebuffer as a file: fopen, fwrite, fclose...
92*4882a593SmuzhiyunAlthough the LCD won't get updated until the next refresh time arrives.
93*4882a593Smuzhiyun
94*4882a593SmuzhiyunAlso, you can mmap the framebuffer: open & mmap, munmap & close...
95*4882a593Smuzhiyunwhich is the best option for most uses.
96*4882a593Smuzhiyun
97*4882a593SmuzhiyunCheck samples/auxdisplay/cfag12864b-example.c
98*4882a593Smuzhiyunfor a real working userspace complete program with usage examples.
99