VAR-SOM-MX6 LVDS Jethro

From Variscite Wiki
VAR-SOM-MX6 - LVDS

LVDS on Variscite's EVKs

On VAR-SOLOCUSTOMBOARD and VAR-DT6CustomBoard:

  • LVDS1 is the primary default display, used as 18bit LVDS
  • LVDS0 is the the secondary display.

Note: On VAR-SOLOCUSTOMBOARD, LVDS0 and LVDS1 headers are not pin-2-pin compatible. Variscite's provided display can not be connected to LVDS0 header.

On VAR-MX6CUSTOMBOARD:

  • LVDS0 is the primary default display, used as 24bit LVDS, and connected to an RGB display, using LVDS->RGB converter.
  • LVDS1 is the the secondary display.

Resistive/Capacitive screen automatic selection on boot time

Automatic Device Tree selection

Switching between LVDS0 and LVDS1 as main display

Switching between the LVDS channels requires changing the location of the "primary" property to the desired lvds-channel sub-node of the ldb node in the device tree.
The relevant device tree source file for VAR-SOLOCUSTOMBOARD and VAR-DT6CustomBoard is arch/arm/boot/dts/imx6qdl-var-solocb-dt6cb-displays.dtsi,
for VAR-MX6CUSTOMBOARD with a capacitive touchscreen it's arch/arm/boot/dts/imx6qdl-var-mx6cb-cdisplay.dtsi
and for VAR-MX6CUSTOMBOARD with a resistive touchscreen it's arch/arm/boot/dts/imx6qdl-var-mx6cb-rdisplay.dtsi.

For Example:
To set the display to be LVDS0 by default on VAR-SOLOCUSTOMBOARD / VAR-DT6CustomBoard, edit arch/arm/boot/dts/imx6qdl-var-solocb-dt6cb-displays.dtsi and move the "primary" property from the lvds-channel@1 node to the lvds-channel@0 node.

	lvds-channel@0 {
		fsl,data-mapping = "spwg";
		fsl,data-width = <24>;
		crtc = "ipu1-di0";
		primary;
		status = "okay";

		display-timings {
			native-mode = <&timing0>;
			timing0: hsd100pxn1 {
				clock-frequency = <35714000>;
				hactive = <800>;
				vactive = <480>;
				hback-porch = <24>;
				hfront-porch = <15>;
				vback-porch = <13>;
				vfront-porch = <20>;
				hsync-len = <20>;
				vsync-len = <13>;
			};
		};
	};

Please take a look on the wiki section for kernel out of tree to see how to compile the device tree.