Use case:
iMX8QXP system can be a video input source to another system.
Hardware Pins:
LCDIF_D00 ~ LCDIF_D07
LCDIF_CLK
LCDIF_VSYNC
LCDIF_HSYNC
LCDIF_EN
Reference patch:
It is based on L5.4.70_2.3.0 GA BSP.
File: L5.4.70_2.3.0-iMX8QXP-LCDIF-add-YUV422-8-bits-output.patch
Customer can change the timing parameters in file "panel-lcdif-yuv422.c" as needed, the default timing is a 1280x720 P30 mode:
static const struct display_timing yuv422_lcd_timing = { .pixelclock = { 74250000, 74250000, 74250000 }, .hactive = { 1280, 1280, 1280 }, .hfront_porch = { 220, 220, 220 }, .hback_porch = { 110, 110, 110 }, .hsync_len = { 40, 40, 40 }, .vactive = { 720, 720, 720 }, .vfront_porch = { 20, 20, 20 }, .vback_porch = { 5, 5, 5 }, .vsync_len = { 5, 5, 5 }, .flags = DISPLAY_FLAGS_DE_HIGH, };
Test application:
drm_test_yuv.zip: it can set framebuffer to UYVY mode, in this case, no CSC is needed, the data in framebuffer memory will be same as output on display data interface.
drm_test_rgb.zip: it can set framebuffer to RGBA mode, in this case, RGB to YUV CSC is needed, application can draw RGB data into framebuffer as normal, the LCDIF will convert it to YUV422 format on the fly, then output the YUV data to display interface.
View full article