Add a driver that will work with most MIPI DBI compatible SPI panels. This avoids adding a driver for every new MIPI DBI compatible controller that is to be used by Linux. The 'compatible' Device Tree property with a '.bin' suffix will be used to load a firmware file that contains the controller configuration. Example (driver will load sainsmart18.bin): display@0 { compatible = "sainsmart18", "panel-mipi-dbi-spi"; ... }; v5: - kconfig: s/DRM_KMS_CMA_HELPER/DRM_GEM_CMA_HELPER/ (Sam) - kconfig: Add select VIDEOMODE_HELPERS (Sam) - kconfig: Add wiki url in the description (Sam) - Split out and use of_get_drm_panel_display_mode()(Sam) - Only use the first compatible to look for a firmware file since the binding mandates 2 compatibles. - Make having a firmware file mandatory so we can print an error message if it's missing to improve the user experience. It's very unlikely that a controller doesn't need to be initialized and if it doesn't, it's possible to have a firmware file containing only a DCS NOP. v4: - Move driver to drm/tiny where the other drivers of its kind are located. The driver module will not be shared with a future DPI driver after all. v3: - Move properties to DT (Maxime) - The MIPI DPI spec has optional support for DPI where the controller is configured over DBI. Rework the command functions so they can be moved to drm_mipi_dbi and shared with a future panel-mipi-dpi-spi driver v2: - Drop model property and use compatible instead (Rob) - Add wiki entry in MAINTAINERS Acked-by: Maxime Ripard <maxime@cerno.tech> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Noralf Trønnes <noralf@tronnes.org> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://patchwork.freedesktop.org/patch/msgid/20220227124713.39766-6-noralf@tronnes.org
201 lines
5.8 KiB
Plaintext
201 lines
5.8 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
config DRM_ARCPGU
|
|
tristate "ARC PGU"
|
|
depends on DRM && OF
|
|
select DRM_GEM_CMA_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_KMS_HELPER
|
|
select DRM_VRAM_HELPER
|
|
select DRM_TTM
|
|
select DRM_TTM_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_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_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_PANEL_MIPI_DBI
|
|
tristate "DRM support for MIPI DBI compatible panels"
|
|
depends on DRM && SPI
|
|
select DRM_KMS_HELPER
|
|
select DRM_GEM_CMA_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 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_KMS_HELPER
|
|
select DRM_GEM_CMA_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_GEM_CMA_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_KMS_HELPER
|
|
select DRM_GEM_CMA_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_KMS_HELPER
|
|
select DRM_GEM_CMA_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_KMS_HELPER
|
|
select DRM_GEM_CMA_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_KMS_HELPER
|
|
select DRM_GEM_CMA_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_KMS_HELPER
|
|
select DRM_GEM_CMA_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_ST7586
|
|
tristate "DRM support for Sitronix ST7586 display panels"
|
|
depends on DRM && SPI
|
|
select DRM_KMS_HELPER
|
|
select DRM_GEM_CMA_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_KMS_HELPER
|
|
select DRM_GEM_CMA_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.
|