# SPDX-License-Identifier: GPL-2.0-only

config DRM_APPLETBDRM
	tristate "DRM support for Apple Touch Bars"
	depends on DRM && USB && MMU
	select DRM_GEM_SHMEM_HELPER
	select DRM_KMS_HELPER
	help
	  Say Y here if you want support for the display of Touch Bars on x86
	  MacBook Pros.

	  To compile this driver as a module, choose M here: the
	  module will be called appletbdrm.

config DRM_ARCPGU
	tristate "ARC PGU"
	depends on DRM && OF
	select DRM_CLIENT_SELECTION
	select DRM_GEM_DMA_HELPER
	select DRM_KMS_HELPER
	help
	  Choose this option if you have an ARC PGU controller.

	  If M is selected the module will be called arcpgu.

config DRM_BOCHS
	tristate "DRM Support for bochs dispi vga interface (qemu stdvga)"
	depends on DRM && PCI && MMU
	select DRM_CLIENT_SELECTION
	select DRM_GEM_SHMEM_HELPER
	select DRM_KMS_HELPER
	help
	  This is a KMS driver for qemu's stdvga output. Choose this option
	  for qemu.

	  If M is selected the module will be called bochs.

config DRM_CIRRUS_QEMU
	tristate "Cirrus driver for QEMU emulated device"
	depends on DRM && PCI && MMU
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_SHMEM_HELPER
	help
	 This is a KMS driver for emulated cirrus device in qemu.
	 It is *NOT* intended for real cirrus devices. This requires
	 the modesetting userspace X.org driver.

	 Cirrus is obsolete, the hardware was designed in the 90ies
	 and can't keep up with todays needs.  More background:
	 https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/

	 Better alternatives are:
	   - stdvga (DRM_BOCHS, qemu -vga std, default in qemu 2.2+)
	   - qxl (DRM_QXL, qemu -vga qxl, works best with spice)
	   - virtio (DRM_VIRTIO_GPU), qemu -vga virtio)

config DRM_GM12U320
	tristate "GM12U320 driver for USB projectors"
	depends on DRM && USB && MMU
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_SHMEM_HELPER
	help
	 This is a KMS driver for projectors which use the GM12U320 chipset
	 for video transfer over USB2/3, such as the Acer C120 mini projector.

config DRM_OFDRM
	tristate "Open Firmware display driver"
	depends on DRM && MMU && OF && (PPC || COMPILE_TEST)
	select APERTURE_HELPERS
	select DRM_CLIENT_SELECTION
	select DRM_GEM_SHMEM_HELPER
	select DRM_KMS_HELPER
	help
	  DRM driver for Open Firmware framebuffers.

	  This driver assumes that the display hardware has been initialized
	  by the Open Firmware before the kernel boots. Scanout buffer, size,
	  and display format must be provided via device tree.

config DRM_PANEL_MIPI_DBI
	tristate "DRM support for MIPI DBI compatible panels"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	select DRM_MIPI_DBI
	select BACKLIGHT_CLASS_DEVICE
	select VIDEOMODE_HELPERS
	help
	  Say Y here if you want to enable support for MIPI DBI compatible
	  panels. The controller command setup can be provided using a
	  firmware file. For more information see
	  https://github.com/notro/panel-mipi-dbi/wiki.
	  To compile this driver as a module, choose M here.

config DRM_SIMPLEDRM
	tristate "Simple framebuffer driver"
	depends on DRM && MMU
	select APERTURE_HELPERS
	select DRM_CLIENT_SELECTION
	select DRM_GEM_SHMEM_HELPER
	select DRM_KMS_HELPER
	help
	  DRM driver for simple platform-provided framebuffers.

	  This driver assumes that the display hardware has been initialized
	  by the firmware or bootloader before the kernel boots. Scanout
	  buffer, size, and display format must be provided via device tree,
	  UEFI, VESA, etc.

	  On x86 BIOS or UEFI systems, you should also select SYSFB_SIMPLEFB
	  to use UEFI and VESA framebuffers.

config TINYDRM_HX8357D
	tristate "DRM support for HX8357D display panels"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	select DRM_MIPI_DBI
	select BACKLIGHT_CLASS_DEVICE
	help
	  DRM driver for the following HX8357D panels:
	  * YX350HV15-T 3.5" 340x350 TFT (Adafruit 3.5")

	  If M is selected the module will be called hx8357d.

