SPI based lcd bringup (ST7789V controller)


Hi Support team,

We are using one of the sitronix SPI controller ST7789V based LCD with Qualcomm410 platform. and Kernel version is 4.14.15 We are using SPI-LCD driver (drivers/gpu/drm/panel/panel-sitronix-st7789v.c) to enabling it. We need your help to bring up LCD with Linux.

Driver probed successfully. below are dmesg short logs. A detailed log file is attached.
[ 1.541250] ## DEBUG : func : st7789v_probe line : 390
[ 1.548451] st7789v spi0.0: spi0.0 supply power not found, using dummy regulator
[ 1.553683] ## DEBUG : func : st7789v_probe line : 424

Below changes we have applied in apq8016-sbc.dtsi: We refer Documentation/devicetree/bindings/display/panel/sitronix,st7789v.txt document.

spi@78b9000 {
/ On Low speed expansion /
label = “LS-SPI0”;
status = “okay”;
ports {
port@1 {
reg = <1>;
spi_out: endpoint {
remote-endpoint = <&truly_in>;

panel@0 {
label = “reset_gpios”;
compatible = “sitronix,st7789v”;
reg = <0>;
backlight = <&backlight>;
reset-gpio = <&msmgpio 10 GPIO_ACTIVE_LOW>;
spi-max-frequency = <100000>;
port {
truly_in: endpoint {
remote-endpoint = <&spi_out>;


HAS_IOMEM [=y] && DRM [=y] && DRM_PANEL [=y] && OF [=y] && SPI [=y] && BACKLIGHT_CLASS_DEVICE [=y]

We are suspecting at DRM subsystem call. DRM entry not registered in the /sys/class/DRM. No DRM calls called after probing like st7789v_enable, st7789v_get_modes, st7789v_prepare.

Can you please guide us here, what could be the missing part to enable the DRM subsystem for SPI based LCD? Because we have successfully enabled the with MIPI - DSI based LCD with Q410 platform.

We are waiting for your response.

Arjun Salariya


Can you fix the indentation in the post (pre-formatted text either needs to be indented by 4 spaces or wrapped in a delimiter (3 ~ characters works).

This block commenced with ~~~ at the start of a line and ends in the same way.


By the way, did you spot this comment from when the ST7789V driver was upstreamed:

It is controlled through an SPI bus, with a twist, since each byte sent
must be prefixed by a bit, which needs an 9-bits-per-word SPI controller,
which is quite rare. Else, you would need to bitbang it.

I’m not sure if this is compatible with the DB410C. What is the return value from the probe?