linux/drivers/video/backlight/Kconfig
Hans de Goede 3608a2cd81 backlight: apple_bl: Use acpi_video_get_backlight_type()
On some MacBooks both the apple_bl and the apple-gmux backlight drivers
may be able to export a /sys/class/backlight device.

To avoid having 2 backlight devices for one LCD panel until now
the apple-gmux driver has been calling apple_bl_unregister() to move
the apple_bl backlight device out of the way when it loads.

Similar problems exist on other x86 laptops and all backlight drivers
which may be used on x86 laptops have moved to using
acpi_video_get_backlight_type() to determine whether they should load
or not.

Switch apple_bl to this model too, so that it is consistent with all
the other x86 backlight drivers.

Besides code-simplification and consistency this has 2 other benefits:

1) It removes a race during boot where userspace will briefly see
   an apple_bl backlight and then have it disappear again, leading to e.g.:
   https://bbs.archlinux.org/viewtopic.php?id=269920

2) This allows user to switch between the drivers by passing
   acpi_backlight=apple_gmux or acpi_backlight=vendor on the kernel
   commandline.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20230307120540.389920-1-hdegoede@redhat.com
2023-03-16 13:33:11 +01:00

478 lines
13 KiB
Plaintext

# SPDX-License-Identifier: GPL-2.0-only
#
# Backlight & LCD drivers configuration
#
menu "Backlight & LCD device support"
#
# LCD
#
config LCD_CLASS_DEVICE
tristate "Lowlevel LCD controls"
help
This framework adds support for low-level control of LCD.
Some framebuffer devices connect to platform-specific LCD modules
in order to have a platform-specific way to control the flat panel
(contrast and applying power to the LCD (not to the backlight!)).
To have support for your specific LCD panel you will have to
select the proper drivers which depend on this option.
if LCD_CLASS_DEVICE
config LCD_CORGI
tristate "LCD Panel support for SHARP corgi/spitz model"
depends on SPI_MASTER && PXA_SHARPSL && BACKLIGHT_CLASS_DEVICE
help
Say y here to support the LCD panels usually found on SHARP
corgi (C7x0) and spitz (Cxx00) models.
config LCD_L4F00242T03
tristate "Epson L4F00242T03 LCD"
depends on SPI_MASTER
depends on GPIOLIB || COMPILE_TEST
help
SPI driver for Epson L4F00242T03. This provides basic support
for init and powering the LCD up/down through a sysfs interface.
config LCD_LMS283GF05
tristate "Samsung LMS283GF05 LCD"
depends on SPI_MASTER
depends on GPIOLIB || COMPILE_TEST
help
SPI driver for Samsung LMS283GF05. This provides basic support
for powering the LCD up/down through a sysfs interface.
config LCD_LTV350QV
tristate "Samsung LTV350QV LCD Panel"
depends on SPI_MASTER
help
If you have a Samsung LTV350QV LCD panel, say y to include a
power control driver for it. The panel starts up in power
off state, so you need this driver in order to see any
output.
The LTV350QV panel is present on all ATSTK1000 boards.
config LCD_ILI922X
tristate "ILI Technology ILI9221/ILI9222 support"
depends on SPI
help
If you have a panel based on the ILI9221/9222 controller
chip then say y to include a driver for it.
config LCD_ILI9320
tristate "ILI Technology ILI9320 controller support"
depends on SPI
help
If you have a panel based on the ILI9320 controller chip
then say y to include a power driver for it.
config LCD_TDO24M
tristate "Toppoly TDO24M and TDO35S LCD Panels support"
depends on SPI_MASTER
help
If you have a Toppoly TDO24M/TDO35S series LCD panel, say y here to
include the support for it.
config LCD_VGG2432A4
tristate "VGG2432A4 LCM device support"
depends on SPI_MASTER
select LCD_ILI9320
help
If you have a VGG2432A4 panel based on the ILI9320 controller chip
then say y to include a power driver for it.
config LCD_PLATFORM
tristate "Platform LCD controls"
help
This driver provides a platform-device registered LCD power
control interface.
config LCD_HP700
tristate "HP Jornada 700 series LCD Driver"
depends on SA1100_JORNADA720_SSP && !PREEMPTION
default y
help
If you have an HP Jornada 700 series handheld (710/720/728)
say Y to enable LCD control driver.
config LCD_AMS369FG06
tristate "AMS369FG06 AMOLED LCD Driver"
depends on SPI && BACKLIGHT_CLASS_DEVICE
default n
help
If you have an AMS369FG06 AMOLED Panel, say Y to enable its
LCD control driver.
config LCD_LMS501KF03
tristate "LMS501KF03 LCD Driver"
depends on SPI
default n
help
If you have an LMS501KF03 LCD Panel, say Y to enable its
LCD control driver.
config LCD_HX8357
tristate "Himax HX-8357 LCD Driver"
depends on SPI
help
If you have a HX-8357 LCD panel, say Y to enable its LCD control
driver.
config LCD_OTM3225A
tristate "ORISE Technology OTM3225A support"
depends on SPI
help
If you have a panel based on the OTM3225A controller
chip then say y to include a driver for it.
endif # LCD_CLASS_DEVICE
#
# Backlight
#
config BACKLIGHT_CLASS_DEVICE
tristate "Lowlevel Backlight controls"
help
This framework adds support for low-level control of the LCD
backlight. This includes support for brightness and power.
To have support for your specific LCD panel you will have to
select the proper drivers which depend on this option.
if BACKLIGHT_CLASS_DEVICE
config BACKLIGHT_ATMEL_LCDC
bool "Atmel LCDC Contrast-as-Backlight control"
depends on FB_ATMEL
help
This provides a backlight control internal to the Atmel LCDC
driver. If the LCD "contrast control" on your board is wired
so it controls the backlight brightness, select this option to
export this as a PWM-based backlight control.
If in doubt, it's safe to enable this option; it doesn't kick
in unless the board's description says it's wired that way.
config BACKLIGHT_EP93XX
tristate "Cirrus EP93xx Backlight Driver"
depends on FB_EP93XX
help
If you have a LCD backlight connected to the BRIGHT output of
the EP93xx, say Y here to enable this driver.
To compile this driver as a module, choose M here: the module will
be called ep93xx_bl.
config BACKLIGHT_IPAQ_MICRO
tristate "iPAQ microcontroller backlight driver"
depends on MFD_IPAQ_MICRO
default y
help
Say y to enable the backlight driver for Compaq iPAQ handheld
computers. Say yes if you have one of the h3100/h3600/h3700
machines.
config BACKLIGHT_KTD253
tristate "Backlight Driver for Kinetic KTD253"
depends on GPIOLIB || COMPILE_TEST
help
Say y to enabled the backlight driver for the Kinetic KTD253
which is a 1-wire GPIO-controlled backlight found in some mobile
phones.
config BACKLIGHT_KTZ8866
tristate "Backlight Driver for Kinetic KTZ8866"
depends on I2C
select REGMAP_I2C
help
Say Y to enable the backlight driver for the Kinetic KTZ8866
found in Xiaomi Mi Pad 5 series.
config BACKLIGHT_LM3533
tristate "Backlight Driver for LM3533"
depends on MFD_LM3533
help
Say Y to enable the backlight driver for National Semiconductor / TI
LM3533 Lighting Power chips.
The backlights can be controlled directly, through PWM input, or by
the ambient-light-sensor interface. The chip supports 256 brightness
levels.
config BACKLIGHT_LOCOMO
tristate "Sharp LOCOMO LCD/Backlight Driver"
depends on SHARP_LOCOMO
default y
help
If you have a Sharp Zaurus SL-5500 (Collie) or SL-5600 (Poodle) say y to
enable the LCD/backlight driver.
config BACKLIGHT_OMAP1
tristate "OMAP1 PWL-based LCD Backlight"
depends on ARCH_OMAP1 || COMPILE_TEST
default ARCH_OMAP1
help
This driver controls the LCD backlight level and power for
the PWL module of OMAP1 processors. Say Y if your board
uses this hardware.
config BACKLIGHT_HP680
tristate "HP Jornada 680 Backlight Driver"
depends on SH_HP6XX
default y
help
If you have a HP Jornada 680, say y to enable the
backlight driver.
config BACKLIGHT_HP700
tristate "HP Jornada 700 series Backlight Driver"
depends on SA1100_JORNADA720_SSP && !PREEMPTION
default y
help
If you have an HP Jornada 700 series,
say Y to include backlight control driver.
config BACKLIGHT_CARILLO_RANCH
tristate "Intel Carillo Ranch Backlight Driver"
depends on LCD_CLASS_DEVICE && PCI && X86 && FB_LE80578
help
If you have a Intel LE80578 (Carillo Ranch) say Y to enable the
backlight driver.
config BACKLIGHT_PWM
tristate "Generic PWM based Backlight Driver"
depends on PWM
help
If you have a LCD backlight adjustable by PWM, say Y to enable
this driver.
config BACKLIGHT_DA903X
tristate "Backlight Driver for DA9030/DA9034 using WLED"
depends on PMIC_DA903X
help
If you have a LCD backlight connected to the WLED output of DA9030
or DA9034 WLED output, say Y here to enable this driver.
config BACKLIGHT_DA9052
tristate "Dialog DA9052/DA9053 WLED"
depends on PMIC_DA9052
help
Enable the Backlight Driver for DA9052-BC and DA9053-AA/Bx PMICs.
config BACKLIGHT_MAX8925
tristate "Backlight driver for MAX8925"
depends on MFD_MAX8925
help
If you have a LCD backlight connected to the WLED output of MAX8925
WLED output, say Y here to enable this driver.
config BACKLIGHT_MT6370
tristate "MediaTek MT6370 Backlight Driver"
depends on MFD_MT6370
help
This enables support for Mediatek MT6370 Backlight driver.
It's commonly used to drive the display WLED. There are 4 channels
inside, and each channel supports up to 30mA of current capability
with 2048 current steps (only for MT6370/MT6371) or 16384 current
steps (only for MT6372) in exponential or linear mapping curves.
This driver can also be built as a module. If so, the module
will be called "mt6370-backlight".
config BACKLIGHT_APPLE
tristate "Apple Backlight Driver"
depends on X86 && ACPI
depends on ACPI_VIDEO=n || ACPI_VIDEO
help
If you have an Intel-based Apple say Y to enable a driver for its
backlight.
config BACKLIGHT_QCOM_WLED
tristate "Qualcomm PMIC WLED Driver"
select REGMAP
help
If you have the Qualcomm PMIC, say Y to enable a driver for the
WLED block. Currently it supports PM8941 and PMI8998.
config BACKLIGHT_RT4831
tristate "Richtek RT4831 Backlight Driver"
depends on MFD_RT4831
help
This enables support for Richtek RT4831 Backlight driver.
It's commonly used to drive the display WLED. There're four channels
inisde, and each channel can provide up to 30mA current.
config BACKLIGHT_SAHARA
tristate "Tabletkiosk Sahara Touch-iT Backlight Driver"
depends on X86
help
If you have a Tabletkiosk Sahara Touch-iT, say y to enable the
backlight driver.
config BACKLIGHT_WM831X
tristate "WM831x PMIC Backlight Driver"
depends on MFD_WM831X
help
If you have a backlight driven by the ISINK and DCDC of a
WM831x PMIC say y to enable the backlight driver for it.
config BACKLIGHT_ADP5520
tristate "Backlight Driver for ADP5520/ADP5501 using WLED"
depends on PMIC_ADP5520
help
If you have a LCD backlight connected to the BST/BL_SNK output of
ADP5520 or ADP5501, say Y here to enable this driver.
To compile this driver as a module, choose M here: the module will
be called adp5520_bl.
config BACKLIGHT_ADP8860
tristate "Backlight Driver for ADP8860/ADP8861/ADP8863 using WLED"
depends on I2C
select NEW_LEDS
select LEDS_CLASS
help
If you have a LCD backlight connected to the ADP8860, ADP8861 or
ADP8863 say Y here to enable this driver.
To compile this driver as a module, choose M here: the module will
be called adp8860_bl.
config BACKLIGHT_ADP8870
tristate "Backlight Driver for ADP8870 using WLED"
depends on I2C
select NEW_LEDS
select LEDS_CLASS
help
If you have a LCD backlight connected to the ADP8870,
say Y here to enable this driver.
To compile this driver as a module, choose M here: the module will
be called adp8870_bl.
config BACKLIGHT_88PM860X
tristate "Backlight Driver for 88PM8606 using WLED"
depends on MFD_88PM860X
help
Say Y to enable the backlight driver for Marvell 88PM8606.
config BACKLIGHT_PCF50633
tristate "Backlight driver for NXP PCF50633 MFD"
depends on MFD_PCF50633
help
If you have a backlight driven by a NXP PCF50633 MFD, say Y here to
enable its driver.
config BACKLIGHT_AAT2870
tristate "AnalogicTech AAT2870 Backlight"
depends on MFD_AAT2870_CORE
help
If you have a AnalogicTech AAT2870 say Y to enable the
backlight driver.
config BACKLIGHT_LM3630A
tristate "Backlight Driver for LM3630A"
depends on I2C && PWM
select REGMAP_I2C
help
This supports TI LM3630A Backlight Driver
config BACKLIGHT_LM3639
tristate "Backlight Driver for LM3639"
depends on I2C
select REGMAP_I2C
select NEW_LEDS
select LEDS_CLASS
help
This supports TI LM3639 Backlight + 1.5A Flash LED Driver
config BACKLIGHT_LP855X
tristate "Backlight driver for TI LP855X"
depends on I2C && PWM
help
This supports TI LP8550, LP8551, LP8552, LP8553, LP8555, LP8556 and
LP8557 backlight driver.
config BACKLIGHT_LP8788
tristate "Backlight driver for TI LP8788 MFD"
depends on MFD_LP8788 && PWM
help
This supports TI LP8788 backlight driver.
config BACKLIGHT_PANDORA
tristate "Backlight driver for Pandora console"
depends on TWL4030_CORE
help
If you have a Pandora console, say Y to enable the
backlight driver.
config BACKLIGHT_SKY81452
tristate "Backlight driver for SKY81452"
depends on MFD_SKY81452
help
If you have a Skyworks SKY81452, say Y to enable the
backlight driver.
To compile this driver as a module, choose M here: the module will
be called sky81452-backlight
config BACKLIGHT_TPS65217
tristate "TPS65217 Backlight"
depends on MFD_TPS65217
help
If you have a Texas Instruments TPS65217 say Y to enable the
backlight driver.
config BACKLIGHT_AS3711
tristate "AS3711 Backlight"
depends on MFD_AS3711
help
If you have an Austrian Microsystems AS3711 say Y to enable the
backlight driver.
config BACKLIGHT_GPIO
tristate "Generic GPIO based Backlight Driver"
depends on GPIOLIB || COMPILE_TEST
help
If you have a LCD backlight adjustable by GPIO, say Y to enable
this driver.
config BACKLIGHT_LV5207LP
tristate "Sanyo LV5207LP Backlight"
depends on I2C
help
If you have a Sanyo LV5207LP say Y to enable the backlight driver.
config BACKLIGHT_BD6107
tristate "Rohm BD6107 Backlight"
depends on I2C
help
If you have a Rohm BD6107 say Y to enable the backlight driver.
config BACKLIGHT_ARCXCNN
tristate "Backlight driver for the Arctic Sands ARCxCnnnn family"
depends on I2C
help
If you have an ARCxCnnnn family backlight say Y to enable
the backlight driver.
config BACKLIGHT_RAVE_SP
tristate "RAVE SP Backlight driver"
depends on RAVE_SP_CORE
help
Support for backlight control on RAVE SP device.
config BACKLIGHT_LED
tristate "Generic LED based Backlight Driver"
depends on LEDS_CLASS && OF
help
If you have a LCD backlight adjustable by LED class driver, say Y
to enable this driver.
endif # BACKLIGHT_CLASS_DEVICE
endmenu