# 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_ABT_Y030XX067A
	tristate "ABT Y030XX067A 320x480 LCD panel"
	depends on OF && SPI
	select REGMAP_SPI
	help
	  Say Y here to enable support for the Asia Better Technology Ltd.
	  Y030XX067A 320x480 3.0" panel as found in the YLM RG-280M, RG-300
	  and RG-99 handheld gaming consoles.

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_ASUS_Z00T_TM5P5_NT35596
	tristate "ASUS Z00T TM5P5 NT35596 panel"
	depends on GPIOLIB && OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for the ASUS TMP5P5
	  NT35596 1080x1920 video mode panel as found in some Asus
	  Zenfone 2 Laser Z00T devices.

config DRM_PANEL_AUO_A030JTN01
	tristate "AUO A030JTN01"
	depends on SPI
	select REGMAP_SPI
	help
	  Say Y here to enable support for the AUO A030JTN01 320x480 3.0" panel
	  as found in the YLM RS-97 handheld gaming console.

config DRM_PANEL_BOE_BF060Y8M_AJ0
	tristate "Boe BF060Y8M-AJ0 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 Boe BF060Y8M-AJ0
	  5.99" AMOLED modules. The panel has a 1080x2160 resolution and
	  uses 24 bit RGB per pixel. It provides a MIPI DSI interface to
	  the host and backlight is controlled through DSI commands.

config DRM_PANEL_BOE_HIMAX8279D
	tristate "Boe Himax8279d 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 Boe Himax8279d
	  TFT-LCD modules. The panel has a 1200x1920 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_BOE_TH101MB31UIG002_28A
	tristate "Boe TH101MB31UIG002-28A 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 Boe
	  TH101MB31UIG002-28A TFT-LCD modules. The panel has a 800x1280
	  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_BOE_TV101WUM_NL6
	tristate "BOE TV101WUM and AUO KD101N80 45NA 1200x1920 panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to support for BOE TV101WUM and AUO KD101N80
	  45NA WUXGA PANEL DSI Video Mode panel

config DRM_PANEL_EBBG_FT8719
	tristate "EBBG FT8719 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 EBBG FT8719
	  video mode panel. Mainly found on Xiaomi Poco F1 mobile phone.
	  The panel has a resolution of 1080x2246. It provides a MIPI DSI
	  interface to the host.

config DRM_PANEL_ELIDA_KD35T133
	tristate "Elida KD35T133 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 Elida
	  KD35T133 controller for 320x480 LCD panels with MIPI-DSI
	  system interfaces.

config DRM_PANEL_FEIXIN_K101_IM2BA02
	tristate "Feixin K101 IM2BA02 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 the Feixin K101 IM2BA02
	  4-lane 800x1280 MIPI DSI panel.

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_DSI_CM
	tristate "Generic DSI command mode panels"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  DRM panel driver for DSI command mode panels with support for
	  embedded and external backlights.

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_HIMAX_HX83102
	tristate "Himax HX83102-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
	  Himax HX83102 controller.

config DRM_PANEL_HIMAX_HX83112A
	tristate "Himax HX83112A-based DSI panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_KMS_HELPER
	help
	  Say Y here if you want to enable support for Himax HX83112A-based
	  display panels, such as the one found in the Fairphone 4 smartphone.

config DRM_PANEL_HIMAX_HX8394
	tristate "HIMAX HX8394 MIPI-DSI LCD 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
	  Himax HX8394 controller, such as the HannStar HSD060BHW4
	  720x1440 TFT LCD panel that uses a MIPI-DSI interface.

	  If M is selected the module will be called panel-himax-hx8394.

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_ILI9341
	tristate "Ilitek ILI9341 240x320 QVGA panels"
	depends on SPI
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_MIPI_DBI
	help
	  Say Y here if you want to enable support for Ilitek IL9341
	  QVGA (240x320) RGB panels. support serial & parallel rgb
	  interface.

config DRM_PANEL_ILITEK_ILI9805
	tristate "Ilitek ILI9805-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 ILI9805 controller.

config DRM_PANEL_ILITEK_ILI9806E
	tristate "Ilitek ILI9806E-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 ILI9806E controller.

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_ILITEK_ILI9882T
	tristate "Ilitek ILI9882t-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 ILI9882t controller.

