xref: /OK3568_Linux_fs/kernel/drivers/auxdisplay/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# For a description of the syntax of this configuration file,
4*4882a593Smuzhiyun# see Documentation/kbuild/kconfig-language.rst.
5*4882a593Smuzhiyun#
6*4882a593Smuzhiyun# Auxiliary display drivers configuration.
7*4882a593Smuzhiyun#
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmenuconfig AUXDISPLAY
10*4882a593Smuzhiyun	bool "Auxiliary Display support"
11*4882a593Smuzhiyun	help
12*4882a593Smuzhiyun	  Say Y here to get to see options for auxiliary display drivers.
13*4882a593Smuzhiyun	  This option alone does not add any kernel code.
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun	  If you say N, all options in this submenu will be skipped and disabled.
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunif AUXDISPLAY
18*4882a593Smuzhiyun
19*4882a593Smuzhiyunconfig HD44780
20*4882a593Smuzhiyun	tristate "HD44780 Character LCD support"
21*4882a593Smuzhiyun	depends on GPIOLIB || COMPILE_TEST
22*4882a593Smuzhiyun	select CHARLCD
23*4882a593Smuzhiyun	help
24*4882a593Smuzhiyun	  Enable support for Character LCDs using a HD44780 controller.
25*4882a593Smuzhiyun	  The LCD is accessible through the /dev/lcd char device (10, 156).
26*4882a593Smuzhiyun	  This code can either be compiled as a module, or linked into the
27*4882a593Smuzhiyun	  kernel and started at boot.
28*4882a593Smuzhiyun	  If you don't understand what all this is about, say N.
29*4882a593Smuzhiyun
30*4882a593Smuzhiyunconfig KS0108
31*4882a593Smuzhiyun	tristate "KS0108 LCD Controller"
32*4882a593Smuzhiyun	depends on PARPORT_PC
33*4882a593Smuzhiyun	default n
34*4882a593Smuzhiyun	help
35*4882a593Smuzhiyun	  If you have a LCD controlled by one or more KS0108
36*4882a593Smuzhiyun	  controllers, say Y. You will need also another more specific
37*4882a593Smuzhiyun	  driver for your LCD.
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun	  Depends on Parallel Port support. If you say Y at
40*4882a593Smuzhiyun	  parport, you will be able to compile this as a module (M)
41*4882a593Smuzhiyun	  and built-in as well (Y).
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun	  To compile this as a module, choose M here:
44*4882a593Smuzhiyun	  the module will be called ks0108.
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun	  If unsure, say N.
47*4882a593Smuzhiyun
48*4882a593Smuzhiyunconfig KS0108_PORT
49*4882a593Smuzhiyun	hex "Parallel port where the LCD is connected"
50*4882a593Smuzhiyun	depends on KS0108
51*4882a593Smuzhiyun	default 0x378
52*4882a593Smuzhiyun	help
53*4882a593Smuzhiyun	  The address of the parallel port where the LCD is connected.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun	  The first  standard parallel port address is 0x378.
56*4882a593Smuzhiyun	  The second standard parallel port address is 0x278.
57*4882a593Smuzhiyun	  The third  standard parallel port address is 0x3BC.
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun	  You can specify a different address if you need.
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	  If you don't know what I'm talking about, load the parport module,
62*4882a593Smuzhiyun	  and execute "dmesg" or "cat /proc/ioports". You can see there how
63*4882a593Smuzhiyun	  many parallel ports are present and which address each one has.
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun	  Usually you only need to use 0x378.
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun	  If you compile this as a module, you can still override this
68*4882a593Smuzhiyun	  using the module parameters.
69*4882a593Smuzhiyun
70*4882a593Smuzhiyunconfig KS0108_DELAY
71*4882a593Smuzhiyun	int "Delay between each control writing (microseconds)"
72*4882a593Smuzhiyun	depends on KS0108
73*4882a593Smuzhiyun	default "2"
74*4882a593Smuzhiyun	help
75*4882a593Smuzhiyun	  Amount of time the ks0108 should wait between each control write
76*4882a593Smuzhiyun	  to the parallel port.
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun	  If your LCD seems to miss random writings, increment this.
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun	  If you don't know what I'm talking about, ignore it.
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun	  If you compile this as a module, you can still override this
83*4882a593Smuzhiyun	  value using the module parameters.
84*4882a593Smuzhiyun
85*4882a593Smuzhiyunconfig CFAG12864B
86*4882a593Smuzhiyun	tristate "CFAG12864B LCD"
87*4882a593Smuzhiyun	depends on X86
88*4882a593Smuzhiyun	depends on FB
89*4882a593Smuzhiyun	depends on KS0108
90*4882a593Smuzhiyun	select FB_SYS_FILLRECT
91*4882a593Smuzhiyun	select FB_SYS_COPYAREA
92*4882a593Smuzhiyun	select FB_SYS_IMAGEBLIT
93*4882a593Smuzhiyun	select FB_SYS_FOPS
94*4882a593Smuzhiyun	default n
95*4882a593Smuzhiyun	help
96*4882a593Smuzhiyun	  If you have a Crystalfontz 128x64 2-color LCD, cfag12864b Series,
97*4882a593Smuzhiyun	  say Y. You also need the ks0108 LCD Controller driver.
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun	  For help about how to wire your LCD to the parallel port,
100*4882a593Smuzhiyun	  check Documentation/admin-guide/auxdisplay/cfag12864b.rst
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun	  Depends on the x86 arch and the framebuffer support.
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun	  The LCD framebuffer driver can be attached to a console.
105*4882a593Smuzhiyun	  It will work fine. However, you can't attach it to the fbdev driver
106*4882a593Smuzhiyun	  of the xorg server.
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun	  To compile this as a module, choose M here:
109*4882a593Smuzhiyun	  the modules will be called cfag12864b and cfag12864bfb.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun	  If unsure, say N.
112*4882a593Smuzhiyun
113*4882a593Smuzhiyunconfig CFAG12864B_RATE
114*4882a593Smuzhiyun	int "Refresh rate (hertz)"
115*4882a593Smuzhiyun	depends on CFAG12864B
116*4882a593Smuzhiyun	default "20"
117*4882a593Smuzhiyun	help
118*4882a593Smuzhiyun	  Refresh rate of the LCD.
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun	  As the LCD is not memory mapped, the driver has to make the work by
121*4882a593Smuzhiyun	  software. This means you should be careful setting this value higher.
122*4882a593Smuzhiyun	  If your CPUs are really slow or you feel the system is slowed down,
123*4882a593Smuzhiyun	  decrease the value.
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun	  Be careful modifying this value to a very high value:
126*4882a593Smuzhiyun	  You can freeze the computer, or the LCD maybe can't draw as fast as you
127*4882a593Smuzhiyun	  are requesting.
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun	  If you don't know what I'm talking about, ignore it.
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun	  If you compile this as a module, you can still override this
132*4882a593Smuzhiyun	  value using the module parameters.
133*4882a593Smuzhiyun
134*4882a593Smuzhiyunconfig IMG_ASCII_LCD
135*4882a593Smuzhiyun	tristate "Imagination Technologies ASCII LCD Display"
136*4882a593Smuzhiyun	depends on HAS_IOMEM
137*4882a593Smuzhiyun	default y if MIPS_MALTA
138*4882a593Smuzhiyun	select MFD_SYSCON
139*4882a593Smuzhiyun	help
140*4882a593Smuzhiyun	  Enable this to support the simple ASCII LCD displays found on
141*4882a593Smuzhiyun	  development boards such as the MIPS Boston, MIPS Malta & MIPS SEAD3
142*4882a593Smuzhiyun	  from Imagination Technologies.
143*4882a593Smuzhiyun
144*4882a593Smuzhiyunconfig HT16K33
145*4882a593Smuzhiyun	tristate "Holtek Ht16K33 LED controller with keyscan"
146*4882a593Smuzhiyun	depends on FB && OF && I2C && INPUT
147*4882a593Smuzhiyun	select FB_SYS_FOPS
148*4882a593Smuzhiyun	select FB_SYS_FILLRECT
149*4882a593Smuzhiyun	select FB_SYS_COPYAREA
150*4882a593Smuzhiyun	select FB_SYS_IMAGEBLIT
151*4882a593Smuzhiyun	select INPUT_MATRIXKMAP
152*4882a593Smuzhiyun	select FB_BACKLIGHT
153*4882a593Smuzhiyun	help
154*4882a593Smuzhiyun	  Say yes here to add support for Holtek HT16K33, RAM mapping 16*8
155*4882a593Smuzhiyun	  LED controller driver with keyscan.
156*4882a593Smuzhiyun
157*4882a593Smuzhiyunconfig ARM_CHARLCD
158*4882a593Smuzhiyun	bool "ARM Ltd. Character LCD Driver"
159*4882a593Smuzhiyun	depends on PLAT_VERSATILE
160*4882a593Smuzhiyun	help
161*4882a593Smuzhiyun	  This is a driver for the character LCD found on the ARM Ltd.
162*4882a593Smuzhiyun	  Versatile and RealView Platform Baseboards. It doesn't do
163*4882a593Smuzhiyun	  very much more than display the text "ARM Linux" on the first
164*4882a593Smuzhiyun	  line and the Linux version on the second line, but that's
165*4882a593Smuzhiyun	  still useful.
166*4882a593Smuzhiyun
167*4882a593Smuzhiyunmenuconfig PARPORT_PANEL
168*4882a593Smuzhiyun	tristate "Parallel port LCD/Keypad Panel support"
169*4882a593Smuzhiyun	depends on PARPORT
170*4882a593Smuzhiyun	select CHARLCD
171*4882a593Smuzhiyun	help
172*4882a593Smuzhiyun	  Say Y here if you have an HD44780 or KS-0074 LCD connected to your
173*4882a593Smuzhiyun	  parallel port. This driver also features 4 and 6-key keypads. The LCD
174*4882a593Smuzhiyun	  is accessible through the /dev/lcd char device (10, 156), and the
175*4882a593Smuzhiyun	  keypad through /dev/keypad (10, 185). This code can either be
176*4882a593Smuzhiyun	  compiled as a module, or linked into the kernel and started at boot.
177*4882a593Smuzhiyun	  If you don't understand what all this is about, say N.
178*4882a593Smuzhiyun
179*4882a593Smuzhiyunif PARPORT_PANEL
180*4882a593Smuzhiyun
181*4882a593Smuzhiyunconfig PANEL_PARPORT
182*4882a593Smuzhiyun	int "Default parallel port number (0=LPT1)"
183*4882a593Smuzhiyun	range 0 255
184*4882a593Smuzhiyun	default "0"
185*4882a593Smuzhiyun	help
186*4882a593Smuzhiyun	  This is the index of the parallel port the panel is connected to. One
187*4882a593Smuzhiyun	  driver instance only supports one parallel port, so if your keypad
188*4882a593Smuzhiyun	  and LCD are connected to two separate ports, you have to start two
189*4882a593Smuzhiyun	  modules with different arguments. Numbering starts with '0' for LPT1,
190*4882a593Smuzhiyun	  and so on.
191*4882a593Smuzhiyun
192*4882a593Smuzhiyunconfig PANEL_PROFILE
193*4882a593Smuzhiyun	int "Default panel profile (0-5, 0=custom)"
194*4882a593Smuzhiyun	range 0 5
195*4882a593Smuzhiyun	default "5"
196*4882a593Smuzhiyun	help
197*4882a593Smuzhiyun	  To ease configuration, the driver supports different configuration
198*4882a593Smuzhiyun	  profiles for past and recent wirings. These profiles can also be
199*4882a593Smuzhiyun	  used to define an approximative configuration, completed by a few
200*4882a593Smuzhiyun	  other options. Here are the profiles :
201*4882a593Smuzhiyun
202*4882a593Smuzhiyun	    0 = custom (see further)
203*4882a593Smuzhiyun	    1 = 2x16 parallel LCD, old keypad
204*4882a593Smuzhiyun	    2 = 2x16 serial LCD (KS-0074), new keypad
205*4882a593Smuzhiyun	    3 = 2x16 parallel LCD (Hantronix), no keypad
206*4882a593Smuzhiyun	    4 = 2x16 parallel LCD (Nexcom NSA1045) with Nexcom's keypad
207*4882a593Smuzhiyun	    5 = 2x40 parallel LCD (old one), with old keypad
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun	  Custom configurations allow you to define how your display is
210*4882a593Smuzhiyun	  wired to the parallel port, and how it works. This is only intended
211*4882a593Smuzhiyun	  for experts.
212*4882a593Smuzhiyun
213*4882a593Smuzhiyunconfig PANEL_KEYPAD
214*4882a593Smuzhiyun	depends on PANEL_PROFILE="0"
215*4882a593Smuzhiyun	int "Keypad type (0=none, 1=old 6 keys, 2=new 6 keys, 3=Nexcom 4 keys)"
216*4882a593Smuzhiyun	range 0 3
217*4882a593Smuzhiyun	default 0
218*4882a593Smuzhiyun	help
219*4882a593Smuzhiyun	  This enables and configures a keypad connected to the parallel port.
220*4882a593Smuzhiyun	  The keys will be read from character device 10,185. Valid values are :
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun	    0 : do not enable this driver
223*4882a593Smuzhiyun	    1 : old 6 keys keypad
224*4882a593Smuzhiyun	    2 : new 6 keys keypad, as used on the server at www.ant-computing.com
225*4882a593Smuzhiyun	    3 : Nexcom NSA1045's 4 keys keypad
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun	  New profiles can be described in the driver source. The driver also
228*4882a593Smuzhiyun	  supports simultaneous keys pressed when the keypad supports them.
229*4882a593Smuzhiyun
230*4882a593Smuzhiyunconfig PANEL_LCD
231*4882a593Smuzhiyun	depends on PANEL_PROFILE="0"
232*4882a593Smuzhiyun	int "LCD type (0=none, 1=custom, 2=old //, 3=ks0074, 4=hantronix, 5=Nexcom)"
233*4882a593Smuzhiyun	range 0 5
234*4882a593Smuzhiyun	default 0
235*4882a593Smuzhiyun	help
236*4882a593Smuzhiyun	   This enables and configures an LCD connected to the parallel port.
237*4882a593Smuzhiyun	   The driver includes an interpreter for escape codes starting with
238*4882a593Smuzhiyun	   '\e[L' which are specific to the LCD, and a few ANSI codes. The
239*4882a593Smuzhiyun	   driver will be registered as character device 10,156, usually
240*4882a593Smuzhiyun	   under the name '/dev/lcd'. There are a total of 6 supported types :
241*4882a593Smuzhiyun
242*4882a593Smuzhiyun	     0 : do not enable the driver
243*4882a593Smuzhiyun	     1 : custom configuration and wiring (see further)
244*4882a593Smuzhiyun	     2 : 2x16 & 2x40 parallel LCD (old wiring)
245*4882a593Smuzhiyun	     3 : 2x16 serial LCD (KS-0074 based)
246*4882a593Smuzhiyun	     4 : 2x16 parallel LCD (Hantronix wiring)
247*4882a593Smuzhiyun	     5 : 2x16 parallel LCD (Nexcom wiring)
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun	   When type '1' is specified, other options will appear to configure
250*4882a593Smuzhiyun	   more precise aspects (wiring, dimensions, protocol, ...). Please note
251*4882a593Smuzhiyun	   that those values changed from the 2.4 driver for better consistency.
252*4882a593Smuzhiyun
253*4882a593Smuzhiyunconfig PANEL_LCD_HEIGHT
254*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
255*4882a593Smuzhiyun	int "Number of lines on the LCD (1-2)"
256*4882a593Smuzhiyun	range 1 2
257*4882a593Smuzhiyun	default 2
258*4882a593Smuzhiyun	help
259*4882a593Smuzhiyun	  This is the number of visible character lines on the LCD in custom profile.
260*4882a593Smuzhiyun	  It can either be 1 or 2.
261*4882a593Smuzhiyun
262*4882a593Smuzhiyunconfig PANEL_LCD_WIDTH
263*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
264*4882a593Smuzhiyun	int "Number of characters per line on the LCD (1-40)"
265*4882a593Smuzhiyun	range 1 40
266*4882a593Smuzhiyun	default 40
267*4882a593Smuzhiyun	help
268*4882a593Smuzhiyun	  This is the number of characters per line on the LCD in custom profile.
269*4882a593Smuzhiyun	  Common values are 16,20,24,40.
270*4882a593Smuzhiyun
271*4882a593Smuzhiyunconfig PANEL_LCD_BWIDTH
272*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
273*4882a593Smuzhiyun	int "Internal LCD line width (1-40, 40 by default)"
274*4882a593Smuzhiyun	range 1 40
275*4882a593Smuzhiyun	default 40
276*4882a593Smuzhiyun	help
277*4882a593Smuzhiyun	  Most LCDs use a standard controller which supports hardware lines of 40
278*4882a593Smuzhiyun	  characters, although sometimes only 16, 20 or 24 of them are really wired
279*4882a593Smuzhiyun	  to the terminal. This results in some non-visible but addressable characters,
280*4882a593Smuzhiyun	  and is the case for most parallel LCDs. Other LCDs, and some serial ones,
281*4882a593Smuzhiyun	  however, use the same line width internally as what is visible. The KS0074
282*4882a593Smuzhiyun	  for example, uses 16 characters per line for 16 visible characters per line.
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun	  This option lets you configure the value used by your LCD in 'custom' profile.
285*4882a593Smuzhiyun	  If you don't know, put '40' here.
286*4882a593Smuzhiyun
287*4882a593Smuzhiyunconfig PANEL_LCD_HWIDTH
288*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
289*4882a593Smuzhiyun	int "Hardware LCD line width (1-64, 64 by default)"
290*4882a593Smuzhiyun	range 1 64
291*4882a593Smuzhiyun	default 64
292*4882a593Smuzhiyun	help
293*4882a593Smuzhiyun	  Most LCDs use a single address bit to differentiate line 0 and line 1. Since
294*4882a593Smuzhiyun	  some of them need to be able to address 40 chars with the lower bits, they
295*4882a593Smuzhiyun	  often use the immediately superior power of 2, which is 64, to address the
296*4882a593Smuzhiyun	  next line.
297*4882a593Smuzhiyun
298*4882a593Smuzhiyun	  If you don't know what your LCD uses, in doubt let 16 here for a 2x16, and
299*4882a593Smuzhiyun	  64 here for a 2x40.
300*4882a593Smuzhiyun
301*4882a593Smuzhiyunconfig PANEL_LCD_CHARSET
302*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
303*4882a593Smuzhiyun	int "LCD character set (0=normal, 1=KS0074)"
304*4882a593Smuzhiyun	range 0 1
305*4882a593Smuzhiyun	default 0
306*4882a593Smuzhiyun	help
307*4882a593Smuzhiyun	  Some controllers such as the KS0074 use a somewhat strange character set
308*4882a593Smuzhiyun	  where many symbols are at unusual places. The driver knows how to map
309*4882a593Smuzhiyun	  'standard' ASCII characters to the character sets used by these controllers.
310*4882a593Smuzhiyun	  Valid values are :
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun	     0 : normal (untranslated) character set
313*4882a593Smuzhiyun	     1 : KS0074 character set
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun	  If you don't know, use the normal one (0).
316*4882a593Smuzhiyun
317*4882a593Smuzhiyunconfig PANEL_LCD_PROTO
318*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
319*4882a593Smuzhiyun	int "LCD communication mode (0=parallel 8 bits, 1=serial)"
320*4882a593Smuzhiyun	range 0 1
321*4882a593Smuzhiyun	default 0
322*4882a593Smuzhiyun	help
323*4882a593Smuzhiyun	  This driver now supports any serial or parallel LCD wired to a parallel
324*4882a593Smuzhiyun	  port. But before assigning signals, the driver needs to know if it will
325*4882a593Smuzhiyun	  be driving a serial LCD or a parallel one. Serial LCDs only use 2 wires
326*4882a593Smuzhiyun	  (SDA/SCL), while parallel ones use 2 or 3 wires for the control signals
327*4882a593Smuzhiyun	  (E, RS, sometimes RW), and 4 or 8 for the data. Use 0 here for a 8 bits
328*4882a593Smuzhiyun	  parallel LCD, and 1 for a serial LCD.
329*4882a593Smuzhiyun
330*4882a593Smuzhiyunconfig PANEL_LCD_PIN_E
331*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
332*4882a593Smuzhiyun	int "Parallel port pin number & polarity connected to the LCD E signal (-17...17) "
333*4882a593Smuzhiyun	range -17 17
334*4882a593Smuzhiyun	default 14
335*4882a593Smuzhiyun	help
336*4882a593Smuzhiyun	  This describes the number of the parallel port pin to which the LCD 'E'
337*4882a593Smuzhiyun	  signal has been connected. It can be :
338*4882a593Smuzhiyun
339*4882a593Smuzhiyun	          0 : no connection (eg: connected to ground)
340*4882a593Smuzhiyun	      1..17 : directly connected to any of these pins on the DB25 plug
341*4882a593Smuzhiyun	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
342*4882a593Smuzhiyun
343*4882a593Smuzhiyun	  Default for the 'E' pin in custom profile is '14' (AUTOFEED).
344*4882a593Smuzhiyun
345*4882a593Smuzhiyunconfig PANEL_LCD_PIN_RS
346*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
347*4882a593Smuzhiyun	int "Parallel port pin number & polarity connected to the LCD RS signal (-17...17) "
348*4882a593Smuzhiyun	range -17 17
349*4882a593Smuzhiyun	default 17
350*4882a593Smuzhiyun	help
351*4882a593Smuzhiyun	  This describes the number of the parallel port pin to which the LCD 'RS'
352*4882a593Smuzhiyun	  signal has been connected. It can be :
353*4882a593Smuzhiyun
354*4882a593Smuzhiyun	          0 : no connection (eg: connected to ground)
355*4882a593Smuzhiyun	      1..17 : directly connected to any of these pins on the DB25 plug
356*4882a593Smuzhiyun	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
357*4882a593Smuzhiyun
358*4882a593Smuzhiyun	  Default for the 'RS' pin in custom profile is '17' (SELECT IN).
359*4882a593Smuzhiyun
360*4882a593Smuzhiyunconfig PANEL_LCD_PIN_RW
361*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
362*4882a593Smuzhiyun	int "Parallel port pin number & polarity connected to the LCD RW signal (-17...17) "
363*4882a593Smuzhiyun	range -17 17
364*4882a593Smuzhiyun	default 16
365*4882a593Smuzhiyun	help
366*4882a593Smuzhiyun	  This describes the number of the parallel port pin to which the LCD 'RW'
367*4882a593Smuzhiyun	  signal has been connected. It can be :
368*4882a593Smuzhiyun
369*4882a593Smuzhiyun	          0 : no connection (eg: connected to ground)
370*4882a593Smuzhiyun	      1..17 : directly connected to any of these pins on the DB25 plug
371*4882a593Smuzhiyun	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
372*4882a593Smuzhiyun
373*4882a593Smuzhiyun	  Default for the 'RW' pin in custom profile is '16' (INIT).
374*4882a593Smuzhiyun
375*4882a593Smuzhiyunconfig PANEL_LCD_PIN_SCL
376*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0"
377*4882a593Smuzhiyun	int "Parallel port pin number & polarity connected to the LCD SCL signal (-17...17) "
378*4882a593Smuzhiyun	range -17 17
379*4882a593Smuzhiyun	default 1
380*4882a593Smuzhiyun	help
381*4882a593Smuzhiyun	  This describes the number of the parallel port pin to which the serial
382*4882a593Smuzhiyun	  LCD 'SCL' signal has been connected. It can be :
383*4882a593Smuzhiyun
384*4882a593Smuzhiyun	          0 : no connection (eg: connected to ground)
385*4882a593Smuzhiyun	      1..17 : directly connected to any of these pins on the DB25 plug
386*4882a593Smuzhiyun	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun	  Default for the 'SCL' pin in custom profile is '1' (STROBE).
389*4882a593Smuzhiyun
390*4882a593Smuzhiyunconfig PANEL_LCD_PIN_SDA
391*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0"
392*4882a593Smuzhiyun	int "Parallel port pin number & polarity connected to the LCD SDA signal (-17...17) "
393*4882a593Smuzhiyun	range -17 17
394*4882a593Smuzhiyun	default 2
395*4882a593Smuzhiyun	help
396*4882a593Smuzhiyun	  This describes the number of the parallel port pin to which the serial
397*4882a593Smuzhiyun	  LCD 'SDA' signal has been connected. It can be :
398*4882a593Smuzhiyun
399*4882a593Smuzhiyun	          0 : no connection (eg: connected to ground)
400*4882a593Smuzhiyun	      1..17 : directly connected to any of these pins on the DB25 plug
401*4882a593Smuzhiyun	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun	  Default for the 'SDA' pin in custom profile is '2' (D0).
404*4882a593Smuzhiyun
405*4882a593Smuzhiyunconfig PANEL_LCD_PIN_BL
406*4882a593Smuzhiyun	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
407*4882a593Smuzhiyun	int "Parallel port pin number & polarity connected to the LCD backlight signal (-17...17) "
408*4882a593Smuzhiyun	range -17 17
409*4882a593Smuzhiyun	default 0
410*4882a593Smuzhiyun	help
411*4882a593Smuzhiyun	  This describes the number of the parallel port pin to which the LCD 'BL' signal
412*4882a593Smuzhiyun	  has been connected. It can be :
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun	          0 : no connection (eg: connected to ground)
415*4882a593Smuzhiyun	      1..17 : directly connected to any of these pins on the DB25 plug
416*4882a593Smuzhiyun	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
417*4882a593Smuzhiyun
418*4882a593Smuzhiyun	  Default for the 'BL' pin in custom profile is '0' (uncontrolled).
419*4882a593Smuzhiyun
420*4882a593Smuzhiyunendif # PARPORT_PANEL
421*4882a593Smuzhiyun
422*4882a593Smuzhiyunconfig PANEL_CHANGE_MESSAGE
423*4882a593Smuzhiyun	bool "Change LCD initialization message ?"
424*4882a593Smuzhiyun	depends on CHARLCD
425*4882a593Smuzhiyun	default "n"
426*4882a593Smuzhiyun	help
427*4882a593Smuzhiyun	  This allows you to replace the boot message indicating the kernel version
428*4882a593Smuzhiyun	  and the driver version with a custom message. This is useful on appliances
429*4882a593Smuzhiyun	  where a simple 'Starting system' message can be enough to stop a customer
430*4882a593Smuzhiyun	  from worrying.
431*4882a593Smuzhiyun
432*4882a593Smuzhiyun	  If you say 'Y' here, you'll be able to choose a message yourself. Otherwise,
433*4882a593Smuzhiyun	  say 'N' and keep the default message with the version.
434*4882a593Smuzhiyun
435*4882a593Smuzhiyunconfig PANEL_BOOT_MESSAGE
436*4882a593Smuzhiyun	depends on PANEL_CHANGE_MESSAGE="y"
437*4882a593Smuzhiyun	string "New initialization message"
438*4882a593Smuzhiyun	default ""
439*4882a593Smuzhiyun	help
440*4882a593Smuzhiyun	  This allows you to replace the boot message indicating the kernel version
441*4882a593Smuzhiyun	  and the driver version with a custom message. This is useful on appliances
442*4882a593Smuzhiyun	  where a simple 'Starting system' message can be enough to stop a customer
443*4882a593Smuzhiyun	  from worrying.
444*4882a593Smuzhiyun
445*4882a593Smuzhiyun	  An empty message will only clear the display at driver init time. Any other
446*4882a593Smuzhiyun	  printf()-formatted message is valid with newline and escape codes.
447*4882a593Smuzhiyun
448*4882a593Smuzhiyunchoice
449*4882a593Smuzhiyun	prompt "Backlight initial state"
450*4882a593Smuzhiyun	default CHARLCD_BL_FLASH
451*4882a593Smuzhiyun	help
452*4882a593Smuzhiyun	  Select the initial backlight state on boot or module load.
453*4882a593Smuzhiyun
454*4882a593Smuzhiyun	  Previously, there was no option for this: the backlight flashed
455*4882a593Smuzhiyun	  briefly on init. Now you can also turn it off/on.
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun	config CHARLCD_BL_OFF
458*4882a593Smuzhiyun		bool "Off"
459*4882a593Smuzhiyun		help
460*4882a593Smuzhiyun		  Backlight is initially turned off
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun	config CHARLCD_BL_ON
463*4882a593Smuzhiyun		bool "On"
464*4882a593Smuzhiyun		help
465*4882a593Smuzhiyun		  Backlight is initially turned on
466*4882a593Smuzhiyun
467*4882a593Smuzhiyun	config CHARLCD_BL_FLASH
468*4882a593Smuzhiyun		bool "Flash"
469*4882a593Smuzhiyun		help
470*4882a593Smuzhiyun		  Backlight is flashed briefly on init
471*4882a593Smuzhiyun
472*4882a593Smuzhiyunendchoice
473*4882a593Smuzhiyun
474*4882a593Smuzhiyunendif # AUXDISPLAY
475*4882a593Smuzhiyun
476*4882a593Smuzhiyunconfig PANEL
477*4882a593Smuzhiyun	tristate "Parallel port LCD/Keypad Panel support (OLD OPTION)"
478*4882a593Smuzhiyun	depends on PARPORT
479*4882a593Smuzhiyun	select AUXDISPLAY
480*4882a593Smuzhiyun	select PARPORT_PANEL
481*4882a593Smuzhiyun
482*4882a593Smuzhiyunconfig CHARLCD
483*4882a593Smuzhiyun	tristate "Character LCD core support" if COMPILE_TEST
484