-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Hello,
I'm trying to get a Startek 5 inch touchscreen working on a RaspberryPi 3 B. It's running latest raspbian with a 4.14.98 kernel. I have added the patches from this pull request: raspberrypi#2693 and verified that the Official display works.
The Startek panel use an Ilitek ILI9806E controller device. It is hard wired for 2 lanes and only has the DSI interface available (so no I2C or SPI). There is an upstream driver for an ILI9881C device: ili9881.c from which I created an ili9806e driver. When the kernel boots everything looks good: vc4-drm binds dsi1, /dev/fb0 is created and indeed xorg log indicates happiness but the display remains blank (backlight is permanently powered by an external supply).
In an attempt to debug I added some code to the prepare function in the driver to try and read the device ID just after resetting the panel. However, although the read apparently succeeds it returns 0 bytes:
[ 5.442202] [drm:vc4_dsi_host_transfer [vc4]] ERROR DSI returned 0b, expecting 1b
[ 5.442272] [drm:vc4_dsi_host_transfer [vc4]] ERROR DSI transfer failed, resetting: -6
Reading the device ID requires firstly switching to command page 1 in the ILI9806E and then reading the ID register. To switch you have to write a 5 byte sequence to register 255 so the fact it's reading 0 bytes suggests it's reading from the wrong register. A couple of questions spring to mind:
- The official display is single lane so is this potentially an issue with having 2 lanes or is vc4-dsi known to work with 2 lanes?
- What about reading over the dsi interface, is that known to work?
Here's the full dmesg output. dmesg.txt
Any thoughts, pointers, suggestions very much appreciated.