Dragonboard 410c DSI external LCD

Hello guys!

At first, I would like to congratulate 96boards and give a thumbs up for great product(s) and good community. I am owner of Dragonboard 410c board and I am really enjoying it! I successfully altered kernel for adding my accelerometers and gyro for screen orientation (through I2C). I am also playing with UART, but that’s not active yet.

But what bothers me the most is adding different display. I would like to disable (which I already did) adv7533 (DSI to HDMI bridge), and just modify DSI parameters. I have my own board connected to HIGH speed expansion connector. On that board I have DSI to LVDS converter (SN65DSI83 from Texas Instruments) and that board is connected to LCD.

My question is:

  • Does enabling or disabling adv7533 IC (including or excluding in devicetree) also alters DSI parameters?
  • If I remove adv7533 implementation in devicetree, will DSI still stay the same as before?
  • How do you recommend to add additional display through high speed expansion board?

I know that there is LeMaker’s LCD coming and that’s great, but is also possible to get source code for it? Not image files, because I can’t see code that way.

Thank you very much for any answer, hint or suggestion!
When I successfully add LCD, I will happily wrote some tutorials or guides for different things.

Hi @Miha

I really hope you get the DSI to LVDS converter running and write a tutorial on how you did it. Which operation system are you bringing this up on? I am going to assume Debian in the response below.

A little background and things that might cause you grief as you get this project running. First the 410 processor on the board only has one DSI output, this output is multiplexed between the ADV7535 and the High Speed connector. In general it tries to use the ADV7535, unless all of the conditions are correct for it to fall back to the High Speed connector. 1) the HDMI SEL dip switch on the bottom of the board must be ‘open’. 2) the HDMI HPD signal must be absent do not plug in a cable and monitor). 3) the DSI_SW_SEL (GPIO_32) signal must be ‘high’.

The device tree entry for your DSI driver will need take control of ‘gpio32’ and set it high.

Your DSI display driver will need to set the correct timing and display size to match your LVDS display. I believe you have a DSI to LVDS bridge chip (possibly a TC358764XBG ??) it will need a I2C driver for this chip, perhaps you can use the ADV7511 driver as a starter template.

Setting the DSI timing, you can find some hints here: https://developer.qualcomm.com/download/db410c/dsi-display-porting-guide-linux-android.zip

The chip on the board is the ADV7535, but in the code it is called ADV7533, for the purposes or SW they are the same thing.

Full disclosure: I am an employee of Qualcomm Canada, any opinions I may have expressed in this or any other posting may not reflect the opinions of my employer.

Hi,

The following branch support the LeMaker Panel with DB410c:

The LeMaker board has a DSI panel, so its DT node sits as a child of the DSI host. Since your setup has a DSI bridge, you’ll need to link the DSI host’s output port to the TI bridge, whose output port further connects to the LVDS panel.

As ljking said, the DSI_SW_SEL gpio needs to be configured such that the DSI output is routed to the HS connector instead of the ADV7535 bridge chip. This GPIO is driven by the LeMaker panel driver (it’s a bit of a hack, since it’s more of a DB410c property rather than the panel’s). For now, you could do the same in the TI bridge driver.

Hi!

First of all, thanks for really fast reply! It looks like that i forgot to mention that I am using Android, and not Debian or Windows IOT.
@Ijking
Before I started configuring my code for external LCD, I searched thorougly through forum and I found out about DSI_SW_SEL and I already handled it. Also DIP switch and not connecting HDMI cable. I am suspecting that possible issue lies in impedances of DSI lanes. I suspected DSI clock frequency to be at around 400-500MHz, but i measured it and it’s at around 250MHz.

I am using DSI to LVDS bridge (SN65DSI83 from Texas Instruments). I wrote I2C driver for Dragonboard and I measured (Logic analyzer) initialization sequence, and also that works ok.

I also followed DSI display porting guide to configure clock timings, resolution, color depth and other parameters. I see that there is not much any software things to try, it really looks like that maybe is problem in my board.

Many thanks for your advice(s) and sugestions. When I sort things out, I would gladly report what to do and wrote some tutorials :slight_smile:

Best regards, Miha

Hello,
Please check your private messages.

Hi Miha,

have you made any progress with TI bridge and LVDS LCD? Is it working?

Best regards,
Irvin

Hello,
I have made it work. I am using Variscite DART-SD410 board with TI bridge on it and it is fully working.
You can see the schematics on the Variscite web site: www.variscite.com
Do you need Android or Debian?
Thank you, Leonid.

1 Like

Hello Leonid,

yes i know Variscite solution. They use it with 800x480 7’’ 18-bit LVDS. Which LCD do you use? I plan to use 10.1 1024x600 18-bit LVDS on Android. Can you point me on important config files/parameters which need to be changed?

Best regards,
Irvin

Hello,
There is nothing special to configure, just follow the Qualcomm Excel file for configuring the DSI interface, and follow TI DSI Tuner application for configuring the bridge. I used i2c tools for testing the bridge parameters and as soon as it worked I transferred the parameters into the dtsi file.
Thank you, Leonid.

Hello,

I have started working with 410 and wants to give support of DSI panel of 1080p on 410.
Do 410 supports 1080p resolution display? My OS is Marshmallow 6.0.1

Regards,
Pooja

Hi!

Yes, 410 supports 1080p resolution. It “comes out of the box” configured for 1080p HDMI video. Do you have DSI LCD or some kind of video converter?
You should take a look at this link -> https://developer.qualcomm.com/download/db410c/dsi-display-porting-guide-linux-android.pdf

It shows you how to configure necessary files for your configuration.

Hello,
I am using DSI LCD.
i went through a document provided by Qualcomm about specs in that the data is little bit confusing.
They are saying HD in display interfaces and FHD downwards.

Display interfaces HD (1280 x 720) 60 fps; 16/18/24 bpp RGB
MIPI_DSI MIPI DSI 4-lane
General display features Wifi display – 720p 30/1080p 30
FHD + 720p external wireless display
You can download the doc from this link

Is 1080p resolution tested for 410?

Regards,
Pooja

It’s looks like some datasheets are older version or it’s it’s some kind of mistake. As I said above, default configuration for Dragonboard 410, Dart 410 and Open-Q 410 is HDMI video stream with 1080p resolution. What kind of display do you want to connect and which video interface would you use?

Hi micious1:
Did you resolved your issue?

Hi Leonid:
Could you share your .dtsi for DSI to me, thanks!

Hi,
You can see it here:

But can the Dragonboard support 1080p with 60 fps or it is reduced, like playing a game or whatever?

The display will run at 60Hz but whether the GPU can hit every frame would depend on the complexity of what it is drawing. However, as a guess, I’d say picking up off-the-shelf code (i.e. not optimized for mobile GPU) will probably give lower frame rates.

interisting, thanks a lot!

The Device Specification doesn’t list 1080p60, lists 720p60 as a limit. However there is a qualifying foot note at the bottom of the table. If you attempt to do everything possible with the chip at the same time, (example running two cameras with two large previews, complex 3d rendering with the GPU, and WiFi display along with 1080p60), then you may run out of internal memory bandwidth. The display engine will not be able to fetch frames from memory at the full refresh rate, when this happens you will see green bars at the bottom of the display. Since it is rare to run all of these operations at once, hence in normal usage 1080p60 works just fine.

Full disclosure: I am an employee of Qualcomm Canada, any opinions I may have expressed in this or any other posting may not reflect the opinions of my employer.