config DRM_PANEL_INNOLUX_EJ030NA
        tristate "Innolux EJ030NA 320x480 LCD panel"
        depends on OF && SPI
        select REGMAP_SPI
        help
          Say Y here to enable support for the Innolux/Chimei EJ030NA
          320x480 3.0" panel as found in the RS97 V2.1, RG300(non-ips)
          and LDK handheld gaming consoles.

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_JADARD_JD9365DA_H3
	tristate "Jadard JD9365DA-H3 WXGA 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 Jadard JD9365DA-H3
	  WXGA MIPI DSI panel. The panel support TFT dot matrix LCD with
	  800RGBx1280 dots at maximum.

config DRM_PANEL_JDI_LPM102A188A
	tristate "JDI LPM102A188A DSI panel"
	depends on OF && GPIOLIB
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for JDI LPM102A188A DSI
	  command mode panel as found in Google Pixel C devices.
	  The panel has a 2560×1800 resolution. It provides a MIPI DSI interface
	  to the host.

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_JDI_R63452
	tristate "JDI R63452 Full HD 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 the JDI R63452
	  DSI command mode panel as found in Xiaomi Mi 5 Devices.

config DRM_PANEL_KHADAS_TS050
	tristate "Khadas TS050 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 Khadas TS050 TFT-LCD
	  panel module. The panel has a 1080x1920 resolution and uses
	  24 bit RGB per pixel. It provides a MIPI DSI interface to
	  the host, a built-in LED backlight and touch controller.

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_LEADTEK_LTK050H3146W
	tristate "Leadtek LTK050H3146W 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 Leadtek LTK050H3146W
	  TFT-LCD modules. The panel has a 720x1280 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_LEADTEK_LTK500HD1829
	tristate "Leadtek LTK500HD1829 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_LINCOLNTECH_LCD197
	tristate "Lincoln Technologies lcd197 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 lincolntech lcd197
	  TFT-LCD modules. The panel has a 1080x1920 resolution and uses
	  24 bit RGB per pixel. It provides a MIPI DSI interface to
	  the host.

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_LG_SW43408
	tristate "LG SW43408 panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
	help
	  Say Y here if you want to enable support for LG sw43408 panel.
	  The panel has a 1080x2160@60Hz 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_MAGNACHIP_D53E6EA8966
	tristate "Magnachip D53E6EA8966 DSI panel"
	depends on OF && SPI
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_MIPI_DBI
	help
	  DRM panel driver for the Samsung AMS495QA01 panel controlled
	  with the Magnachip D53E6EA8966 panel IC. This panel receives
	  video data via DSI but commands via 9-bit SPI using DBI.

config DRM_PANEL_MANTIX_MLAF057WE51
	tristate "Mantix MLAF057WE51-X MIPI-DSI LCD 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 the Mantix
	  MLAF057WE51-X MIPI DSI panel as e.g. used in the Librem 5. It
	  has a resolution of 720x1440 pixels, a built in backlight and touch
	  controller.

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_NEWVISION_NV3051D
	tristate "NewVision NV3051D DSI panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  This driver supports the NV3051D based panel found on the Anbernic
	  RG353P and RG353V.

config DRM_PANEL_NEWVISION_NV3052C
	tristate "NewVision NV3052C RGB/SPI panel"
	depends on OF && SPI
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_MIPI_DBI
	help
	  Say Y here if you want to enable support for the panels built
	  around the NewVision NV3052C display controller.

config DRM_PANEL_NOVATEK_NT35510
	tristate "Novatek NT35510 RGB 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 panels built
	  around the Novatek NT35510 display controller, such as some
	  Hydis panels.

config DRM_PANEL_NOVATEK_NT35560
	tristate "Novatek NT35560 DSI command mode panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select VIDEOMODE_HELPERS
	help
	  Say Y here if you want to enable the Novatek NT35560 display
	  controller. This panel supports DSI in both command and video
	  mode. This supports several panels such as Sony ACX424AKM and
	  ACX424AKP.

config DRM_PANEL_NOVATEK_NT35950
	tristate "Novatek NT35950 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 the panels built
	  around the Novatek NT35950 display controller, such as some
	  Sharp panels used in Sony Xperia Z5 Premium and XZ Premium
	  mobile phones.

