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