KKlouzal
Posts: 9
Joined: Wed Jul 07, 2021 11:19 pm

Dual DSI Screens

Sun Aug 01, 2021 10:47 pm

Can anyone tell me the steps involved to enable both DISP0 and DISP1 on the CM4 for dual screen DSI displays?

I currently have the CM4 (without wifi/bluetooth) connected to the WaveShare POE Base (B)
https://www.waveshare.com/Compute-Modul ... oard-B.htm
Only DISP1 will light up my display. DISP0 stays black.

On a side note, only my 5" screen turns on, the 7" stays dark regardless of which port I connect.
I have a regular PI4 model b and it's able to drive each screen (albeit only one at a time) without any problems.

I've read some forum posts about needing to create a dt-blob file? And add pullup resistors to a couple of the GPIO pins to enable DISP0?
Another side note, why would DISP0 be disabled by default when it has twice as many available DSI lanes?

aBUGSworstnightmare
Posts: 3487
Joined: Tue Jun 30, 2015 1:35 pm

Re: Dual DSI Screens

Mon Aug 02, 2021 5:09 am

KKlouzal wrote: Can anyone tell me the steps involved to enable both DISP0 and DISP1 on the CM4 for dual screen DSI displays?

I currently have the CM4 (without wifi/bluetooth) connected to the WaveShare POE Base (B)
https://www.waveshare.com/Compute-Modul ... oard-B.htm
Only DISP1 will light up my display. DISP0 stays black.

On a side note, only my 5" screen turns on, the 7" stays dark regardless of which port I connect.
I have a regular PI4 model b and it's able to drive each screen (albeit only one at a time) without any problems.

I've read some forum posts about needing to create a dt-blob file? And add pullup resistors to a couple of the GPIO pins to enable DISP0?
Another side note, why would DISP0 be disabled by default when it has twice as many available DSI lanes?
it's DSI1 which has 4-lanes, and DSI-0 which has 2-lanes; check the specs/schematics of the CM4 and CM4IO. None of the DSI interfaces is disabled by default! It's DSI1 which has 2-lanes exposed only on the Pi models with DSI interface.

Which displays do you try to connect? There is no official 5in DSI display...

Can't speak of the waveshare board, but in case of the CM4IO you need to place two jumpers. No pull-ups need to be added (again, check the schematic at https://www.raspberrypi.org/documentati ... ematics.md.

Regarding dual official DSI display (as I assume your 5in might be mimiking a 7in DSI display) have a look af this viewtopic.php?f=108&t=316599. It should be possible under KMS but is work in progress.
Steps needed for using the display are described here https://www.raspberrypi.org/documentati ... display.md. A blob is needed for FKMS only! Under KMS you need to have a kernel driver + overlay for your display.

KKlouzal
Posts: 9
Joined: Wed Jul 07, 2021 11:19 pm

Re: Dual DSI Screens

Wed Aug 04, 2021 12:05 am

I'm using these two screens:
https://osoyoo.com/2019/11/12/instructi ... ch-screen/
https://osoyoo.com/2019/09/20/instructi ... ch-screen/

Thank you for pointing me to the schematics, I see the official RPI CM4 Board uses jumpers on J6 to enable both DSI/CSI ports. Unfortunately this WaveShare board I have doesn't offer anything like that. From looking at the official PI schematics it looks like the traces that run from J6 lead off to the GPIO pins to 'route the i2c buss to the connector'? I should be able to jump the specific pins directly off the GPIO?
Image
Image
Image

The WaveShare wiki lists instructions for enabling both CSI ports in conjunction with either DSI0 or DSI1 but no mention of using both DSI connectors.. I've fired off an email to WaveShare support but no response yet..
The aforementioned configuration changes are made through the use of a couple different dt-blob files, I've looked through the source and the only difference between 2 CSI and either DSI0/DSI1 is the following section:

