Linux: CM3+ vc4 4.19.97 7" Powertip DSI Panel (ili9881C)

Created on 21 Dec 2020  ·  5Comments  ·  Source: raspberrypi/linux

We want to connect the Powertip DSI Panel on the DSI1 port of a custom CM3+ baseboard.
The original RPI Display works fine, but on the Powertip Display we have some issues (see image below).

IMG_20201208_161857

We added an overlay and modified the existing ili9881 panel driver to include the correct init commands. Please see the following branch for more details: https://github.com/wudo94/linux/tree/rpi-4.19.97_powertip_dsi.

If anyone can provide some help or information of similar setups this would be very much appreciated.

Thanks!

@fschrempf

All 5 comments

Can I strongly suggest you update to the rpi-5.10.y branch. The DRM/KMS drivers are being actively worked on there, and particularly for DSI. Backporting individual patches may or may not work, but we won't invest effort in debugging old kernel versions.

The rpi-5.10.y branch already has the driver and overlay merged for the standard Pi 7" DSI panel.

3985 is a PR which added an example DSI panel to the system, and is actually using the ILI9881 driver. I ought to rebase it and get it merged.

How certain are you of your init sequence? Beyond 2/4 DSI data lanes, and 720x1280 vs 800x1280, I haven't analysed what is actually being changed in these tables for the different displays. Those which are merged should be valid, so it would be interesting to test with those rather than a table of potentially unknown content. I have known display manufacturers give out totally bogus timing and inits.

Can I strongly suggest you update to the rpi-5.10.y branch. The DRM/KMS drivers are being actively worked on there, and particularly for DSI. Backporting individual patches may or may not work, but we won't invest effort in debugging old kernel versions.

Ok, thanks we will try it with the rpi-5.10.y branch and see how it goes. It might take until after the holidays until we get to do it, though.

How certain are you of your init sequence? Beyond 2/4 DSI data lanes, and 720x1280 vs 800x1280, I haven't analysed what is actually being changed in these tables for the different displays. Those which are merged should be valid, so it would be interesting to test with those rather than a table of potentially unknown content. I have known display manufacturers give out totally bogus timing and inits.

We have a datasheet for the panel that gives exact byte-by-byte values for the init sequence, so we thought it would be save to assume these are correct. But we could probably also give it a try with some of the other tables. I guess we would need to adjust them to use 2 lanes instead of 4.

I do have an init table for 2 lane ILI9881 at 720x1280 that i have had working on a display. I probably can't just release it, but I will do a quick diff to see what (if anything) is different between yours and mine.

The init table for my screen exactly matches yours, except it's missing the

    ILI9881C_SWITCH_PAGE_INSTR(0),
    ILI9881C_COMMAND_INSTR(0x11, 0x00),

at the end.

I have it working on 5.10. There does seem to be some race condition in my configuration, but blacklisting panel-ilitek-ili9881c and manually modprobing it has just loaded everything happily. I think that's down to my regulator configuration though. A magic delay somewhere is probably all that is needed.

I am testing on a Pi4, but that shouldn't make a real difference with DSI configuration.

Was this page helpful?
0 / 5 - 0 ratings