config TINYDRM_ILI9163
	tristate "DRM support for ILI9163 display panels"
	depends on DRM && SPI
	select BACKLIGHT_CLASS_DEVICE
	select DRM_CLIENT_SELECTION
	select DRM_GEM_DMA_HELPER
	select DRM_KMS_HELPER
	select DRM_MIPI_DBI
	help
	  DRM driver for the following Ilitek ILI9163 panels:
	  * NHD-1.8-128160EF 128x160 TFT

	  If M is selected the module will be called ili9163.

config TINYDRM_ILI9225
	tristate "DRM support for ILI9225 display panels"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	select DRM_MIPI_DBI
	help
	  DRM driver for the following Ilitek ILI9225 panels:
	  * No-name 2.2" color screen module

	  If M is selected the module will be called ili9225.

config TINYDRM_ILI9341
	tristate "DRM support for ILI9341 display panels"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	select DRM_MIPI_DBI
	select BACKLIGHT_CLASS_DEVICE
	help
	  DRM driver for the following Ilitek ILI9341 panels:
	  * YX240QV29-T 2.4" 240x320 TFT (Adafruit 2.4")

	  If M is selected the module will be called ili9341.

config TINYDRM_ILI9486
	tristate "DRM support for ILI9486 display panels"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	select DRM_MIPI_DBI
	select BACKLIGHT_CLASS_DEVICE
	help
	  DRM driver for the following Ilitek ILI9486 panels:
	  * PISCREEN 3.5" 320x480 TFT (Ozzmaker 3.5")
	  * RPILCD 3.5" 320x480 TFT (Waveshare 3.5")

	  If M is selected the module will be called ili9486.

config TINYDRM_MI0283QT
	tristate "DRM support for MI0283QT"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	select DRM_MIPI_DBI
	select BACKLIGHT_CLASS_DEVICE
	help
	  DRM driver for the Multi-Inno MI0283QT display panel
	  If M is selected the module will be called mi0283qt.

config TINYDRM_REPAPER
	tristate "DRM support for Pervasive Displays RePaper panels (V231)"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	help
	  DRM driver for the following Pervasive Displays panels:
	  1.44" TFT EPD Panel (E1144CS021)
	  1.90" TFT EPD Panel (E1190CS021)
	  2.00" TFT EPD Panel (E2200CS021)
	  2.71" TFT EPD Panel (E2271CS021)

	  If M is selected the module will be called repaper.

config TINYDRM_SHARP_MEMORY
	tristate "DRM support for Sharp Memory LCD panels"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_GEM_DMA_HELPER
	select DRM_KMS_HELPER
	help
	  DRM Driver for the following Sharp Memory Panels:
	  * 1.00" Sharp Memory LCD (LS010B7DH04)
	  * 1.10" Sharp Memory LCD (LS011B7DH03)
	  * 1.20" Sharp Memory LCD (LS012B7DD01)
	  * 1.28" Sharp Memory LCD (LS013B7DH03)
	  * 1.26" Sharp Memory LCD (LS013B7DH05)
	  * 1.80" Sharp Memory LCD (LS018B7DH02)
	  * 2.70" Sharp Memory LCD (LS027B7DH01)
	  * 2.70" Sharp Memory LCD (LS027B7DH01A)
	  * 3.20" Sharp Memory LCD (LS032B7DD02)
	  * 4.40" Sharp Memory LCD (LS044Q7DH01)

	  If M is selected the module will be called sharp_memory.

config TINYDRM_ST7586
	tristate "DRM support for Sitronix ST7586 display panels"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	select DRM_MIPI_DBI
	help
	  DRM driver for the following Sitronix ST7586 panels:
	  * LEGO MINDSTORMS EV3

	  If M is selected the module will be called st7586.

config TINYDRM_ST7735R
	tristate "DRM support for Sitronix ST7715R/ST7735R display panels"
	depends on DRM && SPI
	select DRM_CLIENT_SELECTION
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	select DRM_MIPI_DBI
	select BACKLIGHT_CLASS_DEVICE
	help
	  DRM driver for Sitronix ST7715R/ST7735R with one of the following
	  LCDs:
	  * Jianda JD-T18003-T01 1.8" 128x160 TFT
	  * Okaya RH128128T 1.44" 128x128 TFT

	  If M is selected the module will be called st7735r.