Code: Select all

            pin_define@DISPLAY_I2C_PORT {
               type = "internal";
               number = <0>;
            };
            pin_define@DISPLAY_SDA {
               type = "internal";
               number = <44>;
            };
            pin_define@DISPLAY_SCL {
               type = "internal";
               number = <45>;
            };
            pin_define@DISPLAY_DSI_PORT {
               type = "internal";
               number = <1>;
            };

           // pin_define@DISPLAY_SDA {
           //    type = "internal";
           //    number = <0>;
           // };
           // pin_define@DISPLAY_SCL {
            //  type = "internal";
            //  number = <1>;
            //};
           // pin_define@DISPLAY_I2C_PORT {
            //   type="internal";
            //   number=<0>;
            // };
            //pin_define@DISPLAY_DSI_PORT {
             //  type="internal";
             //  number=<0>;
             //};
https://www.waveshare.com/wiki/Compute_ ... _Board_(B)
The two different dt-blob files just alternate which of the above code blocks are commented out.. I don't believe I can just uncomment both sections to enable both connectors, I suppose it wouldn't hurt to try..

aBUGSworstnightmare
Posts: 3487
Joined: Tue Jun 30, 2015 1:35 pm

Re: Dual DSI Screens

Wed Aug 04, 2021 6:11 am

Why do you look at the official CM4Io schematic when you need the one related to your waveshare boad https://www.waveshare.com/w/upload/c/c6 ... SchDoc.pdf?
You need to add two zero ohm resistors to enable I2C for DSI0.
A dt-blob is only needed for the Firmware FKMS graphics driver, and as the firmware is NOT supporting dual DSI display (at the time of writing this) you don't need to spend any effort in this.

If you want to deal with KMS then you need a display driver and overlay, but not a blob.

Another question: how do you supply power to these displays? Via the FPC only? Is the board able to supply enough current to your 7in screen?

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11645
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Dual DSI Screens

Wed Aug 04, 2021 8:51 am

aBUGSworstnightmare is correct that dual DSI displays will not be supported by the firmware, so there's nothing you can do in dt-blob.bin to enable both. There is no intention to add such functionality either.

DSI under KMS is currently my main bugbeartask, and that should permit dual DSI displays.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

KKlouzal
Posts: 9
Joined: Wed Jul 07, 2021 11:19 pm

Re: Dual DSI Screens

Thu Aug 05, 2021 2:17 am

I've looked at the schematics for my board and 0ohm resistors are already fitted on R43 & R56. It looks like there is some other means of switching between which output is being used, from what I can tell it's the blob file. Their support was pretty much useless so not sure what to do at this point, i guess use an hdmi display in conjunction with one of the dsi..

aBUGSworstnightmare
Posts: 3487
Joined: Tue Jun 30, 2015 1:35 pm

Re: Dual DSI Screens

Thu Aug 05, 2021 6:23 am

KKlouzal wrote:
Thu Aug 05, 2021 2:17 am
I've looked at the schematics for my board and 0ohm resistors are already fitted on R43 & R56. It looks like there is some other means of switching between which output is being used, from what I can tell it's the blob file. Their support was pretty much useless so not sure what to do at this point, i guess use an hdmi display in conjunction with one of the dsi..
you have been informed by different persons that dual DSI under FKMS will not happen and dual DSI under KMS is work in progress.
So yes! Your only option atm is using ONE of the DSI modules together with one or two HDMI monitors.
If you want to connect that single DSI display to DSI0 then you need to change the blob. But why should one do this as DSI1 is happyily available?

KKlouzal
Posts: 9
Joined: Wed Jul 07, 2021 11:19 pm

Re: Dual DSI Screens

Fri Aug 06, 2021 2:11 am

My apologies, it was negligence on my part for not doing the research upfront, instead I assumed that since this was the CM4, being a mature product, two DSI ports must mean support for two DSI screens. It's great to know this is currently one of the engineers main focus. I will just do with one screen for now and wait for support on the other.
As far as everything else goes I should again apologize up front because unless I am mistaken nobody has directly said it was either/or and not possible to use both until now. Everything I've read eludes to the fact that you just need to bridge some pins and you're off to the races.
Thanks for setting a noob straight.

