Display¶
Introduction¶
Display Interfaces¶
The VAR-SOM-AM62P exports the AM62Px Sitara’s triple display support over Open LVDS Display Interface transmitters (OLDITX) provided by the Display Subsystem (DSS) with the following main features:
- Triple display support over OLDI (LVDS) (1x OLDI-DL, 1x or 2x OLDI-SL), DSI or DPI
- OLDI-SL (Single Link): up to 1920 x 1080 at 60fps (165MHZ Pixel Clock)
- OLDI-DL (Dual Link): up to 3840 x 1080 at60fps (150MHz Pixel Clock)
- MIPI DSI: with 4 Lane MIPI D-PHY supports up to 3840 x 1080 at 60fps (300MHz Pixel Clock)
- DPI (24-bit RGB parallel interface): up to 1920 x 1080 at 60fps (165MHz pixel clock)
- Four display pipelines with hardware overlay support. A maximum of two display pipelines may be used per display.
- Supports safety features such as freeze frame detection and data correctness check
Adding custom LVDS panel¶
VAR-SOM-AM62P evaluation kit comes with 800x480 LCD panel. VAR-SOM-AM62P DTS file was created with this panel in mind. To support your custom LVDS panel, you should make several modifications
Referencing custom panel in the DTS file¶
The following code references the Variscite panel in arch/arm64/boot/dts/ti/k3-am62p5-var-som-symphony.dts under kernel source tree:
display {
compatible = "panel-lvds";
backlight = <&backlight>;
width-mm = <153>;
height-mm = <87>;
label = "gktw70sdae4se";
data-mapping = "jeida-24";
status = "okay";
panel-timing {
clock-frequency = <30000000>;
hactive = <800>;
vactive = <480>;
hback-porch = <40>;
hfront-porch = <40>;
vback-porch = <29>;
vfront-porch = <13>;
hsync-len = <48>;
vsync-len = <3>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
/* unlike most panels this panel expects pixelclk-active = <1> */
pixelclk-active = <1>;
};
port@0 {
lcd_in0: endpoint {
remote-endpoint = <&oldi0_dss0_out>;
};
};
};
You should modify the "data-mapping" and "panel-timings" properties to match your panel specification and rebuild the DTB file.
Rotating the Weston display¶
To rotate the Weston display, edit /etc/xdg/weston/weston.ini.
For example, rotate the display 90 degrees:
Using multiple LVDS displays (clone mode)¶
The AM62p supports to use two LVDS displays in clone mode. In that mode both displays show the same pixel data.
For demonstration purposes Variscite provides a setup with a second LVDS display. This display is also shipped with the EVK, but an additional display can also be purchased here.
You only need to make adjustments in the Device Tree to use two displays in clone mode. For convenience, the changes are provided in the following file:
Please see the Guide Yocto Build Linux from Source Code for details on how to build the Device Tree without Yocto.
Using two LVDS displays in independent mode¶
The AM62p also supports to drive two independent LVDS displays. Each display is presented to the system as an individual card.
You can extend the Weston Desktop to all displays or you can run different applications on different displays.
Once again, we will use the identical display that is shipped with the EVK, which can also be purchased here.
For the kernel to set up both displays changes have to be made in the Device Tree. For convenience, the changes are provided in the following file:
Please see the Guide Yocto Build Linux from Source Code for details on how to build the Device Tree without Yocto.
Testing the displays¶
The Recovery SD Card comes with an easy tool that can be used to test individual displays.
First, you need to make sure that the display is not used by a Display Server such as Weston
# systemctl stop weston.service
Stopping 'weston.service', but its triggering units are still active:
weston.socket
You can ignore the warning about its triggering units.
Then you can run the test application:
# kmstest --device /dev/dri/card0
Connector 0/@41: LVDS-1
Crtc 0/@39: [email protected] 30.000 800/40/48/40/- 480/13/3/29/- 62 (61.58) 0xa 0x48
Plane 0/@32: 0,0-800x480
Fb 51 800x480-XR24
press enter to exit
# kmstest --device /dev/dri/card1
Connector 0/@41: LVDS-2
Crtc 0/@39: [email protected] 30.000 800/40/48/40/- 480/13/3/29/- 62 (61.58) 0xa 0x48
Plane 0/@32: 0,0-800x480
Fb 51 800x480-XR24
press enter to exit
A test pattern should appear on the individual displays.
Extending the Weston Desktop to multiple displays¶
In its default configuration (as set up by the SD Recovery Card Image), the Weston Compositor will only use the first display. You can make the following adjustments to the configuration to extend the desktop to be shown on both displays.
The first configuration file is the systemd service file that starts Weston: weston.service
...
[Service]
# Requires systemd-notify.so Weston plugin.
Type=notify
EnvironmentFile=/etc/default/weston
ExecStart=/usr/bin/weston -B drm --modules=systemd-notify.so --drm-device=card0 --additional-devices=card1
...
Only the ExecStart line is relevant. In order to be able to use multiple cards, the DRM backend must be
used instead of the Wayland backend. Also you need to add the parameter for the DRM device and the
additional DRM device.
Info
Even if you switch to the DRM backend, Wayland will still be used under the hood.
Note
Weston doesn't support the positioning of individual displays. If you need such a feature you will need to use a different Wayland Compositor