1config 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
13config 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
25config 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
47config 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 3
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
64config 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
87config 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
96config 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
105config 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 addressable 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
121config 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
135config 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
151config 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
164config 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
179config 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
194config 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
209config 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
224config 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
239config 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
254config 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
267config 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.
279