aBUGSworstnightmare
Posts: 3487
Joined: Tue Jun 30, 2015 1:35 pm

Re: Dual DSI Screens

Fri Aug 06, 2021 5:08 am

What you are looking for is dual DSI with the official 7in display, in your case knock-offs/clones of it.
That's not possible atm and is worked on (I assume that's under jamesh's responsibility) for KMS driver. CM4 defaults to FKMS; it will not be possible for that firmware based graphics driver.

Another story is using the DSI output with different displays. Has been proofed working under KMS (there are also the related threads on the forum here) and you can see the results here https://github.com/harlab/CM4_LCD_LT070ME05000 and here https://github.com/harlab/CM4_LCD_JD9365Z.
There are other threads dealing with DSI display interfacing (or some DSI bridges) on the forum. AFIK all of them are working with DSI1 atm, but once code development is finished one can decide to use DSI0 or DSI1 (where DSI0 will only allow for lower resolution displays, maxes out most likely at 1360x768, maybe w little more if color dept gets recuced to 6-bit i.e.).

So, for your use case - dual DSI knock-off displays of different size - there is no solution atm, but in general both DSI interfaces are working. I would volunteer testing it with a combination of 7in + DSI bridge but I don't have an official 7in display. I've not tested with two bridges connected as the driver is still under development, means opening up another box of worms makes no sense atm.

My bridge board is using TI SN65DSI84 MIPI-to-LVDS chip, it's the black PCB on the picture below. If my time permits I will see if the current driver workes on DSI0 (should only need to change the overlay), as the display I'm testing with is 800x1280pixels, means well within the limits of 2-lane DSI.
Will let you know the results.
Image

aBUGSworstnightmare
Posts: 3487
Joined: Tue Jun 30, 2015 1:35 pm

Re: Dual DSI Screens

Fri Aug 06, 2021 2:18 pm

Just confirmed DSI0 is running in dual-lane at a resolution of 800x1280pixels@60Hz.
IMG_20210806_161153.jpg
Jumpers J6 were in place, bridge device is connected to DSI0
IMG_20210806_161153.jpg (136.78 KiB) Viewed 704 times
IMG_20210806_161147.jpg
DSI0 running a 800x1280pixels display under KMS
IMG_20210806_161147.jpg (121.92 KiB) Viewed 704 times

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 29348
Joined: Sat Jul 30, 2011 7:41 pm

Re: Dual DSI Screens

Fri Aug 06, 2021 2:22 pm

aBUGSworstnightmare wrote:
Fri Aug 06, 2021 5:08 am
What you are looking for is dual DSI with the official 7in display, in your case knock-offs/clones of it.
That's not possible atm and is worked on (I assume that's under jamesh's responsibility) for KMS driver. CM4 defaults to FKMS; it will not be possible for that firmware based graphics driver.
I've moved departments, so 6by9 is the display guy nowadays, on FKMS and KMS. We're not doing ay legacy dev work any more. KMS is the future.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Working in the Applications Team.

aBUGSworstnightmare
Posts: 3487
Joined: Tue Jun 30, 2015 1:35 pm

Re: Dual DSI Screens

Fri Aug 06, 2021 2:28 pm

jamesh wrote:
Fri Aug 06, 2021 2:22 pm
aBUGSworstnightmare wrote:
Fri Aug 06, 2021 5:08 am
What you are looking for is dual DSI with the official 7in display, in your case knock-offs/clones of it.
That's not possible atm and is worked on (I assume that's under jamesh's responsibility) for KMS driver. CM4 defaults to FKMS; it will not be possible for that firmware based graphics driver.
I've moved departments, so 6by9 is the display guy nowadays, on FKMS and KMS. We're not doing ay legacy dev work any more. KMS is the future.
@jamesh: thanks for this announcment and final clarification! With my latest post I wanted to confirm DSI0 is available to be used under KMS, so it should - in theory - be possible to run both DSI interfaces simultaneously under KMS. I know 6by9 is busy with looking at vc4-dsi and other drivers to make sure DSI interfaces behave as they should (i.e. 4-lane DSI works for the JDI but not with the bridge), but basically both are confirmed working.

