2 tristate "Parallel port LCD/Keypad Panel support"
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
14 int "Default parallel port number (0=LPT1)"
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,
26 int "Default panel profile (0-5, 0=custom)"
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 :
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
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
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)"
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 :
56 0 : do not enable this driver
58 2 : new 6 keys keypad, as used on the server at www.ant-computing.com
59 3 : Nexcom NSA1045's 4 keys keypad
61 New profiles can be described in the driver source. The driver also
62 supports simultaneous keys pressed when the keypad supports them.
65 depends on PANEL && PANEL_PROFILE="0"
66 int "LCD type (0=none, 1=custom, 2=old //, 3=ks0074, 4=hantronix, 5=Nexcom)"
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 :
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)
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.
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)"
93 This is the number of visible character lines on the LCD in custom profile.
94 It can either be 1 or 2.
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)"
102 This is the number of characters per line on the LCD in custom profile.
103 Common values are 16,20,24,40.
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)"
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.
118 This option lets you configure the value used by your LCD in 'custom' profile.
119 If you don't know, put '40' here.
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)"
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
132 If you don't know what your LCD uses, in doubt let 16 here for a 2x16, and
135 config PANEL_LCD_CHARSET
136 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1"
137 int "LCD character set (0=normal, 1=KS0074)"
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.
146 0 : normal (untranslated) character set
147 1 : KS0074 character set
149 If you don't know, use the normal one (0).
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)"
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.
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) "
170 This describes the number of the parallel port pin to which the LCD 'E'
171 signal has been connected. It can be :
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).
177 Default for the 'E' pin in custom profile is '14' (AUTOFEED).
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) "
185 This describes the number of the parallel port pin to which the LCD 'RS'
186 signal has been connected. It can be :
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).
192 Default for the 'RS' pin in custom profile is '17' (SELECT IN).
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) "
200 This describes the number of the parallel port pin to which the LCD 'RW'
201 signal has been connected. It can be :
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).
207 Default for the 'RW' pin in custom profile is '16' (INIT).
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) "
215 This describes the number of the parallel port pin to which the serial
216 LCD 'SCL' signal has been connected. It can be :
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).
222 Default for the 'SCL' pin in custom profile is '1' (STROBE).
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) "
230 This describes the number of the parallel port pin to which the serial
231 LCD 'SDA' signal has been connected. It can be :
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).
237 Default for the 'SDA' pin in custom profile is '2' (D0).
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) "
245 This describes the number of the parallel port pin to which the LCD 'BL' signal
246 has been connected. It can be :
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).
252 Default for the 'BL' pin in custom profile is '0' (uncontrolled).
254 config PANEL_CHANGE_MESSAGE
256 bool "Change LCD initialization message ?"
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
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.
267 config PANEL_BOOT_MESSAGE
268 depends on PANEL && PANEL_CHANGE_MESSAGE="y"
269 string "New initialization message"
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
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.