linux/drivers/gpu/drm/tiny
Noralf Trønnes 0e65e2e6ab
drm/tiny: Add MIPI DBI compatible SPI driver
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
2022-02-28 10:29:33 +01:00
..
Kconfig drm/tiny: Add MIPI DBI compatible SPI driver 2022-02-28 10:29:33 +01:00
Makefile drm/tiny: Add MIPI DBI compatible SPI driver 2022-02-28 10:29:33 +01:00
arcpgu.c drm/arc: Use drm_module_platform_driver() to register the driver 2022-01-27 19:15:47 +01:00
bochs.c drm/bochs: Replace module-init boiler-plate code with DRM helpers 2022-01-19 18:40:00 +01:00
cirrus.c drm/cirrus: Replace module-init boiler-plate code with DRM helpers 2022-01-19 18:40:06 +01:00
gm12u320.c drm/gm12u320: Use offset-adjusted shadow-plane mappings 2021-08-08 20:27:37 +02:00
hx8357d.c drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
ili9163.c drm/tiny: ili9163: fix build 2021-10-15 20:37:42 +02:00
ili9225.c drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
ili9341.c drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
ili9486.c drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
mi0283qt.c drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
panel-mipi-dbi.c drm/tiny: Add MIPI DBI compatible SPI driver 2022-02-28 10:29:33 +01:00
repaper.c drm/repaper: Use format helper for xrgb8888 to monochrome conversion 2022-02-24 15:28:36 +01:00
simpledrm.c drm/simpledrm: Add "panel orientation" property on non-upright mounted LCD panels 2022-02-23 13:17:50 +01:00
st7586.c drm/format-helper: Rework format-helper conversion functions 2021-11-11 12:06:57 +01:00
st7735r.c drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00