gurucafe
Posts: 7
Joined: Thu Sep 16, 2021 2:24 am

Re: Dual DSI Screens

Thu Sep 16, 2021 1:53 pm

aBUGSworstnightmare wrote:
Fri Aug 06, 2021 2:18 pm
Just confirmed DSI0 is running in dual-lane at a resolution of 800x1280pixels@60Hz.
Nice to hear DSI0 working with KMS driver. Could you please share me what did you make change in the overlay? Thank you.
6by9 wrote:
Wed Aug 04, 2021 8:51 am
DSI under KMS is currently my main bugbeartask, and that should permit dual DSI displays.
@6by9 I'm looking forward to see dual DSI screens able to be used simultaneously. Please keep me posted if there is any updates on this. Thank you.

aBUGSworstnightmare
Posts: 3487
Joined: Tue Jun 30, 2015 1:35 pm

Re: Dual DSI Screens

Sat Sep 18, 2021 6:40 am

gurucafe wrote:
Thu Sep 16, 2021 1:53 pm
aBUGSworstnightmare wrote:
Fri Aug 06, 2021 2:18 pm
Just confirmed DSI0 is running in dual-lane at a resolution of 800x1280pixels@60Hz.
Nice to hear DSI0 working with KMS driver. Could you please share me what did you make change in the overlay? Thank you.
6by9 wrote:
Wed Aug 04, 2021 8:51 am
DSI under KMS is currently my main bugbeartask, and that should permit dual DSI displays.
@6by9 I'm looking forward to see dual DSI screens able to be used simultaneously. Please keep me posted if there is any updates on this. Thank you.
Please note that I'm not using the official 7in DSI display! Pictures shown are from a custom hardware/Linux driver which is under development. So, my overlay is of no use for you!

I don't own an official 7in DSI display so can't test this myself.
the overlay you need to look at is https://github.com/raspberrypi/linux/bl ... verlay.dts

