DSI panel porting for HiKey 960

I am working on a DSI panel mezzanine. For now I’ve been using a Dragonboard 410C, because it has a clear display porting guide. The display is working now under Android Marshmallow. I now need to move to a more powerful board because of software requirements, such as a HiKey960. However, the process of porting seems different for HiKey960 vs Dragonboard. The most striking difference is that the panel initialization and timing code, as well as general panel selection is not in DTS. There’s only a brief panel@1 {} entry that makes a reference to mipi-hikey.

As I’m fairly new to android kernel development in general, I’m a bit puzzled where to move next. I found panel example code in hikey-linaro/drivers/gpu/drm/hisilicon/kirin960/panel/, but also in hikey-linaro/drivers/gpu/drm/panel/? Looking at the files in there, it looks like I can convert the dtsi files I made for the Dragonboard to what is required there, but how do I make the HiKey960 board switch off the HDMI output (as depicted by the switch between DSI and HDMI in the schematics), and select my custom panel driver code?

Any help would be highly appreciated!

(Edit: updated post to reflect that the display works on DB410c now)

Well I just started digging into the subject matter and one thing I’m running into right now is that it seems that the Kirin 960 doesn’t support DSI lane swapping like the Snapdragon. Is that correct?

I forwarded this question to HiSilicon just now.

1 Like

Thanks, much appreciated.

HiSilicon were quick to respond, unfortunately no lane swapping on HiKey 960.

Built a new DSI adapter PCB with default lane order 0123. It works fine on my DB410C in 0123 lane config, so the hardware is good. Now I’m trying to get it to work on the HiKey960 (AOSP), but the procedure is different from Qualcomm’s method. I have found the NTE300 panel driver and adapted it to support my panel driver IC. But I’m currently struggling to find what other changes I have to make to the kernel to enable the panel. I’m pretty new to Android & Linux kernels as you may have figured out by now :slight_smile:

Got the panel up yay. Ping me anytime if you get stuck like me.

could you please tell me how to setup your lcd panel on hikey960? i also got this problem, thanks!

what is the current status of your efforts to make it work? there’s quite a lot of steps involved and I don’t have these documented yet.

hi, i also meet the same issue, the MIPI panel work fine now ?
there have some sample code in two folders, drm/panel and drm/hisilicon/panel. it seems all the sample code can’t work well.
do you have any good news? please share to us, very thankfull.