config DRM_PANEL_NOVATEK_NT36523
	tristate "Novatek NT36523 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 panels built
	  around the Novatek NT36523 display controller, such as some
	  Boe panels used in Xiaomi Mi Pad 5 and 5 Pro tablets.

config DRM_PANEL_NOVATEK_NT36672A
	tristate "Novatek NT36672A 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 the panels built
	  around the Novatek NT36672A display controller, such as some
	  Tianma panels used in a few Xiaomi Poco F1 mobile phones.

config DRM_PANEL_NOVATEK_NT36672E
	tristate "Novatek NT36672E 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 Novatek NT36672E DSI Video Mode
	  LCD panel module. The panel has a resolution of 1080x2408 and uses 24 bit
	  RGB per pixel.

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_OTA5601A
        tristate "Orise Technology ota5601a RGB/SPI panel"
        depends on 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 Orise Technology OTA9601A display controller.

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_RAYDIUM_RM692E5
	tristate "Raydium RM692E5-based DSI panel"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
	help
	  Say Y here if you want to enable support for Raydium RM692E5-based
	  display panels, such as the one found in the Fairphone 5 smartphone.

config DRM_PANEL_RAYDIUM_RM69380
	tristate "Raydium RM69380-based DSI panel"
	depends on OF && GPIOLIB
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Raydium RM69380-based
	  display panels.

	  This panel controller can be found in the Lenovo Xiaoxin Pad Pro 2021
	  in combination with an EDO OLED panel.

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_S6E88A0_AMS452EF01
	tristate "Samsung AMS452EF01 panel with S6E88A0 DSI video mode controller"
	depends on OF
	select DRM_MIPI_DSI
	select VIDEOMODE_HELPERS

config DRM_PANEL_SAMSUNG_ATNA33XC20
	tristate "Samsung ATNA33XC20 eDP panel"
	depends on OF
	depends on BACKLIGHT_CLASS_DEVICE
	depends on PM
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_DISPLAY_DP_AUX_BUS
	help
	  DRM panel driver for the Samsung ATNA33XC20 panel. This panel can't
	  be handled by the DRM_PANEL_SIMPLE driver because its power
	  sequencing is non-standard.

config DRM_PANEL_SAMSUNG_DB7430
	tristate "Samsung DB7430-based DPI panels"
	depends on OF && SPI && GPIOLIB
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_MIPI_DBI
	help
	  Say Y here if you want to enable support for the Samsung
	  DB7430 DPI display controller used in such devices as the
	  LMS397KF04 480x800 DPI panel.

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

config DRM_PANEL_SAMSUNG_S6E3FA7
	tristate "Samsung S6E3FA7 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 Samsung S6E3FA7
	  1920x2220 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_S6D27A1
	tristate "Samsung S6D27A1 DPI panel driver"
	depends on OF && SPI && GPIOLIB
	select DRM_MIPI_DBI
	help
	  Say Y here if you want to enable support for the Samsung
	  S6D27A1 DPI 480x800 panel.

	  This panel can be found in Samsung Galaxy Ace 2
	  GT-I8160 mobile phone.

config DRM_PANEL_SAMSUNG_S6D7AA0
	tristate "Samsung S6D7AA0 MIPI-DSI video mode panel controller"
	depends on OF
	depends on BACKLIGHT_CLASS_DEVICE
	select 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 panel"
	depends on OF
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Samsung S6E63M0
	  AMOLED LCD panel. This panel can be accessed using SPI or
	  DSI.

config DRM_PANEL_SAMSUNG_S6E63M0_SPI
	tristate "Samsung S6E63M0 RGB SPI interface"
	depends on SPI
	depends on DRM_PANEL_SAMSUNG_S6E63M0
	default DRM_PANEL_SAMSUNG_S6E63M0
	select DRM_MIPI_DBI
	help
	  Say Y here if you want to be able to access the Samsung
	  S6E63M0 panel using SPI.