'Use at own risk' you can:
- change target of 'fragment@0' to dsi0
- change target of 'fragment@2' to i2c0
- remove fragment@3 and fragment@4
- save (rename) and compile/install your new overlay
- make sure your CM4 board is configured to enable DSI0 (jumpers in place on the CM4IO; can't speak of other baseboards)
- change your config.txt and add below:

Code: Select all

# ignore the official DSI display
ignore_lcd=1

# Enable full KMS driver
dtoverlay=vc4-kms-v3d

#7in DSI on DSI0, uses I2C0 @ GPIO0/1
dtoverlay=i2c0,pins_0_1
dtoverlay=vc4-kms-dsi-7inch
- connect your 7in DSI to DSI0 and start your PI

if you're lucky this will bring your DSI screen to life on DSI0. Maybe you will have to add the touch overlay to. your config.txt in addition to make it work.
Last edited by aBUGSworstnightmare on Sat Sep 18, 2021 11:11 am, edited 1 time in total.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 29348
Joined: Sat Jul 30, 2011 7:41 pm

Re: Dual DSI Screens

Sat Sep 18, 2021 7:23 am

The Pi 7" display works now under KMS but you will need the very very latest code from the repo.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Working in the Applications Team.

gurucafe
Posts: 7
Joined: Thu Sep 16, 2021 2:24 am

Re: Dual DSI Screens

Sat Sep 18, 2021 8:34 am

aBUGSworstnightmare wrote:
Sat Sep 18, 2021 6:40 am

...

if you're lucky this will bring your DSI screen to life on DSI0. Maybe you will have to add the touch overlay to. your config.txt in addition to make it work.
Thank you for your guidance. I also don't have official 7in DSI screen. I hope to try with 5in DSI LCD on Monday and will post if there is any update.

gurucafe
Posts: 7
Joined: Thu Sep 16, 2021 2:24 am

Re: Dual DSI Screens

Sat Sep 18, 2021 8:41 am

jamesh wrote:
Sat Sep 18, 2021 7:23 am
The Pi 7" display works now under KMS but you will need the very very latest code from the repo.
Thank you for the update, I'm not sure, this mean we able to used two PI 7" display simultaneously?

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11645
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Dual DSI Screens

Sat Sep 18, 2021 8:51 am

DSI0 is currently not quite playing ball with the 7" screen though. It's as if the vertical sync has gone and the thing rolls. I haven't worked out if it is the host or bridge that is doing the wrong thing.
A couple of other jobs to resolve first, but it's a moderately high priority to solve.

@aBUGSworstnightmare
dtoverlay=i2c0,pins_0_1 is generally wrong. Note the help text:

Code: Select all

ame:   i2c0
Info:   Change i2c0 pin usage. Not all pin combinations are usable on all
        platforms - platforms other then Compute Modules can only use this
        to disable transaction combining.
        Do NOT use in conjunction with dtparam=i2c_vc=on. From the 5.4 kernel
        onwards the base DT includes the use of i2c_mux_pinctrl to expose two
        muxings of BSC0 - GPIOs 0&1, and whichever combination is used for the
        camera and display connectors. This overlay disables that mux and
        configures /dev/i2c0 to point at whichever set of pins is requested.
        dtparam=i2c_vc=on will try and enable the mux, so combining the two
        will cause conflicts.
Just using i2c0 in the overlay should be sufficient to use the other port of i2c0mux.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

aBUGSworstnightmare
Posts: 3487
Joined: Tue Jun 30, 2015 1:35 pm

Re: Dual DSI Screens

Sat Sep 18, 2021 9:24 am

6by9 wrote:
Sat Sep 18, 2021 8:51 am
@aBUGSworstnightmare
dtoverlay=i2c0,pins_0_1 is generally wrong. Note the help text:

Code: Select all

ame:   i2c0
Info:   Change i2c0 pin usage. Not all pin combinations are usable on all
        platforms - platforms other then Compute Modules can only use this
        to disable transaction combining.
        Do NOT use in conjunction with dtparam=i2c_vc=on. From the 5.4 kernel
        onwards the base DT includes the use of i2c_mux_pinctrl to expose two
        muxings of BSC0 - GPIOs 0&1, and whichever combination is used for the
        camera and display connectors. This overlay disables that mux and
        configures /dev/i2c0 to point at whichever set of pins is requested.
        dtparam=i2c_vc=on will try and enable the mux, so combining the two
        will cause conflicts.
Just using i2c0 in the overlay should be sufficient to use the other port of i2c0mux.
I don't have a multiplexer in my overlay, nor dtparam=i2c_vc=on in my config.txt.

All I can say is that it's working that way. If you want to replicate I can post the overlay which I've used here viewtopic.php?f=98&t=316918#p1898635, which is using the same method as described above.

gurucafe
Posts: 7
Joined: Thu Sep 16, 2021 2:24 am

Re: Dual DSI Screens

Mon Sep 20, 2021 11:03 am

gurucafe wrote:
Sat Sep 18, 2021 8:34 am
aBUGSworstnightmare wrote:
Sat Sep 18, 2021 6:40 am

...

if you're lucky this will bring your DSI screen to life on DSI0. Maybe you will have to add the touch overlay to. your config.txt in addition to make it work.
Thank you for your guidance. I also don't have official 7in DSI screen. I hope to try with 5in DSI LCD on Monday and will post if there is any update.
@aBUGSworstnightmare Thanks again. Just confirmed DSI0 is running with 5in DSI LCD at 800x480.
dsi0-rotate.jpg
5in DSI LCD on DSI0 at 800x480
dsi0-rotate.jpg (108.83 KiB) Viewed 217 times

Actually, I have same 5in DSI LCD connected on DSI1, However it seems both are not running if I try to load two overlays (one for DSI0 and another for DSI1) at the same time.

@6by9 This mean the current vc4-dsi driver still cannot used with two DSI LCDs simultaneously or what I have to update in the vc4-kms overlay? Thank you.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11645
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Dual DSI Screens

Mon Sep 20, 2021 12:00 pm

gurucafe wrote:
Mon Sep 20, 2021 11:03 am
@6by9 This mean the current vc4-dsi driver still cannot used with two DSI LCDs simultaneously or what I have to update in the vc4-kms overlay? Thank you.
Technically we don't provide support for the OSOYOO displays - they've reverse engineered the official Raspberry Pi panel and made something that should work in the same way. If it doesn't work, it's not actually our problem.
I'm running with the latest kernel and firmware (use "sudo rpi-update" or build your own kernel from the repo), and adding the following overlay as vc4-kms-dsi-7inch-disp0

Code: Select all

/*
 * Device Tree overlay for RaspberryPi 7" Touchscreen panel
 *
 */

/dts-v1/;
/plugin/;

//#include "edt-ft5406.dtsi"

/ {
	compatible = "brcm,bcm2835";

	fragment@0 {
		target = <&dsi0>;
		__overlay__ {
			#address-cells = <1>;
			#size-cells = <0>;
			status = "okay";
			port {
				dsi_out: endpoint {
					remote-endpoint = <&bridge_in>;
				};
			};
			bridge@0 {
				reg = <0>;
				compatible = "toshiba,tc358762";
				vddc-supply = <&reg_bridge>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0>;
						bridge_in: endpoint {
							remote-endpoint = <&dsi_out>;
						};
					};

					port@1 {
						reg = <1>;
						bridge_out: endpoint {
							remote-endpoint = <&panel_in>;
						};
					};
				};
			};
		};
	};

	fragment@1 {
		target-path = "/";
		__overlay__ {
			panel_disp0: panel_disp1@1 {
				reg = <1>;
				compatible = "raspberrypi,7inch-dsi", "simple-panel";
				backlight = <&reg_display>;
				power-supply = <&reg_display>;

				port {
					panel_in: endpoint {
						remote-endpoint = <&bridge_out>;
					};
				};
			};

			reg_bridge: reg_bridge@1 {
				reg = <1>;
				compatible = "regulator-fixed";
				regulator-name = "bridge_reg";
				gpio = <&reg_display 0 0>;
				vin-supply = <&reg_display>;
				enable-active-high;
			};
		};
	};

	fragment@2 {
		target = <&i2c_vc>;
		__overlay__ {
			#address-cells = <1>;
			#size-cells = <0>;
			status = "okay";

			reg_display: reg_display@45 {
				compatible = "raspberrypi,7inch-touchscreen-panel-regulator";
				reg = <0x45>;
				gpio-controller;
				#gpio-cells = <2>;
			};
		};
	};

	fragment@3 {
		target = <&i2c0if>;
		__overlay__ {
			status = "okay";
		};
	};

	fragment@4 {
		target = <&i2c0mux>;
		__overlay__ {
			status = "okay";
		};
	};

	fragment@10 {
		target = <&i2c_vc>;
		__overlay__ {
			#address-cells = <1>;
			#size-cells = <0>;
			status = "okay";
			ft5406: ts@38 {
				compatible = "edt,edt-ft5406";
				reg = <0x38>;

				touchscreen-size-x = < 800 >;
				touchscreen-size-y = < 480 >;

				vcc-supply = <&reg_display>;
				reset-gpio = <&reg_display 1 1>;
			};
		};
	};

	fragment@11 {
		target = <&i2c0if>;
		__overlay__ {
			status = "okay";
		};
	};
};
aBUGSworstnightmare's suggestion of removing the i2c0mux means you won't be able to run two panels together. The above retains it, therefore we can communicate with both.
The touchscreen overlay needs to be resolved to apply to create unique node names for the two instances - DT isn't always simple when trying to do that kind of stuff.
As I said, for me I get both panels come up, but the one connected to DSI0 is rolling as if there is a vsync issue.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

