|
|
Log in / Subscribe / Register

drm: Add driver for the Solomon SSD1351 OLED controller

From:  Amit Barzilai <amit.barzilai22-AT-gmail.com>
To:  maarten.lankhorst-AT-linux.intel.com, mripard-AT-kernel.org, tzimmermann-AT-suse.de, airlied-AT-gmail.com, simona-AT-ffwll.ch
Subject:  [PATCH 0/2] drm: Add driver for the Solomon SSD1351 OLED controller
Date:  Wed, 10 Jun 2026 19:44:26 +0300
Message-ID:  <20260610164428.180091-1-amit.barzilai22@gmail.com>
Cc:  javierm-AT-redhat.com, robh-AT-kernel.org, krzk+dt-AT-kernel.org, conor+dt-AT-kernel.org, dri-devel-AT-lists.freedesktop.org, devicetree-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, Amit Barzilai <amit.barzilai22-AT-gmail.com>
Archive-link:  Article

This series adds a new DRM/KMS driver for the Solomon SSD1351, a 128x128
65k-color RGB OLED controller driven over a 4-wire SPI bus. The SSD1351
currently has no DRM driver; the only in-tree support is the legacy fbtft
fb_ssd1351.

The driver advertises XRGB8888 to userspace and converts to big-endian
RGB565 on flush via drm_fb_xrgb8888_to_rgb565be(), building on the GEM
SHMEM and atomic modeset/shadow-plane helpers with damage-clipped partial
updates.

The SSD1351 is implemented as a standalone driver rather than as part of
ssd130x. ssd130x converts XRGB8888 down to a packed <= 8bpp hardware
format (mono, grayscale, or 256-colour RGB332); the SSD1351 is driven in
its native 65k-colour RGB565 and does not fit that pixel pipeline.

For the record, the generic mipi_dbi helpers do not apply either: the
SSD1351 pixel path uses non-DCS opcodes (window 0x15/0x75 and write-RAM
0x5c rather than DCS 0x2a/0x2b/0x2c).

Smoke-tested on a Raspberry Pi 4 driving a 128x128 SSD1351 panel: the
display initialises and shows correct colours. The panel's sub-pixel
colour order is set in the controller's remap register, hardcoded to match
the tested module (as the ili9341/ili9163/mi0283qt tinydrm drivers do for
their panels).

Patch 1 adds the device tree binding; patch 2 adds the driver together
with the Kconfig/Makefile glue and a MAINTAINERS entry.

Amit Barzilai (2):
  dt-bindings: display: Add Solomon SSD1351 OLED controller
  drm/solomon: Add SSD1351 OLED display driver

 .../bindings/display/solomon,ssd1351.yaml     |  47 ++
 MAINTAINERS                                   |   7 +
 drivers/gpu/drm/solomon/Kconfig               |  14 +
 drivers/gpu/drm/solomon/Makefile              |   1 +
 drivers/gpu/drm/solomon/ssd1351.c             | 556 ++++++++++++++++++
 5 files changed, 625 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd1351.yaml
 create mode 100644 drivers/gpu/drm/solomon/ssd1351.c


base-commit: 83e8d8bbffa8161e94f3aeee4dd09a35062a78c8
-- 
2.54.0




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds