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 = "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: