mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
ffdf726db7
When building the hd44780_common driver without a driver that actually uses it like panel or hd44780 you get a build error, because hd44780_common uses charlcd, but did not select it. Its users did select it. This is fixed now. hd4478_common now selects charlcd in Kconfig and panel and hd44780 do not. They only select hd44780_common. Reported-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
513 lines
17 KiB
Plaintext
513 lines
17 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see Documentation/kbuild/kconfig-language.rst.
|
|
#
|
|
# Auxiliary display drivers configuration.
|
|
#
|
|
|
|
menuconfig AUXDISPLAY
|
|
bool "Auxiliary Display support"
|
|
help
|
|
Say Y here to get to see options for auxiliary display drivers.
|
|
This option alone does not add any kernel code.
|
|
|
|
If you say N, all options in this submenu will be skipped and disabled.
|
|
|
|
if AUXDISPLAY
|
|
|
|
config CHARLCD
|
|
tristate "Character LCD core support" if COMPILE_TEST
|
|
help
|
|
This is the base system for character-based LCD displays.
|
|
It makes no sense to have this alone, you select your display driver
|
|
and if it needs the charlcd core, it will select it automatically.
|
|
This is some character LCD core interface that multiple drivers can
|
|
use.
|
|
|
|
config HD44780_COMMON
|
|
tristate "Common functions for HD44780 (and compatibles) LCD displays" if COMPILE_TEST
|
|
select CHARLCD
|
|
help
|
|
This is a module with the common symbols for HD44780 (and compatibles)
|
|
displays. This is the code that multiple other modules use. It is not
|
|
useful alone. If you have some sort of HD44780 compatible display,
|
|
you very likely use this. It is selected automatically by selecting
|
|
your concrete display.
|
|
|
|
config HD44780
|
|
tristate "HD44780 Character LCD support"
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
select HD44780_COMMON
|
|
help
|
|
Enable support for Character LCDs using a HD44780 controller.
|
|
The LCD is accessible through the /dev/lcd char device (10, 156).
|
|
This code can either be compiled as a module, or linked into the
|
|
kernel and started at boot.
|
|
If you don't understand what all this is about, say N.
|
|
|
|
config KS0108
|
|
tristate "KS0108 LCD Controller"
|
|
depends on PARPORT_PC
|
|
default n
|
|
help
|
|
If you have a LCD controlled by one or more KS0108
|
|
controllers, say Y. You will need also another more specific
|
|
driver for your LCD.
|
|
|
|
Depends on Parallel Port support. If you say Y at
|
|
parport, you will be able to compile this as a module (M)
|
|
and built-in as well (Y).
|
|
|
|
To compile this as a module, choose M here:
|
|
the module will be called ks0108.
|
|
|
|
If unsure, say N.
|
|
|
|
config KS0108_PORT
|
|
hex "Parallel port where the LCD is connected"
|
|
depends on KS0108
|
|
default 0x378
|
|
help
|
|
The address of the parallel port where the LCD is connected.
|
|
|
|
The first standard parallel port address is 0x378.
|
|
The second standard parallel port address is 0x278.
|
|
The third standard parallel port address is 0x3BC.
|
|
|
|
You can specify a different address if you need.
|
|
|
|
If you don't know what I'm talking about, load the parport module,
|
|
and execute "dmesg" or "cat /proc/ioports". You can see there how
|
|
many parallel ports are present and which address each one has.
|
|
|
|
Usually you only need to use 0x378.
|
|
|
|
If you compile this as a module, you can still override this
|
|
using the module parameters.
|
|
|
|
config KS0108_DELAY
|
|
int "Delay between each control writing (microseconds)"
|
|
depends on KS0108
|
|
default "2"
|
|
help
|
|
Amount of time the ks0108 should wait between each control write
|
|
to the parallel port.
|
|
|
|
If your LCD seems to miss random writings, increment this.
|
|
|
|
If you don't know what I'm talking about, ignore it.
|
|
|
|
If you compile this as a module, you can still override this
|
|
value using the module parameters.
|
|
|
|
config CFAG12864B
|
|
tristate "CFAG12864B LCD"
|
|
depends on X86
|
|
depends on FB
|
|
depends on KS0108
|
|
select FB_SYS_FILLRECT
|
|
select FB_SYS_COPYAREA
|
|
select FB_SYS_IMAGEBLIT
|
|
select FB_SYS_FOPS
|
|
default n
|
|
help
|
|
If you have a Crystalfontz 128x64 2-color LCD, cfag12864b Series,
|
|
say Y. You also need the ks0108 LCD Controller driver.
|
|
|
|
For help about how to wire your LCD to the parallel port,
|
|
check Documentation/admin-guide/auxdisplay/cfag12864b.rst
|
|
|
|
Depends on the x86 arch and the framebuffer support.
|
|
|
|
The LCD framebuffer driver can be attached to a console.
|
|
It will work fine. However, you can't attach it to the fbdev driver
|
|
of the xorg server.
|
|
|
|
To compile this as a module, choose M here:
|
|
the modules will be called cfag12864b and cfag12864bfb.
|
|
|
|
If unsure, say N.
|
|
|
|
config CFAG12864B_RATE
|
|
int "Refresh rate (hertz)"
|
|
depends on CFAG12864B
|
|
default "20"
|
|
help
|
|
Refresh rate of the LCD.
|
|
|
|
As the LCD is not memory mapped, the driver has to make the work by
|
|
software. This means you should be careful setting this value higher.
|
|
If your CPUs are really slow or you feel the system is slowed down,
|
|
decrease the value.
|
|
|
|
Be careful modifying this value to a very high value:
|
|
You can freeze the computer, or the LCD maybe can't draw as fast as you
|
|
are requesting.
|
|
|
|
If you don't know what I'm talking about, ignore it.
|
|
|
|
If you compile this as a module, you can still override this
|
|
value using the module parameters.
|
|
|
|
config IMG_ASCII_LCD
|
|
tristate "Imagination Technologies ASCII LCD Display"
|
|
depends on HAS_IOMEM
|
|
default y if MIPS_MALTA
|
|
select MFD_SYSCON
|
|
help
|
|
Enable this to support the simple ASCII LCD displays found on
|
|
development boards such as the MIPS Boston, MIPS Malta & MIPS SEAD3
|
|
from Imagination Technologies.
|
|
|
|
config HT16K33
|
|
tristate "Holtek Ht16K33 LED controller with keyscan"
|
|
depends on FB && OF && I2C && INPUT
|
|
select FB_SYS_FOPS
|
|
select FB_SYS_FILLRECT
|
|
select FB_SYS_COPYAREA
|
|
select FB_SYS_IMAGEBLIT
|
|
select INPUT_MATRIXKMAP
|
|
select FB_BACKLIGHT
|
|
help
|
|
Say yes here to add support for Holtek HT16K33, RAM mapping 16*8
|
|
LED controller driver with keyscan.
|
|
|
|
config LCD2S
|
|
tristate "lcd2s 20x4 character display over I2C console"
|
|
depends on I2C
|
|
select CHARLCD
|
|
help
|
|
This is a driver that lets you use the lcd2s 20x4 character display
|
|
from Modtronix engineering as a console output device. The display
|
|
is a simple single color character display. You have to connect it
|
|
to an I2C bus.
|
|
|
|
config ARM_CHARLCD
|
|
bool "ARM Ltd. Character LCD Driver"
|
|
depends on PLAT_VERSATILE
|
|
help
|
|
This is a driver for the character LCD found on the ARM Ltd.
|
|
Versatile and RealView Platform Baseboards. It doesn't do
|
|
very much more than display the text "ARM Linux" on the first
|
|
line and the Linux version on the second line, but that's
|
|
still useful.
|
|
|
|
menuconfig PARPORT_PANEL
|
|
tristate "Parallel port LCD/Keypad Panel support"
|
|
depends on PARPORT
|
|
select HD44780_COMMON
|
|
help
|
|
Say Y here if you have an HD44780 or KS-0074 LCD connected to your
|
|
parallel port. This driver also features 4 and 6-key keypads. The LCD
|
|
is accessible through the /dev/lcd char device (10, 156), and the
|
|
keypad through /dev/keypad (10, 185). This code can either be
|
|
compiled as a module, or linked into the kernel and started at boot.
|
|
If you don't understand what all this is about, say N.
|
|
|
|
if PARPORT_PANEL
|
|
|
|
config PANEL_PARPORT
|
|
int "Default parallel port number (0=LPT1)"
|
|
range 0 255
|
|
default "0"
|
|
help
|
|
This is the index of the parallel port the panel is connected to. One
|
|
driver instance only supports one parallel port, so if your keypad
|
|
and LCD are connected to two separate ports, you have to start two
|
|
modules with different arguments. Numbering starts with '0' for LPT1,
|
|
and so on.
|
|
|
|
config PANEL_PROFILE
|
|
int "Default panel profile (0-5, 0=custom)"
|
|
range 0 5
|
|
default "5"
|
|
help
|
|
To ease configuration, the driver supports different configuration
|
|
profiles for past and recent wirings. These profiles can also be
|
|
used to define an approximative configuration, completed by a few
|
|
other options. Here are the profiles :
|
|
|
|
0 = custom (see further)
|
|
1 = 2x16 parallel LCD, old keypad
|
|
2 = 2x16 serial LCD (KS-0074), new keypad
|
|
3 = 2x16 parallel LCD (Hantronix), no keypad
|
|
4 = 2x16 parallel LCD (Nexcom NSA1045) with Nexcom's keypad
|
|
5 = 2x40 parallel LCD (old one), with old keypad
|
|
|
|
Custom configurations allow you to define how your display is
|
|
wired to the parallel port, and how it works. This is only intended
|
|
for experts.
|
|
|
|
config PANEL_KEYPAD
|
|
depends on PANEL_PROFILE="0"
|
|
int "Keypad type (0=none, 1=old 6 keys, 2=new 6 keys, 3=Nexcom 4 keys)"
|
|
range 0 3
|
|
default 0
|
|
help
|
|
This enables and configures a keypad connected to the parallel port.
|
|
The keys will be read from character device 10,185. Valid values are :
|
|
|
|
0 : do not enable this driver
|
|
1 : old 6 keys keypad
|
|
2 : new 6 keys keypad, as used on the server at www.ant-computing.com
|
|
3 : Nexcom NSA1045's 4 keys keypad
|
|
|
|
New profiles can be described in the driver source. The driver also
|
|
supports simultaneous keys pressed when the keypad supports them.
|
|
|
|
config PANEL_LCD
|
|
depends on PANEL_PROFILE="0"
|
|
int "LCD type (0=none, 1=custom, 2=old //, 3=ks0074, 4=hantronix, 5=Nexcom)"
|
|
range 0 5
|
|
default 0
|
|
help
|
|
This enables and configures an LCD connected to the parallel port.
|
|
The driver includes an interpreter for escape codes starting with
|
|
'\e[L' which are specific to the LCD, and a few ANSI codes. The
|
|
driver will be registered as character device 10,156, usually
|
|
under the name '/dev/lcd'. There are a total of 6 supported types :
|
|
|
|
0 : do not enable the driver
|
|
1 : custom configuration and wiring (see further)
|
|
2 : 2x16 & 2x40 parallel LCD (old wiring)
|
|
3 : 2x16 serial LCD (KS-0074 based)
|
|
4 : 2x16 parallel LCD (Hantronix wiring)
|
|
5 : 2x16 parallel LCD (Nexcom wiring)
|
|
|
|
When type '1' is specified, other options will appear to configure
|
|
more precise aspects (wiring, dimensions, protocol, ...). Please note
|
|
that those values changed from the 2.4 driver for better consistency.
|
|
|
|
config PANEL_LCD_HEIGHT
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1"
|
|
int "Number of lines on the LCD (1-2)"
|
|
range 1 2
|
|
default 2
|
|
help
|
|
This is the number of visible character lines on the LCD in custom profile.
|
|
It can either be 1 or 2.
|
|
|
|
config PANEL_LCD_WIDTH
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1"
|
|
int "Number of characters per line on the LCD (1-40)"
|
|
range 1 40
|
|
default 40
|
|
help
|
|
This is the number of characters per line on the LCD in custom profile.
|
|
Common values are 16,20,24,40.
|
|
|
|
config PANEL_LCD_BWIDTH
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1"
|
|
int "Internal LCD line width (1-40, 40 by default)"
|
|
range 1 40
|
|
default 40
|
|
help
|
|
Most LCDs use a standard controller which supports hardware lines of 40
|
|
characters, although sometimes only 16, 20 or 24 of them are really wired
|
|
to the terminal. This results in some non-visible but addressable characters,
|
|
and is the case for most parallel LCDs. Other LCDs, and some serial ones,
|
|
however, use the same line width internally as what is visible. The KS0074
|
|
for example, uses 16 characters per line for 16 visible characters per line.
|
|
|
|
This option lets you configure the value used by your LCD in 'custom' profile.
|
|
If you don't know, put '40' here.
|
|
|
|
config PANEL_LCD_HWIDTH
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1"
|
|
int "Hardware LCD line width (1-64, 64 by default)"
|
|
range 1 64
|
|
default 64
|
|
help
|
|
Most LCDs use a single address bit to differentiate line 0 and line 1. Since
|
|
some of them need to be able to address 40 chars with the lower bits, they
|
|
often use the immediately superior power of 2, which is 64, to address the
|
|
next line.
|
|
|
|
If you don't know what your LCD uses, in doubt let 16 here for a 2x16, and
|
|
64 here for a 2x40.
|
|
|
|
config PANEL_LCD_CHARSET
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1"
|
|
int "LCD character set (0=normal, 1=KS0074)"
|
|
range 0 1
|
|
default 0
|
|
help
|
|
Some controllers such as the KS0074 use a somewhat strange character set
|
|
where many symbols are at unusual places. The driver knows how to map
|
|
'standard' ASCII characters to the character sets used by these controllers.
|
|
Valid values are :
|
|
|
|
0 : normal (untranslated) character set
|
|
1 : KS0074 character set
|
|
|
|
If you don't know, use the normal one (0).
|
|
|
|
config PANEL_LCD_PROTO
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1"
|
|
int "LCD communication mode (0=parallel 8 bits, 1=serial)"
|
|
range 0 1
|
|
default 0
|
|
help
|
|
This driver now supports any serial or parallel LCD wired to a parallel
|
|
port. But before assigning signals, the driver needs to know if it will
|
|
be driving a serial LCD or a parallel one. Serial LCDs only use 2 wires
|
|
(SDA/SCL), while parallel ones use 2 or 3 wires for the control signals
|
|
(E, RS, sometimes RW), and 4 or 8 for the data. Use 0 here for a 8 bits
|
|
parallel LCD, and 1 for a serial LCD.
|
|
|
|
config PANEL_LCD_PIN_E
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
|
|
int "Parallel port pin number & polarity connected to the LCD E signal (-17...17) "
|
|
range -17 17
|
|
default 14
|
|
help
|
|
This describes the number of the parallel port pin to which the LCD 'E'
|
|
signal has been connected. It can be :
|
|
|
|
0 : no connection (eg: connected to ground)
|
|
1..17 : directly connected to any of these pins on the DB25 plug
|
|
-1..-17 : connected to the same pin through an inverter (eg: transistor).
|
|
|
|
Default for the 'E' pin in custom profile is '14' (AUTOFEED).
|
|
|
|
config PANEL_LCD_PIN_RS
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
|
|
int "Parallel port pin number & polarity connected to the LCD RS signal (-17...17) "
|
|
range -17 17
|
|
default 17
|
|
help
|
|
This describes the number of the parallel port pin to which the LCD 'RS'
|
|
signal has been connected. It can be :
|
|
|
|
0 : no connection (eg: connected to ground)
|
|
1..17 : directly connected to any of these pins on the DB25 plug
|
|
-1..-17 : connected to the same pin through an inverter (eg: transistor).
|
|
|
|
Default for the 'RS' pin in custom profile is '17' (SELECT IN).
|
|
|
|
config PANEL_LCD_PIN_RW
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0"
|
|
int "Parallel port pin number & polarity connected to the LCD RW signal (-17...17) "
|
|
range -17 17
|
|
default 16
|
|
help
|
|
This describes the number of the parallel port pin to which the LCD 'RW'
|
|
signal has been connected. It can be :
|
|
|
|
0 : no connection (eg: connected to ground)
|
|
1..17 : directly connected to any of these pins on the DB25 plug
|
|
-1..-17 : connected to the same pin through an inverter (eg: transistor).
|
|
|
|
Default for the 'RW' pin in custom profile is '16' (INIT).
|
|
|
|
config PANEL_LCD_PIN_SCL
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0"
|
|
int "Parallel port pin number & polarity connected to the LCD SCL signal (-17...17) "
|
|
range -17 17
|
|
default 1
|
|
help
|
|
This describes the number of the parallel port pin to which the serial
|
|
LCD 'SCL' signal has been connected. It can be :
|
|
|
|
0 : no connection (eg: connected to ground)
|
|
1..17 : directly connected to any of these pins on the DB25 plug
|
|
-1..-17 : connected to the same pin through an inverter (eg: transistor).
|
|
|
|
Default for the 'SCL' pin in custom profile is '1' (STROBE).
|
|
|
|
config PANEL_LCD_PIN_SDA
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0"
|
|
int "Parallel port pin number & polarity connected to the LCD SDA signal (-17...17) "
|
|
range -17 17
|
|
default 2
|
|
help
|
|
This describes the number of the parallel port pin to which the serial
|
|
LCD 'SDA' signal has been connected. It can be :
|
|
|
|
0 : no connection (eg: connected to ground)
|
|
1..17 : directly connected to any of these pins on the DB25 plug
|
|
-1..-17 : connected to the same pin through an inverter (eg: transistor).
|
|
|
|
Default for the 'SDA' pin in custom profile is '2' (D0).
|
|
|
|
config PANEL_LCD_PIN_BL
|
|
depends on PANEL_PROFILE="0" && PANEL_LCD="1"
|
|
int "Parallel port pin number & polarity connected to the LCD backlight signal (-17...17) "
|
|
range -17 17
|
|
default 0
|
|
help
|
|
This describes the number of the parallel port pin to which the LCD 'BL' signal
|
|
has been connected. It can be :
|
|
|
|
0 : no connection (eg: connected to ground)
|
|
1..17 : directly connected to any of these pins on the DB25 plug
|
|
-1..-17 : connected to the same pin through an inverter (eg: transistor).
|
|
|
|
Default for the 'BL' pin in custom profile is '0' (uncontrolled).
|
|
|
|
endif # PARPORT_PANEL
|
|
|
|
config PANEL_CHANGE_MESSAGE
|
|
bool "Change LCD initialization message ?"
|
|
depends on CHARLCD
|
|
default "n"
|
|
help
|
|
This allows you to replace the boot message indicating the kernel version
|
|
and the driver version with a custom message. This is useful on appliances
|
|
where a simple 'Starting system' message can be enough to stop a customer
|
|
from worrying.
|
|
|
|
If you say 'Y' here, you'll be able to choose a message yourself. Otherwise,
|
|
say 'N' and keep the default message with the version.
|
|
|
|
config PANEL_BOOT_MESSAGE
|
|
depends on PANEL_CHANGE_MESSAGE="y"
|
|
string "New initialization message"
|
|
default ""
|
|
help
|
|
This allows you to replace the boot message indicating the kernel version
|
|
and the driver version with a custom message. This is useful on appliances
|
|
where a simple 'Starting system' message can be enough to stop a customer
|
|
from worrying.
|
|
|
|
An empty message will only clear the display at driver init time. Any other
|
|
printf()-formatted message is valid with newline and escape codes.
|
|
|
|
choice
|
|
prompt "Backlight initial state"
|
|
default CHARLCD_BL_FLASH
|
|
help
|
|
Select the initial backlight state on boot or module load.
|
|
|
|
Previously, there was no option for this: the backlight flashed
|
|
briefly on init. Now you can also turn it off/on.
|
|
|
|
config CHARLCD_BL_OFF
|
|
bool "Off"
|
|
help
|
|
Backlight is initially turned off
|
|
|
|
config CHARLCD_BL_ON
|
|
bool "On"
|
|
help
|
|
Backlight is initially turned on
|
|
|
|
config CHARLCD_BL_FLASH
|
|
bool "Flash"
|
|
help
|
|
Backlight is flashed briefly on init
|
|
|
|
endchoice
|
|
|
|
endif # AUXDISPLAY
|
|
|
|
config PANEL
|
|
tristate "Parallel port LCD/Keypad Panel support (OLD OPTION)"
|
|
depends on PARPORT
|
|
select AUXDISPLAY
|
|
select PARPORT_PANEL
|
|
|
|
config CHARLCD
|
|
tristate "Character LCD core support" if COMPILE_TEST
|