xref: /openbmc/linux/drivers/auxdisplay/Kconfig (revision 03ab8e6297acd1bc0eedaa050e2a1635c576fd11)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
270e84049SMiguel Ojeda Sandonis#
370e84049SMiguel Ojeda Sandonis# For a description of the syntax of this configuration file,
4cd238effSMauro Carvalho Chehab# see Documentation/kbuild/kconfig-language.rst.
570e84049SMiguel Ojeda Sandonis#
670e84049SMiguel Ojeda Sandonis# Auxiliary display drivers configuration.
770e84049SMiguel Ojeda Sandonis#
870e84049SMiguel Ojeda Sandonis
9f5920969SJan Engelhardtmenuconfig AUXDISPLAY
10f5920969SJan Engelhardt	bool "Auxiliary Display support"
11a7f7f624SMasahiro Yamada	help
1206bfb7ebSJan Engelhardt	  Say Y here to get to see options for auxiliary display drivers.
1306bfb7ebSJan Engelhardt	  This option alone does not add any kernel code.
1406bfb7ebSJan Engelhardt
1506bfb7ebSJan Engelhardt	  If you say N, all options in this submenu will be skipped and disabled.
16f5920969SJan Engelhardt
17c0aa24baSH Hartley Sweetenif AUXDISPLAY
1870e84049SMiguel Ojeda Sandonis
19718e05edSLars Poeschelconfig CHARLCD
20718e05edSLars Poeschel	tristate "Character LCD core support" if COMPILE_TEST
21718e05edSLars Poeschel	help
22718e05edSLars Poeschel	  This is the base system for character-based LCD displays.
23718e05edSLars Poeschel	  It makes no sense to have this alone, you select your display driver
24718e05edSLars Poeschel	  and if it needs the charlcd core, it will select it automatically.
25718e05edSLars Poeschel	  This is some character LCD core interface that multiple drivers can
26718e05edSLars Poeschel	  use.
27718e05edSLars Poeschel
287e76aeceSGeert Uytterhoevenconfig LINEDISP
297e76aeceSGeert Uytterhoeven	tristate "Character line display core support" if COMPILE_TEST
307e76aeceSGeert Uytterhoeven	help
317e76aeceSGeert Uytterhoeven	  This is the core support for single-line character displays, to be
327e76aeceSGeert Uytterhoeven	  selected by drivers that use it.
337e76aeceSGeert Uytterhoeven
34718e05edSLars Poeschelconfig HD44780_COMMON
35718e05edSLars Poeschel	tristate "Common functions for HD44780 (and compatibles) LCD displays" if COMPILE_TEST
36ffdf726dSLars Poeschel	select CHARLCD
37718e05edSLars Poeschel	help
38718e05edSLars Poeschel	  This is a module with the common symbols for HD44780 (and compatibles)
39718e05edSLars Poeschel	  displays. This is the code that multiple other modules use. It is not
40718e05edSLars Poeschel	  useful alone. If you have some sort of HD44780 compatible display,
41718e05edSLars Poeschel	  you very likely use this. It is selected automatically by selecting
42718e05edSLars Poeschel	  your concrete display.
43718e05edSLars Poeschel
44d47d8836SGeert Uytterhoevenconfig HD44780
45d47d8836SGeert Uytterhoeven	tristate "HD44780 Character LCD support"
46d47d8836SGeert Uytterhoeven	depends on GPIOLIB || COMPILE_TEST
47718e05edSLars Poeschel	select HD44780_COMMON
48a7f7f624SMasahiro Yamada	help
49d47d8836SGeert Uytterhoeven	  Enable support for Character LCDs using a HD44780 controller.
50d47d8836SGeert Uytterhoeven	  The LCD is accessible through the /dev/lcd char device (10, 156).
51d47d8836SGeert Uytterhoeven	  This code can either be compiled as a module, or linked into the
52d47d8836SGeert Uytterhoeven	  kernel and started at boot.
53d47d8836SGeert Uytterhoeven	  If you don't understand what all this is about, say N.
54d47d8836SGeert Uytterhoeven
5570e84049SMiguel Ojeda Sandonisconfig KS0108
5670e84049SMiguel Ojeda Sandonis	tristate "KS0108 LCD Controller"
5770e84049SMiguel Ojeda Sandonis	depends on PARPORT_PC
5870e84049SMiguel Ojeda Sandonis	default n
59a7f7f624SMasahiro Yamada	help
6070e84049SMiguel Ojeda Sandonis	  If you have a LCD controlled by one or more KS0108
6170e84049SMiguel Ojeda Sandonis	  controllers, say Y. You will need also another more specific
6270e84049SMiguel Ojeda Sandonis	  driver for your LCD.
6370e84049SMiguel Ojeda Sandonis
6470e84049SMiguel Ojeda Sandonis	  Depends on Parallel Port support. If you say Y at
6570e84049SMiguel Ojeda Sandonis	  parport, you will be able to compile this as a module (M)
6670e84049SMiguel Ojeda Sandonis	  and built-in as well (Y).
6770e84049SMiguel Ojeda Sandonis
6870e84049SMiguel Ojeda Sandonis	  To compile this as a module, choose M here:
6970e84049SMiguel Ojeda Sandonis	  the module will be called ks0108.
7070e84049SMiguel Ojeda Sandonis
7170e84049SMiguel Ojeda Sandonis	  If unsure, say N.
7270e84049SMiguel Ojeda Sandonis
7370e84049SMiguel Ojeda Sandonisconfig KS0108_PORT
7470e84049SMiguel Ojeda Sandonis	hex "Parallel port where the LCD is connected"
7570e84049SMiguel Ojeda Sandonis	depends on KS0108
7670e84049SMiguel Ojeda Sandonis	default 0x378
77a7f7f624SMasahiro Yamada	help
7870e84049SMiguel Ojeda Sandonis	  The address of the parallel port where the LCD is connected.
7970e84049SMiguel Ojeda Sandonis
8070e84049SMiguel Ojeda Sandonis	  The first  standard parallel port address is 0x378.
8170e84049SMiguel Ojeda Sandonis	  The second standard parallel port address is 0x278.
8270e84049SMiguel Ojeda Sandonis	  The third  standard parallel port address is 0x3BC.
8370e84049SMiguel Ojeda Sandonis
8470e84049SMiguel Ojeda Sandonis	  You can specify a different address if you need.
8570e84049SMiguel Ojeda Sandonis
8670e84049SMiguel Ojeda Sandonis	  If you don't know what I'm talking about, load the parport module,
8770e84049SMiguel Ojeda Sandonis	  and execute "dmesg" or "cat /proc/ioports". You can see there how
8870e84049SMiguel Ojeda Sandonis	  many parallel ports are present and which address each one has.
8970e84049SMiguel Ojeda Sandonis
9070e84049SMiguel Ojeda Sandonis	  Usually you only need to use 0x378.
9170e84049SMiguel Ojeda Sandonis
9270e84049SMiguel Ojeda Sandonis	  If you compile this as a module, you can still override this
9370e84049SMiguel Ojeda Sandonis	  using the module parameters.
9470e84049SMiguel Ojeda Sandonis
9570e84049SMiguel Ojeda Sandonisconfig KS0108_DELAY
9670e84049SMiguel Ojeda Sandonis	int "Delay between each control writing (microseconds)"
9770e84049SMiguel Ojeda Sandonis	depends on KS0108
9870e84049SMiguel Ojeda Sandonis	default "2"
99a7f7f624SMasahiro Yamada	help
10070e84049SMiguel Ojeda Sandonis	  Amount of time the ks0108 should wait between each control write
10170e84049SMiguel Ojeda Sandonis	  to the parallel port.
10270e84049SMiguel Ojeda Sandonis
103450c622eSMiguel Ojeda	  If your LCD seems to miss random writings, increment this.
10470e84049SMiguel Ojeda Sandonis
10570e84049SMiguel Ojeda Sandonis	  If you don't know what I'm talking about, ignore it.
10670e84049SMiguel Ojeda Sandonis
10770e84049SMiguel Ojeda Sandonis	  If you compile this as a module, you can still override this
10870e84049SMiguel Ojeda Sandonis	  value using the module parameters.
10970e84049SMiguel Ojeda Sandonis
11070e84049SMiguel Ojeda Sandonisconfig CFAG12864B
11170e84049SMiguel Ojeda Sandonis	tristate "CFAG12864B LCD"
11270e84049SMiguel Ojeda Sandonis	depends on X86
11370e84049SMiguel Ojeda Sandonis	depends on FB
11470e84049SMiguel Ojeda Sandonis	depends on KS0108
115bfeeffbbSAvuton Olrich	select FB_SYS_FILLRECT
116bfeeffbbSAvuton Olrich	select FB_SYS_COPYAREA
117bfeeffbbSAvuton Olrich	select FB_SYS_IMAGEBLIT
118bfeeffbbSAvuton Olrich	select FB_SYS_FOPS
11970e84049SMiguel Ojeda Sandonis	default n
120a7f7f624SMasahiro Yamada	help
12170e84049SMiguel Ojeda Sandonis	  If you have a Crystalfontz 128x64 2-color LCD, cfag12864b Series,
12270e84049SMiguel Ojeda Sandonis	  say Y. You also need the ks0108 LCD Controller driver.
12370e84049SMiguel Ojeda Sandonis
12470e84049SMiguel Ojeda Sandonis	  For help about how to wire your LCD to the parallel port,
12576b5a6e8SMauro Carvalho Chehab	  check Documentation/admin-guide/auxdisplay/cfag12864b.rst
12670e84049SMiguel Ojeda Sandonis
12770e84049SMiguel Ojeda Sandonis	  Depends on the x86 arch and the framebuffer support.
12870e84049SMiguel Ojeda Sandonis
12970e84049SMiguel Ojeda Sandonis	  The LCD framebuffer driver can be attached to a console.
13070e84049SMiguel Ojeda Sandonis	  It will work fine. However, you can't attach it to the fbdev driver
13170e84049SMiguel Ojeda Sandonis	  of the xorg server.
13270e84049SMiguel Ojeda Sandonis
13370e84049SMiguel Ojeda Sandonis	  To compile this as a module, choose M here:
13470e84049SMiguel Ojeda Sandonis	  the modules will be called cfag12864b and cfag12864bfb.
13570e84049SMiguel Ojeda Sandonis
13670e84049SMiguel Ojeda Sandonis	  If unsure, say N.
13770e84049SMiguel Ojeda Sandonis
13870e84049SMiguel Ojeda Sandonisconfig CFAG12864B_RATE
13970e84049SMiguel Ojeda Sandonis	int "Refresh rate (hertz)"
14070e84049SMiguel Ojeda Sandonis	depends on CFAG12864B
14170e84049SMiguel Ojeda Sandonis	default "20"
142a7f7f624SMasahiro Yamada	help
14370e84049SMiguel Ojeda Sandonis	  Refresh rate of the LCD.
14470e84049SMiguel Ojeda Sandonis
14570e84049SMiguel Ojeda Sandonis	  As the LCD is not memory mapped, the driver has to make the work by
14670e84049SMiguel Ojeda Sandonis	  software. This means you should be careful setting this value higher.
14770e84049SMiguel Ojeda Sandonis	  If your CPUs are really slow or you feel the system is slowed down,
14870e84049SMiguel Ojeda Sandonis	  decrease the value.
14970e84049SMiguel Ojeda Sandonis
15070e84049SMiguel Ojeda Sandonis	  Be careful modifying this value to a very high value:
15170e84049SMiguel Ojeda Sandonis	  You can freeze the computer, or the LCD maybe can't draw as fast as you
15270e84049SMiguel Ojeda Sandonis	  are requesting.
15370e84049SMiguel Ojeda Sandonis
15470e84049SMiguel Ojeda Sandonis	  If you don't know what I'm talking about, ignore it.
15570e84049SMiguel Ojeda Sandonis
15670e84049SMiguel Ojeda Sandonis	  If you compile this as a module, you can still override this
15770e84049SMiguel Ojeda Sandonis	  value using the module parameters.
158f5920969SJan Engelhardt
1590cad855fSPaul Burtonconfig IMG_ASCII_LCD
1600cad855fSPaul Burton	tristate "Imagination Technologies ASCII LCD Display"
161141cbfbaSThomas Meyer	depends on HAS_IOMEM
1620186a092SUlf Magnusson	default y if MIPS_MALTA
163aa9d87bdSCorentin Labbe	select MFD_SYSCON
1647e76aeceSGeert Uytterhoeven	select LINEDISP
1650cad855fSPaul Burton	help
1660cad855fSPaul Burton	  Enable this to support the simple ASCII LCD displays found on
1670cad855fSPaul Burton	  development boards such as the MIPS Boston, MIPS Malta & MIPS SEAD3
1680cad855fSPaul Burton	  from Imagination Technologies.
1690cad855fSPaul Burton
1708992da44SRobin van der Grachtconfig HT16K33
1718992da44SRobin van der Gracht	tristate "Holtek Ht16K33 LED controller with keyscan"
172*5d343f7cSGeert Uytterhoeven	depends on FB && I2C && INPUT
17331114fa9SRobin van der Gracht	select FB_SYS_FOPS
174546cf3efSRandy Dunlap	select FB_SYS_FILLRECT
175546cf3efSRandy Dunlap	select FB_SYS_COPYAREA
176546cf3efSRandy Dunlap	select FB_SYS_IMAGEBLIT
1778992da44SRobin van der Gracht	select INPUT_MATRIXKMAP
1788992da44SRobin van der Gracht	select FB_BACKLIGHT
179c223d9c6SGeert Uytterhoeven	select NEW_LEDS
180c223d9c6SGeert Uytterhoeven	select LEDS_CLASS
181a0428724SGeert Uytterhoeven	select LINEDISP
1828992da44SRobin van der Gracht	help
1838992da44SRobin van der Gracht	  Say yes here to add support for Holtek HT16K33, RAM mapping 16*8
1848992da44SRobin van der Gracht	  LED controller driver with keyscan.
1858992da44SRobin van der Gracht
1868c9108d0SLars Poeschelconfig LCD2S
1878c9108d0SLars Poeschel	tristate "lcd2s 20x4 character display over I2C console"
1888c9108d0SLars Poeschel	depends on I2C
1898c9108d0SLars Poeschel	select CHARLCD
1908c9108d0SLars Poeschel	help
1918c9108d0SLars Poeschel	  This is a driver that lets you use the lcd2s 20x4 character display
1928c9108d0SLars Poeschel	  from Modtronix engineering as a console output device. The display
1938c9108d0SLars Poeschel	  is a simple single color character display. You have to connect it
1948c9108d0SLars Poeschel	  to an I2C bus.
1958c9108d0SLars Poeschel
19600846a44SAndy Shevchenkoconfig ARM_CHARLCD
19700846a44SAndy Shevchenko	bool "ARM Ltd. Character LCD Driver"
19800846a44SAndy Shevchenko	depends on PLAT_VERSATILE
19900846a44SAndy Shevchenko	help
20000846a44SAndy Shevchenko	  This is a driver for the character LCD found on the ARM Ltd.
20100846a44SAndy Shevchenko	  Versatile and RealView Platform Baseboards. It doesn't do
20200846a44SAndy Shevchenko	  very much more than display the text "ARM Linux" on the first
20300846a44SAndy Shevchenko	  line and the Linux version on the second line, but that's
20400846a44SAndy Shevchenko	  still useful.
20500846a44SAndy Shevchenko
20624c764abSMans Rullgardmenuconfig PARPORT_PANEL
20751c1e9b5SAndy Shevchenko	tristate "Parallel port LCD/Keypad Panel support"
20851c1e9b5SAndy Shevchenko	depends on PARPORT
209718e05edSLars Poeschel	select HD44780_COMMON
210a7f7f624SMasahiro Yamada	help
21151c1e9b5SAndy Shevchenko	  Say Y here if you have an HD44780 or KS-0074 LCD connected to your
21251c1e9b5SAndy Shevchenko	  parallel port. This driver also features 4 and 6-key keypads. The LCD
21351c1e9b5SAndy Shevchenko	  is accessible through the /dev/lcd char device (10, 156), and the
21451c1e9b5SAndy Shevchenko	  keypad through /dev/keypad (10, 185). This code can either be
21551c1e9b5SAndy Shevchenko	  compiled as a module, or linked into the kernel and started at boot.
21651c1e9b5SAndy Shevchenko	  If you don't understand what all this is about, say N.
21751c1e9b5SAndy Shevchenko
21824c764abSMans Rullgardif PARPORT_PANEL
21951c1e9b5SAndy Shevchenko
22051c1e9b5SAndy Shevchenkoconfig PANEL_PARPORT
22151c1e9b5SAndy Shevchenko	int "Default parallel port number (0=LPT1)"
22251c1e9b5SAndy Shevchenko	range 0 255
22351c1e9b5SAndy Shevchenko	default "0"
224a7f7f624SMasahiro Yamada	help
22551c1e9b5SAndy Shevchenko	  This is the index of the parallel port the panel is connected to. One
22651c1e9b5SAndy Shevchenko	  driver instance only supports one parallel port, so if your keypad
22751c1e9b5SAndy Shevchenko	  and LCD are connected to two separate ports, you have to start two
22851c1e9b5SAndy Shevchenko	  modules with different arguments. Numbering starts with '0' for LPT1,
22951c1e9b5SAndy Shevchenko	  and so on.
23051c1e9b5SAndy Shevchenko
23151c1e9b5SAndy Shevchenkoconfig PANEL_PROFILE
23251c1e9b5SAndy Shevchenko	int "Default panel profile (0-5, 0=custom)"
23351c1e9b5SAndy Shevchenko	range 0 5
23451c1e9b5SAndy Shevchenko	default "5"
235a7f7f624SMasahiro Yamada	help
23651c1e9b5SAndy Shevchenko	  To ease configuration, the driver supports different configuration
23751c1e9b5SAndy Shevchenko	  profiles for past and recent wirings. These profiles can also be
23851c1e9b5SAndy Shevchenko	  used to define an approximative configuration, completed by a few
23951c1e9b5SAndy Shevchenko	  other options. Here are the profiles :
24051c1e9b5SAndy Shevchenko
24151c1e9b5SAndy Shevchenko	    0 = custom (see further)
24251c1e9b5SAndy Shevchenko	    1 = 2x16 parallel LCD, old keypad
24351c1e9b5SAndy Shevchenko	    2 = 2x16 serial LCD (KS-0074), new keypad
24451c1e9b5SAndy Shevchenko	    3 = 2x16 parallel LCD (Hantronix), no keypad
24551c1e9b5SAndy Shevchenko	    4 = 2x16 parallel LCD (Nexcom NSA1045) with Nexcom's keypad
24651c1e9b5SAndy Shevchenko	    5 = 2x40 parallel LCD (old one), with old keypad
24751c1e9b5SAndy Shevchenko
24851c1e9b5SAndy Shevchenko	  Custom configurations allow you to define how your display is
24951c1e9b5SAndy Shevchenko	  wired to the parallel port, and how it works. This is only intended
25051c1e9b5SAndy Shevchenko	  for experts.
25151c1e9b5SAndy Shevchenko
25251c1e9b5SAndy Shevchenkoconfig PANEL_KEYPAD
25351c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0"
25451c1e9b5SAndy Shevchenko	int "Keypad type (0=none, 1=old 6 keys, 2=new 6 keys, 3=Nexcom 4 keys)"
25551c1e9b5SAndy Shevchenko	range 0 3
25651c1e9b5SAndy Shevchenko	default 0
257a7f7f624SMasahiro Yamada	help
25851c1e9b5SAndy Shevchenko	  This enables and configures a keypad connected to the parallel port.
25951c1e9b5SAndy Shevchenko	  The keys will be read from character device 10,185. Valid values are :
26051c1e9b5SAndy Shevchenko
26151c1e9b5SAndy Shevchenko	    0 : do not enable this driver
26251c1e9b5SAndy Shevchenko	    1 : old 6 keys keypad
26351c1e9b5SAndy Shevchenko	    2 : new 6 keys keypad, as used on the server at www.ant-computing.com
26451c1e9b5SAndy Shevchenko	    3 : Nexcom NSA1045's 4 keys keypad
26551c1e9b5SAndy Shevchenko
26651c1e9b5SAndy Shevchenko	  New profiles can be described in the driver source. The driver also
26751c1e9b5SAndy Shevchenko	  supports simultaneous keys pressed when the keypad supports them.
26851c1e9b5SAndy Shevchenko
26951c1e9b5SAndy Shevchenkoconfig PANEL_LCD
27051c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0"
27151c1e9b5SAndy Shevchenko	int "LCD type (0=none, 1=custom, 2=old //, 3=ks0074, 4=hantronix, 5=Nexcom)"
27251c1e9b5SAndy Shevchenko	range 0 5
27351c1e9b5SAndy Shevchenko	default 0
274a7f7f624SMasahiro Yamada	help
27551c1e9b5SAndy Shevchenko	   This enables and configures an LCD connected to the parallel port.
27651c1e9b5SAndy Shevchenko	   The driver includes an interpreter for escape codes starting with
27751c1e9b5SAndy Shevchenko	   '\e[L' which are specific to the LCD, and a few ANSI codes. The
27851c1e9b5SAndy Shevchenko	   driver will be registered as character device 10,156, usually
27951c1e9b5SAndy Shevchenko	   under the name '/dev/lcd'. There are a total of 6 supported types :
28051c1e9b5SAndy Shevchenko
28151c1e9b5SAndy Shevchenko	     0 : do not enable the driver
28251c1e9b5SAndy Shevchenko	     1 : custom configuration and wiring (see further)
28351c1e9b5SAndy Shevchenko	     2 : 2x16 & 2x40 parallel LCD (old wiring)
28451c1e9b5SAndy Shevchenko	     3 : 2x16 serial LCD (KS-0074 based)
28551c1e9b5SAndy Shevchenko	     4 : 2x16 parallel LCD (Hantronix wiring)
28651c1e9b5SAndy Shevchenko	     5 : 2x16 parallel LCD (Nexcom wiring)
28751c1e9b5SAndy Shevchenko
28851c1e9b5SAndy Shevchenko	   When type '1' is specified, other options will appear to configure
28951c1e9b5SAndy Shevchenko	   more precise aspects (wiring, dimensions, protocol, ...). Please note
29051c1e9b5SAndy Shevchenko	   that those values changed from the 2.4 driver for better consistency.
29151c1e9b5SAndy Shevchenko
29251c1e9b5SAndy Shevchenkoconfig PANEL_LCD_HEIGHT
29351c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
29451c1e9b5SAndy Shevchenko	int "Number of lines on the LCD (1-2)"
29551c1e9b5SAndy Shevchenko	range 1 2
29651c1e9b5SAndy Shevchenko	default 2
297a7f7f624SMasahiro Yamada	help
29851c1e9b5SAndy Shevchenko	  This is the number of visible character lines on the LCD in custom profile.
29951c1e9b5SAndy Shevchenko	  It can either be 1 or 2.
30051c1e9b5SAndy Shevchenko
30151c1e9b5SAndy Shevchenkoconfig PANEL_LCD_WIDTH
30251c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
30351c1e9b5SAndy Shevchenko	int "Number of characters per line on the LCD (1-40)"
30451c1e9b5SAndy Shevchenko	range 1 40
30551c1e9b5SAndy Shevchenko	default 40
306a7f7f624SMasahiro Yamada	help
30751c1e9b5SAndy Shevchenko	  This is the number of characters per line on the LCD in custom profile.
30851c1e9b5SAndy Shevchenko	  Common values are 16,20,24,40.
30951c1e9b5SAndy Shevchenko
31051c1e9b5SAndy Shevchenkoconfig PANEL_LCD_BWIDTH
31151c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
31251c1e9b5SAndy Shevchenko	int "Internal LCD line width (1-40, 40 by default)"
31351c1e9b5SAndy Shevchenko	range 1 40
31451c1e9b5SAndy Shevchenko	default 40
315a7f7f624SMasahiro Yamada	help
31651c1e9b5SAndy Shevchenko	  Most LCDs use a standard controller which supports hardware lines of 40
31751c1e9b5SAndy Shevchenko	  characters, although sometimes only 16, 20 or 24 of them are really wired
31851c1e9b5SAndy Shevchenko	  to the terminal. This results in some non-visible but addressable characters,
31951c1e9b5SAndy Shevchenko	  and is the case for most parallel LCDs. Other LCDs, and some serial ones,
32051c1e9b5SAndy Shevchenko	  however, use the same line width internally as what is visible. The KS0074
32151c1e9b5SAndy Shevchenko	  for example, uses 16 characters per line for 16 visible characters per line.
32251c1e9b5SAndy Shevchenko
32351c1e9b5SAndy Shevchenko	  This option lets you configure the value used by your LCD in 'custom' profile.
32451c1e9b5SAndy Shevchenko	  If you don't know, put '40' here.
32551c1e9b5SAndy Shevchenko
32651c1e9b5SAndy Shevchenkoconfig PANEL_LCD_HWIDTH
32751c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
32851c1e9b5SAndy Shevchenko	int "Hardware LCD line width (1-64, 64 by default)"
32951c1e9b5SAndy Shevchenko	range 1 64
33051c1e9b5SAndy Shevchenko	default 64
331a7f7f624SMasahiro Yamada	help
33251c1e9b5SAndy Shevchenko	  Most LCDs use a single address bit to differentiate line 0 and line 1. Since
33351c1e9b5SAndy Shevchenko	  some of them need to be able to address 40 chars with the lower bits, they
33451c1e9b5SAndy Shevchenko	  often use the immediately superior power of 2, which is 64, to address the
33551c1e9b5SAndy Shevchenko	  next line.
33651c1e9b5SAndy Shevchenko
33751c1e9b5SAndy Shevchenko	  If you don't know what your LCD uses, in doubt let 16 here for a 2x16, and
33851c1e9b5SAndy Shevchenko	  64 here for a 2x40.
33951c1e9b5SAndy Shevchenko
34051c1e9b5SAndy Shevchenkoconfig PANEL_LCD_CHARSET
34151c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
34251c1e9b5SAndy Shevchenko	int "LCD character set (0=normal, 1=KS0074)"
34351c1e9b5SAndy Shevchenko	range 0 1
34451c1e9b5SAndy Shevchenko	default 0
345a7f7f624SMasahiro Yamada	help
34651c1e9b5SAndy Shevchenko	  Some controllers such as the KS0074 use a somewhat strange character set
34751c1e9b5SAndy Shevchenko	  where many symbols are at unusual places. The driver knows how to map
34851c1e9b5SAndy Shevchenko	  'standard' ASCII characters to the character sets used by these controllers.
34951c1e9b5SAndy Shevchenko	  Valid values are :
35051c1e9b5SAndy Shevchenko
35151c1e9b5SAndy Shevchenko	     0 : normal (untranslated) character set
35251c1e9b5SAndy Shevchenko	     1 : KS0074 character set
35351c1e9b5SAndy Shevchenko
35451c1e9b5SAndy Shevchenko	  If you don't know, use the normal one (0).
35551c1e9b5SAndy Shevchenko
35651c1e9b5SAndy Shevchenkoconfig PANEL_LCD_PROTO
35751c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
35851c1e9b5SAndy Shevchenko	int "LCD communication mode (0=parallel 8 bits, 1=serial)"
35951c1e9b5SAndy Shevchenko	range 0 1
36051c1e9b5SAndy Shevchenko	default 0
361a7f7f624SMasahiro Yamada	help
36251c1e9b5SAndy Shevchenko	  This driver now supports any serial or parallel LCD wired to a parallel
36351c1e9b5SAndy Shevchenko	  port. But before assigning signals, the driver needs to know if it will
36451c1e9b5SAndy Shevchenko	  be driving a serial LCD or a parallel one. Serial LCDs only use 2 wires
36551c1e9b5SAndy Shevchenko	  (SDA/SCL), while parallel ones use 2 or 3 wires for the control signals
36651c1e9b5SAndy Shevchenko	  (E, RS, sometimes RW), and 4 or 8 for the data. Use 0 here for a 8 bits
36751c1e9b5SAndy Shevchenko	  parallel LCD, and 1 for a serial LCD.
36851c1e9b5SAndy Shevchenko
36951c1e9b5SAndy Shevchenkoconfig PANEL_LCD_PIN_E
37051c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
37151c1e9b5SAndy Shevchenko	int "Parallel port pin number & polarity connected to the LCD E signal (-17...17) "
37251c1e9b5SAndy Shevchenko	range -17 17
37351c1e9b5SAndy Shevchenko	default 14
374a7f7f624SMasahiro Yamada	help
37551c1e9b5SAndy Shevchenko	  This describes the number of the parallel port pin to which the LCD 'E'
37651c1e9b5SAndy Shevchenko	  signal has been connected. It can be :
37751c1e9b5SAndy Shevchenko
37851c1e9b5SAndy Shevchenko	          0 : no connection (eg: connected to ground)
37951c1e9b5SAndy Shevchenko	      1..17 : directly connected to any of these pins on the DB25 plug
38051c1e9b5SAndy Shevchenko	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
38151c1e9b5SAndy Shevchenko
38251c1e9b5SAndy Shevchenko	  Default for the 'E' pin in custom profile is '14' (AUTOFEED).
38351c1e9b5SAndy Shevchenko
38451c1e9b5SAndy Shevchenkoconfig PANEL_LCD_PIN_RS
38551c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
38651c1e9b5SAndy Shevchenko	int "Parallel port pin number & polarity connected to the LCD RS signal (-17...17) "
38751c1e9b5SAndy Shevchenko	range -17 17
38851c1e9b5SAndy Shevchenko	default 17
389a7f7f624SMasahiro Yamada	help
39051c1e9b5SAndy Shevchenko	  This describes the number of the parallel port pin to which the LCD 'RS'
39151c1e9b5SAndy Shevchenko	  signal has been connected. It can be :
39251c1e9b5SAndy Shevchenko
39351c1e9b5SAndy Shevchenko	          0 : no connection (eg: connected to ground)
39451c1e9b5SAndy Shevchenko	      1..17 : directly connected to any of these pins on the DB25 plug
39551c1e9b5SAndy Shevchenko	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
39651c1e9b5SAndy Shevchenko
39751c1e9b5SAndy Shevchenko	  Default for the 'RS' pin in custom profile is '17' (SELECT IN).
39851c1e9b5SAndy Shevchenko
39951c1e9b5SAndy Shevchenkoconfig PANEL_LCD_PIN_RW
40051c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
40151c1e9b5SAndy Shevchenko	int "Parallel port pin number & polarity connected to the LCD RW signal (-17...17) "
40251c1e9b5SAndy Shevchenko	range -17 17
40351c1e9b5SAndy Shevchenko	default 16
404a7f7f624SMasahiro Yamada	help
40551c1e9b5SAndy Shevchenko	  This describes the number of the parallel port pin to which the LCD 'RW'
40651c1e9b5SAndy Shevchenko	  signal has been connected. It can be :
40751c1e9b5SAndy Shevchenko
40851c1e9b5SAndy Shevchenko	          0 : no connection (eg: connected to ground)
40951c1e9b5SAndy Shevchenko	      1..17 : directly connected to any of these pins on the DB25 plug
41051c1e9b5SAndy Shevchenko	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
41151c1e9b5SAndy Shevchenko
41251c1e9b5SAndy Shevchenko	  Default for the 'RW' pin in custom profile is '16' (INIT).
41351c1e9b5SAndy Shevchenko
41451c1e9b5SAndy Shevchenkoconfig PANEL_LCD_PIN_SCL
41551c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0"
41651c1e9b5SAndy Shevchenko	int "Parallel port pin number & polarity connected to the LCD SCL signal (-17...17) "
41751c1e9b5SAndy Shevchenko	range -17 17
41851c1e9b5SAndy Shevchenko	default 1
419a7f7f624SMasahiro Yamada	help
42051c1e9b5SAndy Shevchenko	  This describes the number of the parallel port pin to which the serial
42151c1e9b5SAndy Shevchenko	  LCD 'SCL' signal has been connected. It can be :
42251c1e9b5SAndy Shevchenko
42351c1e9b5SAndy Shevchenko	          0 : no connection (eg: connected to ground)
42451c1e9b5SAndy Shevchenko	      1..17 : directly connected to any of these pins on the DB25 plug
42551c1e9b5SAndy Shevchenko	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
42651c1e9b5SAndy Shevchenko
42751c1e9b5SAndy Shevchenko	  Default for the 'SCL' pin in custom profile is '1' (STROBE).
42851c1e9b5SAndy Shevchenko
42951c1e9b5SAndy Shevchenkoconfig PANEL_LCD_PIN_SDA
43051c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0"
43151c1e9b5SAndy Shevchenko	int "Parallel port pin number & polarity connected to the LCD SDA signal (-17...17) "
43251c1e9b5SAndy Shevchenko	range -17 17
43351c1e9b5SAndy Shevchenko	default 2
434a7f7f624SMasahiro Yamada	help
43551c1e9b5SAndy Shevchenko	  This describes the number of the parallel port pin to which the serial
43651c1e9b5SAndy Shevchenko	  LCD 'SDA' signal has been connected. It can be :
43751c1e9b5SAndy Shevchenko
43851c1e9b5SAndy Shevchenko	          0 : no connection (eg: connected to ground)
43951c1e9b5SAndy Shevchenko	      1..17 : directly connected to any of these pins on the DB25 plug
44051c1e9b5SAndy Shevchenko	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
44151c1e9b5SAndy Shevchenko
44251c1e9b5SAndy Shevchenko	  Default for the 'SDA' pin in custom profile is '2' (D0).
44351c1e9b5SAndy Shevchenko
44451c1e9b5SAndy Shevchenkoconfig PANEL_LCD_PIN_BL
44551c1e9b5SAndy Shevchenko	depends on PANEL_PROFILE="0" && PANEL_LCD="1"
44651c1e9b5SAndy Shevchenko	int "Parallel port pin number & polarity connected to the LCD backlight signal (-17...17) "
44751c1e9b5SAndy Shevchenko	range -17 17
44851c1e9b5SAndy Shevchenko	default 0
449a7f7f624SMasahiro Yamada	help
45051c1e9b5SAndy Shevchenko	  This describes the number of the parallel port pin to which the LCD 'BL' signal
45151c1e9b5SAndy Shevchenko	  has been connected. It can be :
45251c1e9b5SAndy Shevchenko
45351c1e9b5SAndy Shevchenko	          0 : no connection (eg: connected to ground)
45451c1e9b5SAndy Shevchenko	      1..17 : directly connected to any of these pins on the DB25 plug
45551c1e9b5SAndy Shevchenko	    -1..-17 : connected to the same pin through an inverter (eg: transistor).
45651c1e9b5SAndy Shevchenko
45751c1e9b5SAndy Shevchenko	  Default for the 'BL' pin in custom profile is '0' (uncontrolled).
45851c1e9b5SAndy Shevchenko
45924c764abSMans Rullgardendif # PARPORT_PANEL
46024c764abSMans Rullgard
46151c1e9b5SAndy Shevchenkoconfig PANEL_CHANGE_MESSAGE
46251c1e9b5SAndy Shevchenko	bool "Change LCD initialization message ?"
46324c764abSMans Rullgard	depends on CHARLCD
46451c1e9b5SAndy Shevchenko	default "n"
465a7f7f624SMasahiro Yamada	help
46651c1e9b5SAndy Shevchenko	  This allows you to replace the boot message indicating the kernel version
46751c1e9b5SAndy Shevchenko	  and the driver version with a custom message. This is useful on appliances
46851c1e9b5SAndy Shevchenko	  where a simple 'Starting system' message can be enough to stop a customer
46951c1e9b5SAndy Shevchenko	  from worrying.
47051c1e9b5SAndy Shevchenko
47151c1e9b5SAndy Shevchenko	  If you say 'Y' here, you'll be able to choose a message yourself. Otherwise,
47251c1e9b5SAndy Shevchenko	  say 'N' and keep the default message with the version.
47351c1e9b5SAndy Shevchenko
47451c1e9b5SAndy Shevchenkoconfig PANEL_BOOT_MESSAGE
47551c1e9b5SAndy Shevchenko	depends on PANEL_CHANGE_MESSAGE="y"
47651c1e9b5SAndy Shevchenko	string "New initialization message"
47751c1e9b5SAndy Shevchenko	default ""
478a7f7f624SMasahiro Yamada	help
47951c1e9b5SAndy Shevchenko	  This allows you to replace the boot message indicating the kernel version
48051c1e9b5SAndy Shevchenko	  and the driver version with a custom message. This is useful on appliances
48151c1e9b5SAndy Shevchenko	  where a simple 'Starting system' message can be enough to stop a customer
48251c1e9b5SAndy Shevchenko	  from worrying.
48351c1e9b5SAndy Shevchenko
48451c1e9b5SAndy Shevchenko	  An empty message will only clear the display at driver init time. Any other
48551c1e9b5SAndy Shevchenko	  printf()-formatted message is valid with newline and escape codes.
48651c1e9b5SAndy Shevchenko
487cc5d04d8SMans Rullgardchoice
488cc5d04d8SMans Rullgard	prompt "Backlight initial state"
489cc5d04d8SMans Rullgard	default CHARLCD_BL_FLASH
490a7f7f624SMasahiro Yamada	help
491ba2c1340SMans Rullgard	  Select the initial backlight state on boot or module load.
492ba2c1340SMans Rullgard
493ba2c1340SMans Rullgard	  Previously, there was no option for this: the backlight flashed
494ba2c1340SMans Rullgard	  briefly on init. Now you can also turn it off/on.
495cc5d04d8SMans Rullgard
496cc5d04d8SMans Rullgard	config CHARLCD_BL_OFF
497cc5d04d8SMans Rullgard		bool "Off"
498cc5d04d8SMans Rullgard		help
499cc5d04d8SMans Rullgard		  Backlight is initially turned off
500cc5d04d8SMans Rullgard
501cc5d04d8SMans Rullgard	config CHARLCD_BL_ON
502cc5d04d8SMans Rullgard		bool "On"
503cc5d04d8SMans Rullgard		help
504cc5d04d8SMans Rullgard		  Backlight is initially turned on
505cc5d04d8SMans Rullgard
506cc5d04d8SMans Rullgard	config CHARLCD_BL_FLASH
507cc5d04d8SMans Rullgard		bool "Flash"
508cc5d04d8SMans Rullgard		help
509cc5d04d8SMans Rullgard		  Backlight is flashed briefly on init
510cc5d04d8SMans Rullgard
511cc5d04d8SMans Rullgardendchoice
512cc5d04d8SMans Rullgard
51324c764abSMans Rullgardendif # AUXDISPLAY
51424c764abSMans Rullgard
51524c764abSMans Rullgardconfig PANEL
51624c764abSMans Rullgard	tristate "Parallel port LCD/Keypad Panel support (OLD OPTION)"
51724c764abSMans Rullgard	depends on PARPORT
51824c764abSMans Rullgard	select AUXDISPLAY
51924c764abSMans Rullgard	select PARPORT_PANEL
520