# SPDX-License-Identifier: GPL-2.0-only
config DRM_PANEL
	bool
	depends on DRM
	help
	  Panel registration and lookup framework.

menu "Display Panels"
	depends on DRM && DRM_PANEL

config DRM_PANEL_ARM_VERSATILE
	tristate "ARM Versatile panel driver"
	depends on OF
	depends on MFD_SYSCON
	select VIDEOMODE_HELPERS
	help
	  This driver supports the ARM Versatile panels connected to ARM
	  reference designs. The panel is detected using special registers
	  in the Versatile family syscon registers.

config DRM_PANEL_LVDS
	tristate "Generic LVDS panel driver"
	depends on OF
	depends on BACKLIGHT_CLASS_DEVICE
	select VIDEOMODE_HELPERS
	help
	  This driver supports LVDS panels that don't require device-specific
	  handling of power supplies or control signals. It implements automatic
	  backlight handling if the panel is attached to a backlight controller.

config DRM_PANEL_SIMPLE
	tristate "support for simple panels"
	depends on OF
	depends on BACKLIGHT_CLASS_DEVICE
	select VIDEOMODE_HELPERS
	help
	  DRM panel driver for dumb panels that need at most a regulator and
	  a GPIO to be powered up. Optionally a backlight can be attached so
	  that it can be automatically turned off when the panel goes into a
	  low power state.

config DRM_PANEL_FEIYANG_FY07024DI26A30D
	tristate "Feiyang FY07024DI26A30-D MIPI-DSI LCD panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y if you want to enable support for panels based on the
	  Feiyang FY07024DI26A30-D MIPI-DSI interface.

config DRM_PANEL_ILITEK_IL9322
	tristate "Ilitek ILI9322 320x240 QVGA panels"
	depends on OF && SPI
	select REGMAP
	help
	  Say Y here if you want to enable support for Ilitek IL9322
	  QVGA (320x240) RGB, YUV and ITU-T BT.656 panels.

config DRM_PANEL_ILITEK_ILI9881C
	tristate "Ilitek ILI9881C-based panels"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y if you want to enable support for panels based on the
	  Ilitek ILI9881c controller.

config DRM_PANEL_INNOLUX_P079ZCA
	tristate "Innolux P079ZCA panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Innolux P079ZCA
	  TFT-LCD modules. The panel has a 1024x768 resolution and uses
	  24 bit RGB per pixel. It provides a MIPI DSI interface to
	  the host and has a built-in LED backlight.

config DRM_PANEL_JDI_LT070ME05000
	tristate "JDI LT070ME05000 WUXGA DSI panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for JDI DSI video mode
	  panel as found in Google Nexus 7 (2013) devices.
	  The panel has a 1200(RGB)×1920 (WUXGA) resolution and uses
	  24 bit per pixel.

config DRM_PANEL_KINGDISPLAY_KD097D04
	tristate "Kingdisplay kd097d04 panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Kingdisplay kd097d04
	  TFT-LCD modules. The panel has a 1536x2048 resolution and uses
	  24 bit RGB per pixel. It provides a MIPI DSI interface to
	  the host and has a built-in LED backlight.

config DRM_PANEL_SAMSUNG_LD9040
	tristate "Samsung LD9040 RGB/SPI panel"
	depends on OF && SPI
	select VIDEOMODE_HELPERS

config DRM_PANEL_LG_LB035Q02
	tristate "LG LB035Q024573 RGB panel"
	depends on GPIOLIB && OF && SPI
	help
	  Say Y here if you want to enable support for the LB035Q02 RGB panel
	  (found on the Gumstix Overo Palo35 board). To compile this driver as
	  a module, choose M here.

config DRM_PANEL_LG_LG4573
	tristate "LG4573 RGB/SPI panel"
	depends on OF && SPI
	select VIDEOMODE_HELPERS
	help
	  Say Y here if you want to enable support for LG4573 RGB panel.
	  To compile this driver as a module, choose M here.

config DRM_PANEL_NEC_NL8048HL11
	tristate "NEC NL8048HL11 RGB panel"
	depends on GPIOLIB && OF && SPI
	help
	  Say Y here if you want to enable support for the NEC NL8048HL11 RGB
	  panel (found on the Zoom2/3/3630 SDP boards). To compile this driver
	  as a module, choose M here.

config DRM_PANEL_NOVATEK_NT39016
	tristate "Novatek NT39016 RGB/SPI panel"
	depends on OF && SPI
	depends on BACKLIGHT_CLASS_DEVICE
	select REGMAP_SPI
	help
	  Say Y here if you want to enable support for the panels built
	  around the Novatek NT39016 display controller.

config DRM_PANEL_OLIMEX_LCD_OLINUXINO
	tristate "Olimex LCD-OLinuXino panel"
	depends on OF
	depends on I2C
	depends on BACKLIGHT_CLASS_DEVICE
	select CRC32
	help
	  The panel is used with different sizes LCDs, from 480x272 to
	  1280x800, and 24 bit per pixel.

	  Say Y here if you want to enable support for Olimex Ltd.
	  LCD-OLinuXino panel.

config DRM_PANEL_ORISETECH_OTM8009A
	tristate "Orise Technology otm8009a 480x800 dsi 2dl panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Orise Technology
	  otm8009a 480x800 dsi 2dl panel.

config DRM_PANEL_OSD_OSD101T2587_53TS
	tristate "OSD OSD101T2587-53TS DSI 1920x1200 video mode panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for One Stop Displays
	  OSD101T2587-53TS 10.1" 1920x1200 dsi panel.

config DRM_PANEL_PANASONIC_VVX10F034N00
	tristate "Panasonic VVX10F034N00 1920x1200 video mode panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Panasonic VVX10F034N00
	  WUXGA (1920x1200) Novatek NT1397-based DSI panel as found in some
	  Xperia Z2 tablets

