The aim of this section is to properly configure the LVDS settings.
...
Board | Type of product | Peripheral | Overlays |
---|---|---|---|
Q7-928 | Q7 Qseven module | HDMI LVDS |
|
μQ7-962 | μQ7 μQseven module | HDMI LVDS |
|
μQ7-A75-J | μQ7 μQseven module | HDMI LVDS |
|
SBC-A62-J | SBC | HDMI LVDS Sitronix touch(st1232) Goodix Touch(gt928) |
|
SBC-B08 | SBC | LVDS RGB |
|
SYS-B07-7 | System | ||
SBC-C23 | SBC | LVDS |
|
...
The MIPI DSI support on i.MX8-based boards is enabled via the device trees located in the Kernel source at arch/arm64/boot/dts/seco. MIPI-DSI on i.MX8 with IPU is supported with Synopsys hardware while i.MX8 uses the Mixel and the Advantec panels.
SECO boards with i.MX8 SoC support the following MIPI-DSI interfaces:
...
The connected panel is represented in the device tree in its own node. That node references the used LDB/LVDS channel through its node 'port' .One can either use the (RIFORMULARE). Both panel-simple or the and panel-lvds driver , both options are outlined belowcan be used, as described below. NON CAPISCO SE QUI DOVREBBE ESSERCI UN SECONDO PUNTO ELENCO, MI SEMBRA CHE LE OPZIONI DA SPIEGARE SIANO 2.
Panel Simple
Set the compatible property 'compatible' to an existing or newly added panel from the panel-simple driver.
Code Block |
---|
linux-seco/drivers/gpu/drm/panel/panel-simple.c |
To obtain For more information about onpanel-simple.txt
, you can please refer to the documentation presents available into the kernelKernel:
Code Block |
---|
linux-seco/Documentation/devicetree/bindings/display/panel/simple-panel.txt |
...
Configure the custom display timing for
...
AUO Panel model p215
The kernel Kernel writes Timing in panel-simple.c
and directly matches with short strings.
There are the following statements in the drivers/gpu/drm/panel/panel-simple.c file (NON HO CAPITO)
Code Block |
---|
static const struct display_timing auo_p215hca_high_timing = { .pixelclock = { 139000000, 160000000, 165000000 }, .hactive = { 1920, 1920, 1920 }, .hfront_porch = { 1, 85, 90 }, .hsync_len = { 1, 10, 45 }, .hback_porch = { 1, 85, 150 }, .vactive = { 1080, 1080, 1080 }, .vfront_porch = { 3, 20, 50 }, .vsync_len = { 6, 10,60 }, .vback_porch = { 11, 20, 37 }, .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW | DISPLAY_FLAGS_DE_LOW | DISPLAY_FLAGS_PIXDATA_NEGEDGE, }; static const struct panel_desc auo_p215hca_high = { .timings = &auo_p215hca_high_timing, .num_timings = 1, .bpc = 8, .size = { .width = 68, .height = 121, }, .delay = { /* * The panel spec recommends one second delay * to the below items. However, it's a bit too * long in pratical. Based on tests, it turns * out 100 milliseconds is fine. */ .prepare = 100, .enable = 100, .unprepare = 100, .disable = 100, }, .bus_format = MEDIA_BUS_FMT_RGB888_1X24,//MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, }; static const struct of_device_id platform_of_match[] = { { }, { .compatible = "auo,p215hca-high", .data = &auo_p215hca_high, }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, platform_of_match); |
...
After the timing parameter need to call the device tree file with compatible device on the panel.. (NON HO CAPITO)
Please refer the respective SECO boards device tree (.dts)file. For eg PER FARE COSA? QUELLO CHE è SCRITTO SOPRA?
E.g.: seco-imx8mm-c72.dts
Code Block |
---|
panel_lvds: lvds_panel { compatible = "auo,p215hca-high"; #address-cells = <1>; #size-cells = <0>; }; |
After completing the panel configuration customer needs , you need to configure the bridge with the following file:
Code Block |
---|
linux-seco/arch/arm64/boot/dts/seco/overlays/seco-imx8mm-c72-lcdif-sn65dsi84-overlay.dts |
...
Code Block |
---|
target = <&adv_bridge>; __overlay__ { #address-cells = <1>; #size-cells = <0>; lvds,datamap = "jeida"; lvds,dual-channel; lvds,channel-swap; lvds,preserve-dsi-timings; /*include/drm/drm_mipi_dsi.h*/ dsi,mode-flags = <0x805>; /*MIPI_DSI_MODE_VIDEO*/ clocks = <&si5351a 0>; status = "okay"; |
To complete the panel configuration, it is necessary to correctly configure correctly the following parameters:
lvds,datamap: can be configured as “jeida“ jeida or “spwg“ spwg, other configurations are not supported.
lvds,dual-channel:if inserted, it enables bridge dual channel output. The DSI video signal is splitted in LVDS channel A and LVDS channel B,
refer tosn65dsi84 datasheetfor more informations.lvds,preserve-dsi-timings:this parameter is usefull useful when the LVDS display timing are is synchronized with Data Enable, while it should be removed if the panel is not DE sync. The LVDS panel panels that are not synchronized with Data Enable must be configured without lvds, preserve-dsi-timing parameter and clocks = <&si5351a 0> should be commented out to ensure timing sync. QUI COSA VA IN CORSIVO/CODICE?
Note |
---|
All this The above configurations can be useless in some cases , so and prevent the panel can’t turn from turning on. |
SECO preconfigured Panels
Below are some pre-built device tree overlay Device Tree Overlay files for i.MX8-based boards.
Once the setup has been defined, kernelthe Kernel, including LVDS display resolution, can be built. After the compilationcompiling, please copy the file into the device and boot the board by setting up the custom device tree file with the support of seco_config file.
Device tree display overlay for i.MX8
BoardModule | Type of product | Peripheral | Overlays |
---|---|---|---|
SM-C12 | SMARC module | MIPI-DSI to LVDS, HDMI |
|
SBC-C20 | SBC | MIPI-DSI to LVDS, HDMI |
|
Q7-C25Q7 | Qseven module | MIPI-DSI to LVDS, MIPI-DSI to eDP, HDMI |
|
Q7-C26Q7 | Qseven module | LVDS, DP, HDMI |
|
SBC-C43 | SBC | MIPI-DSI to eDP, LVDS, HDMI |
|
μQ7-C72μQ7 | μQseven module | MIPI-DSI to LVDS, MIPI-DSI to eDP |
|
SBC-C61 | SBC | MIPI-DSI to LVDS, MIPI-DSI to eDP |
|
SBC-C57 | SBC | MIPI-DSI to eDP, LVDS |
|
SM-D16 | SMARC module | MIPI-DSI to eDP, LVDS, HDMI |
|
...
Info |
---|
From BSP9.0 onwards, |
...
our images comes with available pre-built |
...
overlays binaries as (.dtbo). |
In Linux BSP 9.0, you can list these the available files available on the boot partition,.
For eg: C72example, with the μQ7-C72:
Code Block |
---|
ls -l boot/ total 25604 -rw-r--r-- 1 secospa secospa 26073600 Sep 16 02:55 Image -rw-r--r-- 1 secospa secospa 6000 Sep 16 02:55 imx8mm_m4_TCM_hello_world.bin -rw-r--r-- 1 secospa secospa 16528 Sep 16 02:55 imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin -rw-r--r-- 1 secospa secospa 16028 Sep 16 02:55 imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin -rw-r--r-- 1 secospa secospa 40092 Sep 16 02:55 imx8mm_m4_TCM_sai_low_power_audio.bin -rw-r--r-- 1 secospa secospa 53688 Sep 16 02:55 seco-imx8mm-c72.dtb -rw-r--r-- 1 secospa secospa 2140 Sep 16 02:55 seco-imx8mm-c72-lcdif-sn65dsi84.dtbo -rw-r--r-- 1 secospa secospa 1797 Sep 16 02:55 seco-imx8mm-c72-lcdif-sn65dsi86.dtbo |
Once it is done, you can boot the board using seco_config
tool to configure the Device tree overlay, Tree Overlay.
Below are the commands to for the setup,:
Code Block |
---|
u-boot seco c72=> seco_config __________________________________________________ Choose boot Device for Kernel. __________________________________________________ 1) eMMC onboard 2) uSD onboard 3) TFTP 4) USB > 1 Choose the partition > 1 Path of the Kernel (enter for default Image) > __________________________________________________ Choose boot Device for FDT. __________________________________________________ 1) eMMC onboard 2) uSD onboard 3) TFTP 4) USB > 1 Choose the partition > 1 Path of the FDT (enter for default seco-imx8mq-c12.dtb) > __________________________________________________ Choose boot Device for FileSystem. __________________________________________________ 1) eMMC onboard 2) uSD onboard 3) NFS 4) USB > 1 Choose the partition > 2 __________________________________________________ Choose Video Output Configuration. __________________________________________________ 1) no video - no dtbo 2) eDP LCDIF-1920x1080 - seco-imx8mm-c72-lcdif-sn65dsi86.dtbo 3) LVDS LCDIF-1920x1080 - seco-imx8mm-c72-lcdif-sn65dsi84.dtbo > 2 __________________________________________________ Choose Board Options. __________________________________________________ 1) No addons > 1 Saving Environment to MMC... Writing to MMC(0)... OK |
By selecting the dtbo to perform, the board will boot up with your display configuration.
Tip |
---|
Successfully The board has now successfully been booted loaded with the selected display device tree. |
...