Hi, I'm trying to create a driver for a small lcd display called Raystar RDX0063 that is using the Sitronix ST75156 chip. The display is used in SPI 4 wire mode similar to many other tiny MIPI DBI displays, but the register set and framebuffer format is not MIPI DBI compliant, since each byte sent is actually 1 column of 8 rows.
The datasheets for the Raystar RDX0063 display and the Sitronix ST75156 chip are unfortunately not publicly available, but you can find the datasheet for Sitronix ST7567 (which is similar to ST75156) here: https://www.topwaydisplay.com/sites/default/files/2020-05/ST7567.pdf The main difference seems to be that ST75156 supports a higher resolution than ST7567, as can be seen here: https://www.sitronix.com.tw/en/products/industrial-display-driver-ic/mono-stn-lcd-driver-ic As a first attempt to create the driver, the panel-mipi-dbi driver was extended with "tweaks" to support non MIPI DBI panels. This seems to work. However, after some discussion with the maintainer that is no longer active (https://github.com/notro/panel-mipi-dbi/discussions/14) the conclusion was that these "tweaks" were not upstreamable, and that I need to create a new driver specifically for the Raystar RDX0063 display panel using the Sitronix st75156 chip instead. In order to make my driver upstreamable, which driver should I be "inspired" by (i.e copy and modify) and base my work on? The drivers in drivers/gpu/drm/sitronix/ and drivers/gpu/drm/tiny/ usually uses struct mipi_dbi_dev and mipi_db_command() helpers, but drivers/gpu/drm/panel/panel-sitronix-st7789v.c does not. Should I create my new driver as /gpu/drm/sitronix/st75156.c and use mipi_dbi helpers where applicable? If it is preferable to avoid using the mipi dbi helpers, is there another set of helper functions that I should use instead? Best regards /Lars Rask