config DRM_PANEL_RASPBERRYPI_TOUCHSCREEN
	tristate "Raspberry Pi 7-inch touchscreen panel"
	depends on DRM_MIPI_DSI
	help
	  Say Y here if you want to enable support for the Raspberry
	  Pi 7" Touchscreen.  To compile this driver as a module,
	  choose M here.

config DRM_PANEL_RAYDIUM_RM67191
	tristate "Raydium RM67191 FHD 1080x1920 DSI video mode panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Raydium RM67191 FHD
	  (1080x1920) DSI panel.

config DRM_PANEL_RAYDIUM_RM68200
	tristate "Raydium RM68200 720x1280 DSI video mode panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Raydium RM68200
	  720x1280 DSI video mode panel.

config DRM_PANEL_ROCKTECH_JH057N00900
	tristate "Rocktech JH057N00900 MIPI touchscreen panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Rocktech JH057N00900
	  MIPI DSI panel as e.g. used in the Librem 5 devkit. It has a
	  resolution of 720x1440 pixels, a built in backlight and touch
	  controller.
	  Touch input support is provided by the goodix driver and needs to be
	  selected separately.

config DRM_PANEL_RONBO_RB070D30
	tristate "Ronbo Electronics RB070D30 panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Ronbo Electronics
	  RB070D30 1024x600 DSI panel.

config DRM_PANEL_SAMSUNG_S6D16D0
	tristate "Samsung S6D16D0 DSI video mode panel"
	depends on OF
	depends on DRM_MIPI_DSI
	select VIDEOMODE_HELPERS

config DRM_PANEL_SAMSUNG_S6E3HA2
	tristate "Samsung S6E3HA2 DSI video mode panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select VIDEOMODE_HELPERS

config DRM_PANEL_SAMSUNG_S6E63J0X03
	tristate "Samsung S6E63J0X03 DSI command mode panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select VIDEOMODE_HELPERS

config DRM_PANEL_SAMSUNG_S6E63M0
	tristate "Samsung S6E63M0 RGB/SPI panel"
	depends on OF
	depends on SPI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Samsung S6E63M0
	  AMOLED LCD panel.

config DRM_PANEL_SAMSUNG_S6E8AA0
	tristate "Samsung S6E8AA0 DSI video mode panel"
	depends on OF
	select DRM_MIPI_DSI
	select VIDEOMODE_HELPERS

config DRM_PANEL_SEIKO_43WVF1G
	tristate "Seiko 43WVF1G panel"
	depends on OF
	depends on BACKLIGHT_CLASS_DEVICE
	select VIDEOMODE_HELPERS
	help
	  Say Y here if you want to enable support for the Seiko
	  43WVF1G controller for 800x480 LCD panels

config DRM_PANEL_SHARP_LQ101R1SX01
	tristate "Sharp LQ101R1SX01 panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Sharp LQ101R1SX01
	  TFT-LCD modules. The panel has a 2560x1600 resolution and uses
	  24 bit RGB per pixel. It provides a dual MIPI DSI interface to
	  the host and has a built-in LED backlight.

	  To compile this driver as a module, choose M here: the module
	  will be called panel-sharp-lq101r1sx01.

config DRM_PANEL_SHARP_LS037V7DW01
	tristate "Sharp LS037V7DW01 VGA LCD panel"
	depends on GPIOLIB && OF && REGULATOR
	help
	  Say Y here if you want to enable support for Sharp LS037V7DW01 VGA
	  (480x640) LCD panel (found on the TI SDP3430 board).

config DRM_PANEL_SHARP_LS043T1LE01
	tristate "Sharp LS043T1LE01 qHD video mode panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Sharp LS043T1LE01 qHD
	  (540x960) DSI panel as found on the Qualcomm APQ8074 Dragonboard

config DRM_PANEL_SITRONIX_ST7701
	tristate "Sitronix ST7701 panel driver"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for the Sitronix
	  ST7701 controller for 480X864 LCD panels with MIPI/RGB/SPI
	  system interfaces.

config DRM_PANEL_SITRONIX_ST7789V
	tristate "Sitronix ST7789V panel"
	depends on OF && SPI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for the Sitronix
	  ST7789V controller for 240x320 LCD panels

config DRM_PANEL_SONY_ACX565AKM
	tristate "Sony ACX565AKM panel"
	depends on GPIOLIB && OF && SPI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for the Sony ACX565AKM
	  800x600 3.5" panel (found on the Nokia N900).

config DRM_PANEL_TPO_TD028TTEC1
	tristate "Toppoly (TPO) TD028TTEC1 panel driver"
	depends on OF && SPI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for TPO TD028TTEC1 480x640
	  2.8" panel (found on the OpenMoko Neo FreeRunner and Neo 1973).

config DRM_PANEL_TPO_TD043MTEA1
	tristate "Toppoly (TPO) TD043MTEA1 panel driver"
	depends on GPIOLIB && OF && REGULATOR && SPI
	help
	  Say Y here if you want to enable support for TPO TD043MTEA1 800x480
	  4.3" panel (found on the OMAP3 Pandora board).

config DRM_PANEL_TPO_TPG110
	tristate "TPO TPG 800x400 panel"
	depends on OF && SPI && GPIOLIB
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for TPO TPG110
	  400CH LTPS TFT LCD Single Chip Digital Driver for up to
	  800x400 LCD panels.

config DRM_PANEL_TRULY_NT35597_WQXGA
	tristate "Truly WQXGA"
	depends on OF
	depends on DRM_MIPI_DSI
	help
	  Say Y here if you want to enable support for Truly NT35597 WQXGA Dual DSI
	  Video Mode panel
endmenu
