Merge branch 'drivers-platform' into release
[linux-2.6] / drivers / staging / panel / Kconfig
1 config PANEL
2         tristate "Parallel port LCD/Keypad Panel support"
3         depends on PARPORT
4         ---help---
5           Say Y here if you have an HD44780 or KS-0074 LCD connected to your
6           parallel port. This driver also features 4 and 6-key keypads. The LCD
7           is accessible through the /dev/lcd char device (10, 156), and the
8           keypad through /dev/keypad (10, 185). Both require misc device to be
9           enabled. This code can either be compiled as a module, or linked into
10           the kernel and started at boot. If you don't understand what all this
11           is about, say N.
12
13 config PANEL_PARPORT
14         int "Default parallel port number (0=LPT1)"
15         depends on PANEL
16         range 0 255
17         default "0"
18         ---help---
19           This is the index of the parallel port the panel is connected to. One
20           driver instance only supports one parallel port, so if your keypad
21           and LCD are connected to two separate ports, you have to start two
22           modules with different arguments. Numbering starts with '0' for LPT1,
23           and so on.
24
25 config PANEL_PROFILE
26         int "Default panel profile (0-5, 0=custom)"
27         depends on PANEL
28         range 0 5
29         default "5"
30         ---help---
31           To ease configuration, the driver supports different configuration
32           profiles for past and recent wirings. These profiles can also be
33           used to define an approximative configuration, completed by a few
34           other options. Here are the profiles :
35
36             0 = custom (see further)
37             1 = 2x16 parallel LCD, old keypad
38             2 = 2x16 serial LCD (KS-0074), new keypad
39             3 = 2x16 parallel LCD (Hantronix), no keypad
40             4 = 2x16 parallel LCD (Nexcom NSA1045) with Nexcom's keypad
41             5 = 2x40 parallel LCD (old one), with old keypad
42
43           Custom configurations allow you to define how your display is
44           wired to the parallel port, and how it works. This is only intended
45           for experts.
46
47 config PANEL_KEYPAD
48         depends on PANEL && PANEL_PROFILE="0"
49         int "Keypad type (0=none, 1=old 6 keys, 2=new 6 keys, 3=Nexcom 4 keys)"
50         range 0 4
51         default 0
52         ---help---
53           This enables and configures a keypad connected to the parallel port.
54           The keys will be read from character device 10,185. Valid values are :
55
56             0 : do not enable this driver
57             1 : old 6 keys keypad
58             2 : new 6 keys keypad, as used on the server at www.ant-computing.com
59             3 : Nexcom NSA1045's 4 keys keypad
60
61           New profiles can be described in the driver source. The driver also
62           supports simultaneous keys pressed when the keypad supports them.
63
64 config PANEL_LCD
65         depends on PANEL && PANEL_PROFILE="0"
66         int "LCD type (0=none, 1=custom, 2=old //, 3=ks0074, 4=hantronix, 5=Nexcom)"
67         range 0 5
68         default 0
69         ---help---
70            This enables and configures an LCD connected to the parallel port.
71            The driver includes an interpreter for escape codes starting with
72            '\e[L' which are specific to the LCD, and a few ANSI codes. The
73            driver will be registered as character device 10,156, usually
74            under the name '/dev/lcd'. There are a total of 6 supported types :
75
76              0 : do not enable the driver
77              1 : custom configuration and wiring (see further)
78              2 : 2x16 & 2x40 parallel LCD (old wiring)
79              3 : 2x16 serial LCD (KS-0074 based)
80              4 : 2x16 parallel LCD (Hantronix wiring)
81              5 : 2x16 parallel LCD (Nexcom wiring)
82
83            When type '1' is specified, other options will appear to configure
84            more precise aspects (wiring, dimensions, protocol, ...). Please note
85            that those values changed from the 2.4 driver for better consistency.
86
87 config PANEL_LCD_HEIGHT
88         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1"
89         int "Number of lines on the LCD (1-2)"
90         range 1 2
91         default 2
92         ---help---
93           This is the number of visible character lines on the LCD in custom profile.
94           It can either be 1 or 2.
95
96 config PANEL_LCD_WIDTH
97         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1"
98         int "Number of characters per line on the LCD (1-40)"
99         range 1 40
100         default 40
101         ---help---
102           This is the number of characters per line on the LCD in custom profile.
103           Common values are 16,20,24,40.
104
105 config PANEL_LCD_BWIDTH
106         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1"
107         int "Internal LCD line width (1-40, 40 by default)"
108         range 1 40
109         default 40
110         ---help---
111           Most LCDs use a standard controller which supports hardware lines of 40
112           characters, although sometimes only 16, 20 or 24 of them are really wired
113           to the terminal. This results in some non-visible but adressable characters,
114           and is the case for most parallel LCDs. Other LCDs, and some serial ones,
115           however, use the same line width internally as what is visible. The KS0074
116           for example, uses 16 characters per line for 16 visible characters per line.
117
118           This option lets you configure the value used by your LCD in 'custom' profile.
119           If you don't know, put '40' here.
120
121 config PANEL_LCD_HWIDTH
122         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1"
123         int "Hardware LCD line width (1-64, 64 by default)"
124         range 1 64
125         default 64
126         ---help---
127           Most LCDs use a single address bit to differentiate line 0 and line 1. Since
128           some of them need to be able to address 40 chars with the lower bits, they
129           often use the immediately superior power of 2, which is 64, to address the
130           next line.
131
132           If you don't know what your LCD uses, in doubt let 16 here for a 2x16, and
133           64 here for a 2x40.
134
135 config PANEL_LCD_CHARSET
136         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1"
137         int "LCD character set (0=normal, 1=KS0074)"
138         range 0 1
139         default 0
140         ---help---
141           Some controllers such as the KS0074 use a somewhat strange character set
142           where many symbols are at unusual places. The driver knows how to map
143           'standard' ASCII characters to the character sets used by these controllers.
144           Valid values are :
145
146              0 : normal (untranslated) character set
147              1 : KS0074 character set
148
149           If you don't know, use the normal one (0).
150
151 config PANEL_LCD_PROTO
152         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1"
153         int "LCD communication mode (0=parallel 8 bits, 1=serial)"
154         range 0 1
155         default 0
156         ---help---
157           This driver now supports any serial or parallel LCD wired to a parallel
158           port. But before assigning signals, the driver needs to know if it will
159           be driving a serial LCD or a parallel one. Serial LCDs only use 2 wires
160           (SDA/SCL), while parallel ones use 2 or 3 wires for the control signals
161           (E, RS, sometimes RW), and 4 or 8 for the data. Use 0 here for a 8 bits
162           parallel LCD, and 1 for a serial LCD.
163
164 config PANEL_LCD_PIN_E
165         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
166         int "Parallel port pin number & polarity connected to the LCD E signal (-17...17) "
167         range -17 17
168         default 14
169         ---help---
170           This describes the number of the parallel port pin to which the LCD 'E'
171           signal has been connected. It can be :
172
173                   0 : no connection (eg: connected to ground)
174               1..17 : directly connected to any of these pins on the DB25 plug
175             -1..-17 : connected to the same pin through an inverter (eg: transistor).
176
177           Default for the 'E' pin in custom profile is '14' (AUTOFEED).
178
179 config PANEL_LCD_PIN_RS
180         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
181         int "Parallel port pin number & polarity connected to the LCD RS signal (-17...17) "
182         range -17 17
183         default 17
184         ---help---
185           This describes the number of the parallel port pin to which the LCD 'RS'
186           signal has been connected. It can be :
187
188                   0 : no connection (eg: connected to ground)
189               1..17 : directly connected to any of these pins on the DB25 plug
190             -1..-17 : connected to the same pin through an inverter (eg: transistor).
191
192           Default for the 'RS' pin in custom profile is '17' (SELECT IN).
193
194 config PANEL_LCD_PIN_RW
195         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
196         int "Parallel port pin number & polarity connected to the LCD RW signal (-17...17) "
197         range -17 17
198         default 16
199         ---help---
200           This describes the number of the parallel port pin to which the LCD 'RW'
201           signal has been connected. It can be :
202
203                   0 : no connection (eg: connected to ground)
204               1..17 : directly connected to any of these pins on the DB25 plug
205             -1..-17 : connected to the same pin through an inverter (eg: transistor).
206
207           Default for the 'RW' pin in custom profile is '16' (INIT).
208
209 config PANEL_LCD_PIN_SCL
210         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0"
211         int "Parallel port pin number & polarity connected to the LCD SCL signal (-17...17) "
212         range -17 17
213         default 1
214         ---help---
215           This describes the number of the parallel port pin to which the serial
216           LCD 'SCL' signal has been connected. It can be :
217
218                   0 : no connection (eg: connected to ground)
219               1..17 : directly connected to any of these pins on the DB25 plug
220             -1..-17 : connected to the same pin through an inverter (eg: transistor).
221
222           Default for the 'SCL' pin in custom profile is '1' (STROBE).
223
224 config PANEL_LCD_PIN_SDA
225         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0"
226         int "Parallel port pin number & polarity connected to the LCD SDA signal (-17...17) "
227         range -17 17
228         default 2
229         ---help---
230           This describes the number of the parallel port pin to which the serial
231           LCD 'SDA' signal has been connected. It can be :
232
233                   0 : no connection (eg: connected to ground)
234               1..17 : directly connected to any of these pins on the DB25 plug
235             -1..-17 : connected to the same pin through an inverter (eg: transistor).
236
237           Default for the 'SDA' pin in custom profile is '2' (D0).
238
239 config PANEL_LCD_PIN_BL
240         depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1"
241         int "Parallel port pin number & polarity connected to the LCD backlight signal (-17...17) "
242         range -17 17
243         default 0
244         ---help---
245           This describes the number of the parallel port pin to which the LCD 'BL' signal
246           has been connected. It can be :
247
248                   0 : no connection (eg: connected to ground)
249               1..17 : directly connected to any of these pins on the DB25 plug
250             -1..-17 : connected to the same pin through an inverter (eg: transistor).
251
252           Default for the 'BL' pin in custom profile is '0' (uncontrolled).
253
254 config PANEL_CHANGE_MESSAGE
255         depends on PANEL
256         bool "Change LCD initialization message ?"
257         default "n"
258         ---help---
259           This allows you to replace the boot message indicating the kernel version
260           and the driver version with a custom message. This is useful on appliances
261           where a simple 'Starting system' message can be enough to stop a customer
262           from worrying.
263
264           If you say 'Y' here, you'll be able to choose a message yourself. Otherwise,
265           say 'N' and keep the default message with the version.
266
267 config PANEL_BOOT_MESSAGE
268         depends on PANEL && PANEL_CHANGE_MESSAGE="y"
269         string "New initialization message"
270         default ""
271         ---help---
272           This allows you to replace the boot message indicating the kernel version
273           and the driver version with a custom message. This is useful on appliances
274           where a simple 'Starting system' message can be enough to stop a customer
275           from worrying.
276
277           An empty message will only clear the display at driver init time. Any other
278           printf()-formatted message is valid with newline and escape codes.