You are here: Digi Embedded Yocto > System development > Linux v4.1 Board Support Package > Devices and interfaces > Video

Video

The NXP i.MX6UL provides a 24-bit RGB LCD interface. The CPU also provides a Pixel Processing Pipeline (PXP) used to process video and graphics data before sending to the LCD.

Kernel configuration

You can manage the video support through the following kernel configuration options:

These options are enabled as built-in on the default ConnectCore 6UL kernel configuration file.

Platform driver mapping

The driver for the video interface is located at:

File

Description

drivers/video/fbdev/mxsfb.c

Video driver

drivers/media/platform/mxc/output/mxc_pxp_v4l2.c

PXP driver

Device tree bindings and customization

The LCD interface is documented at Documentation/devicetree/bindings/fb/mxsfb.txt.

The PXP system documented at Documentation/devicetree/bindings/video/fsl,pxp.txt.

The device tree contains entries for:

LCD interface

ConnectCore 6UL SBC Pro device tree 
 /* Parallel LCD */
&lcdif {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_lcdif_dat0_17
             &pinctrl_lcdif_clken>;
    display = <&f07a0102>;
    status = "disabled";
 
    f07a0102: display@0 {
        bits-per-pixel = <16>;
        bus-width = <18>;
 
        display-timings {
            native-mode = <&timing0>;
            timing0: timing0 {
                clock-frequency = <33260000>;
                hactive = <800>;
                vactive = <480>;
                hfront-porch = <50>;
                hback-porch = <0>;
                hsync-len = <128>;
                vback-porch = <25>;
                vfront-porch = <10>;
                vsync-len = <10>;
                hsync-active = <0>;
                vsync-active = <0>;
                de-active = <1>;
                pixelclk-active = <0>;
            };
        };
    };
 
    f10a0102: display@1 {
        bits-per-pixel = <16>;
        bus-width = <18>;
 
        display-timings {
            native-mode = <&timing1>;
            timing1: timing1 {
                clock-frequency = <45000000>;
                hactive = <1024>;
                vactive = <600>;
                hfront-porch = <10>;
                hback-porch = <0>;
                hsync-len = <136 176 216>;
                vback-porch = <0>;
                vfront-porch = <0>;
                vsync-len = <12 25 38>;
                de-active = <1>;
                pixelclk-active = <1>;
            };
        };
    };
};

On the ConnectCore 6UL SBC Pro device tree there are two LCD displays declared inside the lcdif node:

The property display selects which of the defined displays on the device tree is enabled. On the ConnectCore 6UL SBC Pro, the default selected display is the parallel Fusion 7".

The other supported display (Fusion 10") is interfaced via low-voltage differential signalling (LVDS). For this reason, the ConnectCore 6UL SBC Pro board has a parallel-to-LVDS bridge to convert the LCD lines into LVDS.

To select the LVDS Fusion 10" display instead, the following changes are needed:

ConnectCore 6UL SBC Pro 
diff --git a/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi b/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi
index db4210b3f571..e0cd7eb27560 100644
--- a/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi
+++ b/arch/arm/boot/dts/imx6ul-ccimx6ulsbc.dtsi
@@ -218,8 +218,10 @@
 &lcdif {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lcdif_dat0_17
-                    &pinctrl_lcdif_clken>;
-       display = <&f07a0102>;
+                    &pinctrl_lcdif_clken
+                    &pinctrl_lcdif_hvsync>;
+       lcd-supply = <&ldo4_ext>;       /* BU90T82 LVDS bridge power */
+       display = <&f10a0102>;
        status = "disabled";
        f07a0102: display@0 {

PXP system

ConnectCore 6UL SBC Pro device tree 
&pxp_v4l2 {
    status = "okay";
};
 
&pxp {
    status = "okay";
};

Using the video interface

When the video interface is available a bootup logo displays on the screen. For X11 images, a SATO desktop launches after Linux starts.

Playing a video

Due to the small size of the root file system partition, the default image only includes VP8 codec which allows to play WebM videos.

To play a video using Gstreamer:

gst-launch-1.0 playbin uri=file:///tmp/big-buck-bunny_trailer_640x360.webm

Note No video is included in the default image due to lack of space. You can download WebM demo videos from http://www.webmfiles.org/demo-files/.

Note You will only be able to play small-sized videos flawlessly due to the lack of a Video Processing Unit (VPU).

 

© 2017 Digi International Inc. All rights reserved.
Video updated on 05 May 2017 10:26:31 AM