[PATCH 0/5] drm/ingenic: Add the X1600 LCD controller and the HiBy R1 panel

From: Olivier Louvignes

Date: Sun Oct 25 2026 - 04:59:44 EST


The display controller of the Ingenic X1600 is not the one ingenic-drm
drives: it fetches frames through descriptors and keeps its interface and
timings in register blocks of their own. It is the X2000's controller
without the composer. This series adds a binding and a driver for it,
then the panel of the HiBy R1, an X1600 audio player: 480x800 parallel
RGB, set up over a 3-wire SPI bus.

The driver covers what the R1 uses and what could be tested: parallel RGB
panels on a 24-bit bus and one full-screen RGB565 plane. The composer,
smart panels and other pixel formats are left out.

Two things come from the vendor kernel rather than the manual. A flip
also writes SRD_CHAIN_START, which the manual doesn't describe for a
running controller; flips without it were not tried. The panel's set-up
sequence is the vendor's too: HiBy calls the panel LG35583, its maker and
controller are unknown, hence the hiby prefix.

Tested on a HiBy R1: the fbdev console and a player drawing through
fbdev, blanking and unblanking, 60 page flips in 0.97 s at about 61 Hz,
and the colour order (RGB order swaps red and blue on this panel).

The X1600 has no device tree upstream yet; its support is being posted
one subsystem at a time. The R1's backlight uses the X1600 PWM driver
posted separately:
https://lore.kernel.org/r/20261025084643.93167-1-olivier@xxxxxxxxx

Olivier Louvignes (5):
dt-bindings: vendor-prefixes: Add HiBy
dt-bindings: display: Add the Ingenic X1600 LCD controller
drm/ingenic: Add a driver for the X1600 LCD controller
dt-bindings: display: panel: Add the HiBy LG35583
drm/panel: Add the HiBy LG35583

.../bindings/display/ingenic,x1600-lcd.yaml | 70 ++
.../bindings/display/panel/hiby,lg35583.yaml | 71 ++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
MAINTAINERS | 12 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/ingenic/Kconfig | 22 +
drivers/gpu/drm/ingenic/Makefile | 1 +
drivers/gpu/drm/ingenic/ingenic-x1600-drm.c | 694 ++++++++++++++++++
drivers/gpu/drm/panel/Kconfig | 10 +
drivers/gpu/drm/panel/Makefile | 1 +
drivers/gpu/drm/panel/panel-hiby-lg35583.c | 342 +++++++++
11 files changed, 1226 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/ingenic,x1600-lcd.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/hiby,lg35583.yaml
create mode 100644 drivers/gpu/drm/ingenic/ingenic-x1600-drm.c
create mode 100644 drivers/gpu/drm/panel/panel-hiby-lg35583.c


base-commit: cf61bef3801c3c9d0d8c39026b7b2fb242898a3a
--
2.39.5