Choosing existing timing from device tree

I’ve added my own display timing at the end of display0 in imx7-colibri-eval-v3.dtsi. This LCD monitor will be connected over RGB. (On the Iris Board it’s the Unified Interface DisplayConnector (X3)). But how can I tell to Linux kernel, that it should boot into my own timing_wxga: 1280x800 and not the native one. Is overwriting the native-mode = <&timing_vga>; the only option?

&lcdif {
	display = <&display0>;
	status = "okay";

	display0: lcd-display {
		bits-per-pixel = <16>;
		bus-width = <18>;

		display-timings {
			native-mode = <&timing_vga>;

			/* Standard VGA timing */
			timing_vga: 640x480 {
				clock-frequency = <25175000>;
				hactive = <640>;
				vactive = <480>;
				hback-porch = <40>;
				hfront-porch = <24>;
				vback-porch = <32>;
				vfront-porch = <11>;
				hsync-len = <96>;
				vsync-len = <2>;

				de-active = <1>;
				hsync-active = <0>;
				vsync-active = <0>;
				pixelclk-active = <0>;
			};

			/* WVGA Timing, e.g. EDT ET070080DH6 */
			timing_wvga: 800x480 {
				clock-frequency = <33260000>;
				hactive = <800>;
				vactive = <480>;
				hback-porch = <216>;
				hfront-porch = <40>;
				vback-porch = <35>;
				vfront-porch = <10>;
				hsync-len = <128>;
				vsync-len = <2>;

				de-active = <1>;
				hsync-active = <0>;
				vsync-active = <0>;
				pixelclk-active = <0>;
			};
			
			<-- OTHERS ARE OMITTED -->
			
			/* Own LCD timing */
			timing_wxga: 1280x800 {
				clock-frequency = <66400000>;
				hactive = <800>;
				vactive = <1280>;
				hback-porch = <8>;
				hfront-porch = <32>;
				vback-porch = <4>;
				vfront-porch = <8>;
				hsync-len = <8>;
				vsync-len = <4>;

				de-active = <1>;
				hsync-active = <0>;
				vsync-active = <0>;
				pixelclk-active = <0>;
			};
		};
	};
};

HI @cicicok

Thanks for writing to the Toradex Community!

What exactly are you trying to do?
What is your application?

Best regards,
Jaski

I’m also trying to figure out the linkage between the dtb “display-timings” entries and enabling them via uboot and/or the kernel. We have a display we’ve been using on a different platform and I’d like to test it out using the colibri eval board (with imx7d installed). It doesn’t match any of the entries in the imx7-colibri.dtsi file, so I need to add another (the max clock is only 15M for our board). I can just change the native mode to point to the new entry, but it would sure be great if I could just set a uboot var (vidargs), or even change the mode via some sort of sysfs write (fb modes?) We’ve got it wired up on the breakout connector.

(Wasn’t sure if adding to this thread appropriate, but it really is exactly what I’m doing…)

Thanks!

Hi @DaveM

Could you create a new thread with all the information (datasheet, model, connection diagramm), thus we can look into your issue?

Thanks and best regards,
Jaski

Done - How do you use the different "display-timings" entries from a dtb inside of uboot and/or the kernel

Thanks, we will follow up the discussion in the new thread.