From: Adam Azuddin <azuddinadam@gmail.com>
To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
neil.armstrong@linaro.org, maarten.lankhorst@linux.intel.com,
mripard@kernel.org, tzimmermann@suse.de
Cc: jesszhan0024@gmail.com, airlied@gmail.com, simona@ffwll.ch,
andersson@kernel.org, dri-devel@lists.freedesktop.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Adam Azuddin <azuddinadam@gmail.com>
Subject: [PATCH 0/2] drm/tiny: Add RAiO RA8875 display controller driver support
Date: Thu, 17 Sep 2026 01:59:40 +0800 [thread overview]
Message-ID: <20260916175942.3186804-1-azuddinadam@gmail.com> (raw)
This series adds a new drm/tiny driver and matching dt-binding for the
RAiO RA8875 SPI display controller. An fbtft driver for this chip
currently exists at drivers/staging/fbtft/fb_ra8875.c, but fbtft is a
legacy fbdev-based staging driver, and nothing in mainline DRM
currently supports this controller.
This driver does not use drm_mipi_dbi. The RA8875 SPI protocol is
structurally incompatible with both Type C options drm_mipi_dbi supports.
Type C1 encodes command/data as a 9th bit within a 9-bit SPI word. The
RA8875 uses a full prefix byte (0x80 = command write, 0x00 = data write,
0x40 = data read, 0xC0 = status read) sent as a separate 8-bit transaction.
These are not the same thing and cannot be mapped to each other.
Type C3 models two transfer types via a D/CX GPIO. The RA8875 has four
transfer cycle types and no D/CX pin. More critically, the GRAM write path
is stateful: an MRWC register-address transaction followed by a streaming
pixel pump under a single CS assertion. I thought this may be too
complicated to cater towards, but please let me know if this is the
correct approach.
My ER-TFTM050-3 board has RST tied NC, and VDD is a fixed supply
set via an on-board solder jumper (3.3V/5V) rather than software-controllable,
so reset-gpios/vcc-supply are not implemented in either the driver or the binding.
I can add both as optional properties in v2 if reviewers know of RA8875 boards
that do need this.
Tested on a Raspberry Pi 3B connected over SPI to an East Rising
ER-TFTM050-3, a 5" 800x480 panel driven by the RA8875.
Ran fbtest (https://git.kernel.org/pub/scm/linux/kernel/git/geert/fbtest.git) against the
resulting framebuffer:
./fbtest -f /dev/fb1
Using drawops cfb16 (16 bpp packed pixels)
Available visuals:
Monochrome
Grayscale 32
Truecolor 5:6:5:0
Using visops truecolor
Running all tests
test001: PASSED
test002: PASSED
test003: PASSED
test004: PASSED
test005: PASSED
test006: PASSED
test008: PASSED
test009: PASSED
test010: PASSED
Benchmarking... 10x10 squares: 74.24 Mpixels/s
Benchmarking... 20x20 squares: 152.49 Mpixels/s
Benchmarking... 50x50 squares: 334.09 Mpixels/s
Benchmarking... 100x100 squares: 591.46 Mpixels/s
Benchmarking... 200x200 squares: 999.49 Mpixels/s
test012: PASSED
Benchmarking... R5 circles: 45.90 Mpixels/s
Benchmarking... R10 circles: 98.84 Mpixels/s
Benchmarking... R25 circles: 236.37 Mpixels/s
Benchmarking... R50 circles: 459.98 Mpixels/s
Benchmarking... R100 circles: 851.43 Mpixels/s
test013: PASSED
Adam Azuddin (2):
dt-bindings: display: panel: Add RAiO RA8875 display controller
drm/tiny: Add RAiO RA8875 display controller driver
.../bindings/display/panel/raio,ra8875.yaml | 66 ++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
MAINTAINERS | 6 +
drivers/gpu/drm/tiny/Kconfig | 13 +
drivers/gpu/drm/tiny/Makefile | 1 +
drivers/gpu/drm/tiny/ra8875.c | 739 ++++++++++++++++++
6 files changed, 827 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/panel/raio,ra8875.yaml
create mode 100644 drivers/gpu/drm/tiny/ra8875.c
--
2.55.0
next reply other threads:[~2026-09-16 18:01 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-16 17:59 Adam Azuddin [this message]
2026-09-16 17:59 ` [PATCH 1/2] dt-bindings: display: panel: Add RAiO RA8875 display controller Adam Azuddin
2026-09-18 10:13 ` Krzysztof Kozlowski
2026-09-16 18:04 ` [PATCH 2/2] drm/tiny: Add RAiO RA8875 display controller driver Adam Azuddin
2026-09-16 18:14 ` sashiko-bot
2026-09-18 10:17 ` Krzysztof Kozlowski
2026-09-18 16:02 ` Uwe Kleine-König
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260916175942.3186804-1-azuddinadam@gmail.com \
--to=azuddinadam@gmail.com \
--cc=airlied@gmail.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jesszhan0024@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.