menuconfig DRM_TINYDRM
	tristate "Support for simple displays"
	depends on DRM
	select DRM_KMS_HELPER
	select DRM_KMS_CMA_HELPER
	help
	  Choose this option if you have a tinydrm supported display.
	  If M is selected the module will be called tinydrm.

config TINYDRM_MIPI_DBI
	tristate

config TINYDRM_HX8357D
	tristate "DRM support for HX8357D display panels"
	depends on DRM_TINYDRM && SPI
	depends on BACKLIGHT_CLASS_DEVICE
	select TINYDRM_MIPI_DBI
	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_ILI9225
	tristate "DRM support for ILI9225 display panels"
	depends on DRM_TINYDRM && SPI
	select TINYDRM_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_TINYDRM && SPI
	depends on BACKLIGHT_CLASS_DEVICE
	select TINYDRM_MIPI_DBI
	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_MI0283QT
	tristate "DRM support for MI0283QT"
	depends on DRM_TINYDRM && SPI
	depends on BACKLIGHT_CLASS_DEVICE
	select TINYDRM_MIPI_DBI
	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_TINYDRM && SPI
	depends on THERMAL || !THERMAL
	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_ST7586
	tristate "DRM support for Sitronix ST7586 display panels"
	depends on DRM_TINYDRM && SPI
	select TINYDRM_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 ST7735R display panels"
	depends on DRM_TINYDRM && SPI
	depends on BACKLIGHT_CLASS_DEVICE
	select TINYDRM_MIPI_DBI
	help
	  DRM driver Sitronix ST7735R with one of the following LCDs:
	  * JD-T18003-T01 1.8" 128x160 TFT

	  If M is selected the module will be called st7735r.
