mbox series

[v3,0/3] drm/panel: Add MIPI DBI compatible SPI driver

Message ID 20220211130434.20732-1-noralf@tronnes.org (mailing list archive)
Headers show
Series drm/panel: Add MIPI DBI compatible SPI driver | expand

Message

Noralf Trønnes Feb. 11, 2022, 1:04 p.m. UTC
Hi,

This patchset adds a driver that will work with most MIPI DBI compatible
SPI panels out there.

Maxime gave[1] a good overview of the situation with these displays and
proposed to make a driver that works with all MIPI DBI compatible
controllers and use a firmware file to provide the controller setup for
a particular panel.

I have now made a script[2] that can create the firmware file, example
in the wiki[3]

Main change since version 2:
- Use Device Tree for all properties (Maxime)

The MIPI DPI specification has optional support for DPI where the
controller is configured over DBI. Because of this I put the driver in
drm/panel so it could be extended in the future to support
panel-mipi-dpi-spi. I have now looked at this more closely and the only
thing that can be shared between the two are the firmware command
functions. These functions can be moved to the drm_mipi_dbi_helper for
sharing. Now that I know that there won't be one driver module that
supports both use cases, I'm thinking of moving the driver to drm/tiny
where the other drivers of its kind are located. I'll move the driver in
the next version of the patchset unless someone have reasons for leaving
it in drm/panel.

Noralf.

[1] https://lore.kernel.org/dri-devel/20211129093946.xhp22mvdut3m67sc@houat/
[2] https://github.com/notro/panel-mipi-dbi/blob/main/mipi-dbi-cmd
[3] https://github.com/notro/panel-mipi-dbi/wiki


Noralf Trønnes (3):
  dt-bindings: display: add bindings for MIPI DBI compatible SPI panels
  drm/mipi-dbi: Add driver_private member to struct mipi_dbi_dev
  drm/panel: Add MIPI DBI compatible SPI driver

 .../display/panel/panel-mipi-dbi-spi.yaml     | 124 ++++++
 MAINTAINERS                                   |   8 +
 drivers/gpu/drm/panel/Kconfig                 |  13 +
 drivers/gpu/drm/panel/Makefile                |   1 +
 drivers/gpu/drm/panel/panel-mipi-dbi.c        | 413 ++++++++++++++++++
 include/drm/drm_mipi_dbi.h                    |   8 +
 6 files changed, 567 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml
 create mode 100644 drivers/gpu/drm/panel/panel-mipi-dbi.c