VAR-SOM-AM62 Display
This page is using the default release am62-yocto-dunfell-5.10.140_08.06.00.42-v1.0.
To view this page for a specific Variscite SoM and software release, please follow these steps:
- Visit variwiki.com
- Select your SoM
- Select the software release
Introduction
Display Interfaces
The VAR-SOM-AM62 exports the AM62x Sitara’s two single-link Open LVDS Display Interface transmitters (OLDITX) provided by the Display Subsystem (DSS) with the following main features:
- Up to 170MHz input pixel data for each interface support: RGB[23:0], VS, HS, DE. Limited by the maximum data rate provided by the DISPC video port output connected to OLDITX.
- One single-link OLDI output link mode.
- Two single-link (duplicate) OLDI output link mode.
- One dual-link OLDI output link mode.
- 18-bit or 24-bit output with OLDI mapping modes (three or four LVDS data channels, one clock channel) per instance.
- LVDS signaling: Compliant with ANSI/TIA/EIA644-A standard (Electrical Characteristics of Low Voltage Differential Signaling (LVDS) Interface Circuits).
- LVDS transmit throughput performance: 1920x1080@60fps.
- Up to 165 MHz pixel clock support with Independent PLL.
- Test support features: Built-in pattern generator; loopback mode.
Adding custom LVDS panel
evaluation kit comes with 800x480 LCD panel. 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/ under kernel source tree:
display { compatible = "sgd,gktw70sdae4se"; backlight = <&backlight>; status = "okay"; port@0 { lcd_in0: endpoint { remote-endpoint = <&oldi_out0>; }; }; };
The compatible string is used to match the panel_desc structure in drivers/gpu/drm/panel/panel-simple.c:
... static const struct of_device_id platform_of_match[] = { }, { .compatible = "sgd,gktw70sdae4se", .data = &sgd_gktw70sdae4se, }, { }; ... static const struct drm_display_mode sgd_gktw70sdae4se_mode = { .clock = 30000, .hdisplay = 800, .hsync_start = 800 + 40, .hsync_end = 800 + 40 + 48, .htotal = 800 + 40 + 48 + 40, .vdisplay = 480, .vsync_start = 480 + 13, .vsync_end = 480 + 13 + 3, .vtotal = 480 + 13 + 3 + 29, }; static const struct panel_desc sgd_gktw70sdae4se = { .modes = &sgd_gktw70sdae4se_mode, .bpc = 8, .num_modes = 1, .size = { .width = 154, .height = 87, }, .delay = { .prepare = 50, .disable = 50, }, .bus_flags = DRM_BUS_FLAG_DE_HIGH, .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, .connector_type = DRM_MODE_CONNECTOR_LVDS, };
You should modify the "panel_desc" and "drm_display_modes" structures to match your panel specification and rebuild the kernel.
Rotating the Weston display
To rotate the Weston display, edit /etc/xdg/weston/weston.ini.
For example, rotate the display 90 degrees:
[output] name=LVDS-1 transform=90