VAR-SOM-MX6 LVDS

From Variscite Wiki
VAR-SOM-MX6 - LVDS

LVDS on Variscite's EVKs

On VAR-SOLOCUSTOMBOARD:

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

Note: 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.

LVDS boot arguments

Resistive/Capacitive alternate screen

Variscite expand the default display settings to support alternate display without any requirement to change the device tree. During the boot sequence Variscite u-boot will add screen_alternate=yes option to enable selection of the second display settings (capacitive display).
For example:

U-Boot # printenv mmcargs
mmcargs=setenv bootargs console=${console},${baudrate} ${smp} video=mxcfb1:off root=${mmcroot} 
screen_alternate=yes

The developer can prevent the modification of u-boot by settings var_auto_fdt_file=N.

U-Boot # setenv var_auto_fdt_file=N

Switching between LVDS0 and LVDS1 as main display

Switching between the LVDS channels requires changing the "primary" of the LVDS section flag in the device tree. Example:
Setting display to be LVDS1 by default: edit arch/arm/boot/dts/imx6qdl-var-som.dtsi and set section of the lvds1. When you set the "primary" property to the LVDS1 struct, make sure you remove it from the LVDS0 struct

lvds-channel@1 {
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
crtc = "ipu1-di1";
primary;
status = "okay";
display-timings {
native-mode = <&timing1>;
timing1: hsd100pxn1 {
clock-frequency = <35714000>;
hactive = <800>;
vactive = <480>;
hback-porch = <28>;
hfront-porch = <17>;
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.