aBUGSworstnightmare
Posts: 3487
Joined: Tue Jun 30, 2015 1:35 pm

Re: Dual DSI Screens

Mon Sep 20, 2021 1:07 pm

6by9 wrote:
Mon Sep 20, 2021 12:00 pm
aBUGSworstnightmare's suggestion of removing the i2c0mux means you won't be able to run two panels together. The above retains it, therefore we can communicate with both.
The touchscreen overlay needs to be resolved to apply to create unique node names for the two instances - DT isn't always simple when trying to do that kind of stuff.
As I said, for me I get both panels come up, but the one connected to DSI0 is rolling as if there is a vsync issue.
Got your point!
Is is possible to change the order when the DSI displays come up (in case DSI1 is first atm, DSI0 is second - > rolling on DSI0) to check if the problem is related to the point when they get initialized?

Have you maybe check if this happenes with i. e. The DSI Bridge on one of them and the official DSI on the other as well?

Should help you to figure out where to look for the issue.
Have not tested what happens in case of two bridges or dual DSI from one bridge.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11645
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Dual DSI Screens

Mon Sep 20, 2021 2:28 pm

aBUGSworstnightmare wrote:
Mon Sep 20, 2021 1:07 pm
Is is possible to change the order when the DSI displays come up (in case DSI1 is first atm, DSI0 is second - > rolling on DSI0) to check if the problem is related to the point when they get initialized?

