Help with LCD panel driver for sunxi embedded device: Jinglitai JLT4013A

Rui Oliveira ruimail24 at gmail.com
Sun Nov 27 18:38:54 UTC 2022


Hello,

First of all, let me say I'm new to this, so please bear with me.

Here's the situation:

I have a radio [1] that runs a Linux OS over an AllWinner SoC. Pretty 
much everything hardware-wise is on the mainline kernel, except for the 
LCD panel driver. As (surprise, surprise), the vendor wouldn't comply 
with their GPL mandate of sharing the kernel sources, I wrote the panel 
driver. This is my first driver. I wrote it by looking at similar code 
and with some help from Ghidra.

In [2] you can find the repository with my driver. Yes, it's 
out-of-tree, but it simplified my usage with Buildroot, with my repo 
available in [3].

My main problem right now is that while I can boot the image I 
configured, the panel doesn't display a thing. It does turn on the 
backlight tho.

I tried writing random garbage to `/dev/fb0` directly, I tried running 
`kmscube`... Nothing...

In [4] you can find the boot log as of now. It also shows some error 
messages when I try to run `kmscube` on L308. Please look at lines 
256-266, 272-276, and 309. Many of those messages are `printk` calls in 
my code (that I added to try and debug this).

Additional info: Buildroot uses mainline kernel. Latest version is using 
5.17, and you can find the kernel defconfig in [3], under 
br2_external/board/X6100/linux/sun8i-r16-x6100_defconfig.

The driver is currently being loaded via `modprobe` but I have tried 
just making it a *.patch file for the kernel, with same results.

The only significant differences from my driver to the vendor's is that 
they have a `st7701s_enable()` and a `st7701s__disable()` that do 
nothing and just return 0. I just didn't write these functions and 
didn't add them to `static struct spi_driver jlt4013a_driver`. I suppose 
that's not really what's making the difference? For completeness, they 
use the `st7701s_` prefix because that's the controller on the panel.

Anything, if you have any pointers of how can I do more than just have a 
panel with a backlight now, I'd appreciative all the help. I'm on the 
IRC OFTC channel #dri-devel as LordKalma, and I have a bouncer, so I'm 
always on and logging. Feel free to contact me there as well.

Thank you!

[1] https://www.radioddity.com/products/xiegu-x6100
[2] https://github.com/ruilvo/panel-jinglitai-jlt4013a
[3] https://github.com/ruilvo/AetherX6100
[4] 
https://gist.github.com/ruilvo/60fa52113cad7ecbd61a07c284f81fc5#file-bootlog-txt



More information about the dri-devel mailing list