• Noralf Trønnes's avatar
    drm/tiny: Add MIPI DBI compatible SPI driver · 0e65e2e6
    Noralf Trønnes authored
    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: default avatarMaxime Ripard <maxime@cerno.tech>
    Reviewed-by: default avatarSam Ravnborg <sam@ravnborg.org>
    Signed-off-by: default avatarNoralf Trønnes <noralf@tronnes.org>
    Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220227124713.39766-6-noralf@tronnes.org
    0e65e2e6
Kconfig 5.84 KB