Have you maybe check if this happenes with i. e. The DSI Bridge on one of them and the official DSI on the other as well?

Should help you to figure out where to look for the issue.
Have not tested what happens in case of two bridges or dual DSI from one bridge.
Load order is largely random, although the pipeline doesn't get enabled until all parts are bound.
DSI0 can only be fed from HVS channel 0, so there is a constraint there. That should be observed anyway as the kernel knows about it (there were more restrictions on Pi0-3).
It'll be a case of looking at the PV and DSI block configurations. Hopefully it should be fairly obvious, but it just needs a little time.

*edit* It's actually more bizarre. A V1.0 screen rolls. A V1.1 screen doesn't initialise (remains white). Both cases are with only DSI0 and HDMI 0 active. Same with only DSI0.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11645
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Dual DSI Screens

Tue Sep 21, 2021 7:11 am

Ooh, to quote Gilbert and Sullivan, "Here's a how-de-do" for those who have cloned the Pi display.

In order to get the Raspberry Pi display to work with the Linux drivers I've had to swap to an alternate set of commands to send to the Atmel. Those haven't been used or published before, and rely on the specific wiring of the Pi display board. There's no guarantee that a cloned display will work with those commands, and it may or may not work if we revert to the old generic POWERON command as certainly the TC358762 bridge needed the DSI host in LP-11 before powering on.
We don't support the cloned displays, therefore whose job is it to get them to work under KMS?

I do have an Osoyoo 3.5" display turning up today, so I'll see what it does. If it's simple then that's easy, but if it is fussy about power sequencing then it may be impossible to get the touch overlay working within KMS at the same time as the panel. Ho hum.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11645
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Dual DSI Screens

Tue Sep 21, 2021 1:41 pm

6by9 wrote:
Tue Sep 21, 2021 7:11 am
I do have an Osoyoo 3.5" display turning up today, so I'll see what it does. If it's simple then that's easy, but if it is fussy about power sequencing then it may be impossible to get the touch overlay working within KMS at the same time as the panel. Ho hum.
It looks like there's hope - it appears to just work even with the new driver.
Rather bizarrely it appears to respond on all I2C addresses, so you may have issues trying to run a camera or other I2C device (eg the fan controller or RTC on the CM4IO) on the same bus.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

Return to “Compute Module”