config DRM_PANEL_SAMSUNG_S6E63M0_DSI
	tristate "Samsung S6E63M0 RGB DSI interface"
	depends on DRM_MIPI_DSI
	depends on DRM_PANEL_SAMSUNG_S6E63M0
	help
	  Say Y here if you want to be able to access the Samsung
	  S6E63M0 panel using DSI.

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_SAMSUNG_SOFEF00
	tristate "Samsung sofef00/s6e3fc2x01 OnePlus 6/6T DSI cmd mode panels"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select VIDEOMODE_HELPERS
	help
	  Say Y or M here if you want to enable support for the Samsung AMOLED
	  command mode panels found in the OnePlus 6/6T smartphones.

	  The panels are 2280x1080@60Hz and 2340x1080@60Hz respectively

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_SHARP_LS060T1SX01
	tristate "Sharp LS060T1SX01 FullHD 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 LS060T1SX01 6.0"
	  FullHD (1080x1920) DSI panel as found in Dragonboard Display Adapter
	  Bundle.

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_ST7703
	tristate "Sitronix ST7703 based MIPI touchscreen panels"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Sitronix ST7703 based
	  panels, souch as 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_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_SONY_TD4353_JDI
	tristate "Sony TD4353 JDI panel"
	depends on GPIOLIB && OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for the Sony Tama
	  TD4353 JDI command mode panel as found on some Sony Xperia
	  XZ2 and XZ2 Compact smartphones.

config DRM_PANEL_SONY_TULIP_TRULY_NT35521
	tristate "Sony Tulip Truly NT35521 panel"
	depends on GPIOLIB && OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for the Sony Tulip
	  NT35521 1280x720 video mode panel as found on Sony Xperia M4
	  Aqua phone.

config DRM_PANEL_STARTEK_KD070FHFID015
	tristate "STARTEK KD070FHFID015 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 STARTEK KD070FHFID015 DSI panel
	  based on RENESAS-R69429 controller. The pannel is a 7-inch TFT LCD display
	  with a resolution of 1024 x 600 pixels. It provides a MIPI DSI interface to
	  the host, a built-in LED backlight and touch controller.

config DRM_PANEL_EDP
	tristate "support for simple Embedded DisplayPort panels"
	depends on OF
	depends on BACKLIGHT_CLASS_DEVICE
	depends on PM
	select VIDEOMODE_HELPERS
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_DISPLAY_DP_AUX_BUS
	select DRM_KMS_HELPER
	help
	  DRM panel driver for dumb eDP 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_SIMPLE
	tristate "support for simple panels (other than eDP ones)"
	depends on OF
	depends on BACKLIGHT_CLASS_DEVICE
	depends on PM
	select VIDEOMODE_HELPERS
	help
	  DRM panel driver for dumb non-eDP 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_SYNAPTICS_R63353
	tristate "Synaptics R63353-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
	  Synaptics R63353 controller.

config DRM_PANEL_TDO_TL070WSH30
	tristate "TDO TL070WSH30 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 TDO TL070WSH30 TFT-LCD
	  panel module. The panel has a 1024×600 resolution and uses
	  24 bit RGB per pixel. It provides a MIPI DSI interface to
	  the host, a built-in LED backlight and touch controller.

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

config DRM_PANEL_VISIONOX_R66451
	tristate "Visionox R66451"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
	help
	  Say Y here if you want to enable support for Visionox
	  R66451 1080x2340 AMOLED DSI panel.

config DRM_PANEL_VISIONOX_RM69299
	tristate "Visionox RM69299"
	depends on OF
	depends on DRM_MIPI_DSI
	help
	  Say Y here if you want to enable support for Visionox
	  RM69299  DSI Video Mode panel.

config DRM_PANEL_VISIONOX_VTDR6130
	tristate "Visionox VTDR6130"
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	help
	  Say Y here if you want to enable support for Visionox
	  VTDR6130 1080x2400 AMOLED DSI panel.

config DRM_PANEL_WIDECHIPS_WS2401
	tristate "Widechips WS2401 DPI panel driver"
	depends on SPI && GPIOLIB
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_MIPI_DBI
	help
	  Say Y here if you want to enable support for the Widechips WS2401 DPI
	  480x800 display controller used in panels such as Samsung LMS380KF01.
	  This display is used in the Samsung Galaxy Ace 2 GT-I8160 (Codina).

config DRM_PANEL_XINPENG_XPP055C272
	tristate "Xinpeng XPP055C272 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 Xinpeng
	  XPP055C272 controller for 720x1280 LCD panels with MIPI/RGB/SPI
	  system interfaces.
endmenu
