...
A new node into struct display_info_t const displays[] must to be added.
Starting from the above structure (data timings structure), edit the sub-structure "mode" by considering the following fields:
Field | Description |
---|---|
name | name of the resolution, to use at U-Boot level |
refresh | refrash rate of the panel (pixecl clock / [ ( tot horiz. pixel) * (tot vert. pixel) ] |
xres | horizontal active area |
yres | vertical active area |
pixclock | pixel clock in pico seconds |
left_margin | horizontal back porch |
right_margin | horizontal fromt porch |
upper_margin | vertical back porch |
lower_margin | vertical fromt porch |
hsync_len | horizontal SYNC |
vsync_len | vertical SYNC |
Code Block |
---|
}, { .bus = -1, .addr = -1, .pixfmt = IPU_PIX_FMT_RGB24, .detect = NULL, .enable = enable_lvds, .mode = { // Rif. Panel 1024x768 Panel UMSH-8596MD-15T .name = "LDB-1280P60", .refresh = 60, .xres = 1280, .yres = 800, .pixclock = 15128, .left_margin = 220, .right_margin = 40, .upper_margin = 21, .lower_margin = 7, .hsync_len = 60, .vsync_len = 10, .sync = 0, .vmode = FB_VMODE_NONINTERLACED } }, { .bus = -1, .addr = -1, .pixfmt = IPU_PIX_FMT_RGB24, .detect = NULL, .enable = enable_lvds, .mode = { // new data structure .name = "NEW CUSTOM RESOLUTION", .refresh = <custom refresh>, .xres = <custom horiz. resolution>, .yres = <custom vert. resolution>, .pixclock = <pixel clock in us>, .left_margin = <horiz. back porch>, .right_margin = <horiz. front porch>, .upper_margin = <vert. back porch>, .lower_margin = <vert. front porch>, .hsync_len = <horiz. SYNC lenght>, .vsync_len = <vert. SYNC lenght>, .sync = 0, .vmode = FB_VMODE_NONINTERLACED } |
...
DCCS can be connected to HDMI, DP or MIPI-DSI and supports up to 4K resolution;
eLCDIF can be connected only to MIPI-DSI and supports up to 1080p resolution.
Adding Custom LVDS / eDP panel support in panel-simple.c for i.MX8
The panel is configured by the following nodes located in the board device tree, for example arch/arm64/boot/dts/seco/seco-imx8mm-c61.dts:
...
Code Block |
---|
linux-seco/drivers/gpu/drm/panel/panel-simple.c |
Example: Configure the custom display timing for AUO Panel model p215hca
In the Seco BSP's the references panels are configured and tested with 10000 on/off cycle. Below the panel structure from drivers/gpu/drm/panel/panel-simple.c for LVDS 1920x1080 from Seco BSP9:
...
Note |
---|
The above configurations can be useless in some cases and prevent the panel from turning on. |
SECO preconfigured Panels
Below are some pre-built Device Tree Overlay files for i.MX8-based boards.
...