DART-MX8M-PLUS Display: Difference between revisions

From Variscite Wiki
No edit summary
No edit summary
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<!-- Set release according to "release" parameter in URL and use RELEASE_ZEUS_V1.0_DART-MX8M-PLUS as default
<!-- Set release according to "release" parameter in URL and use RELEASE_ZEUS_V1.0_DART-MX8M-PLUS as default
--> {{#vardefine:RELEASE_PARAM|{{#urlget:release}}}} <!--
--> {{INIT_RELEASE_PARAM|RELEASE_ZEUS_V1.0_DART-MX8M-PLUS}}<!--
--> {{#lst:Yocto_Platform_Customization|{{#var:RELEASE_PARAM|RELEASE_ZEUS_V1.0_DART-MX8M-PLUS}}}} <!--
--> {{#lst:Yocto_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{#lst:B2QT_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{PageHeader|{{#var:HARDWARE_NAME}} Display}} {{DocImage|category1=Yocto|category2=Debian}}[[Category:{{#var:HARDWARE_NAME}}]]__toc__
--> {{PageHeader|{{#var:HARDWARE_NAME}} Display}} {{DocImage|category1=Yocto|category2=Debian}}[[Category:{{#var:HARDWARE_NAME}}]]__toc__


Line 13: Line 14:
To support a custom LVDS panel you should make several modifications.<br>
To support a custom LVDS panel you should make several modifications.<br>


The following code references Variscite panel in arch/arm64/boot/dts/freescale/{{#var:DEFAULT_DTB}} under kernel source tree
The following code references Variscite panel in arch/arm64/boot/dts/freescale/{{#replace:{{#var:DEFAULT_DTB}}|.dtb|.dts}} under kernel source tree


<pre>
<pre>
Line 71: Line 72:
...
...
};
};
</pre>
</pre>
</pre>


Line 92: Line 92:
Now we have to force video_pll1_out to provide this specific value (980000000).
Now we have to force video_pll1_out to provide this specific value (980000000).


* we need to update video_pll1_out with this new value in the file arch/arm64/boot/dts/freescale/imx8mp.dtsi
* we need to update video_pll1_out with this new value in the ''clock-controller'' node of the file arch/arm64/boot/dts/freescale/imx8mp.dtsi
* we need to introduce a clock setting providing this value in the file drivers/clk/imx/clk-pll14xx.c
* we need to introduce a clock setting providing this value in the file drivers/clk/imx/clk-pll14xx.c


The structure imx_pll14xx_rate_table provides the following set of values
The table ''imx_pll1443x_tbl'' provides the lines with the following set of values


  rate, mdiv, pdiv, sdiv, kdiv
  rate, mdiv, pdiv, sdiv, kdiv
Line 105: Line 105:
Let's make things easy and assume kdiv = 0 and sdiv = 1.
Let's make things easy and assume kdiv = 0 and sdiv = 1.


In order to get a rate of 980 MHz we can just add the following line (keeping the descending rate order)
In order to get a rate of 980 MHz we can just add the following line in the table ''imx_pll1443x_tbl'' (keeping the rate in descending order)


  (980000000U, 245, 3, 1, 0)
  (980000000U, 245, 3, 1, 0)
As last step, at the end of the function ''imx8mp_ldb_encoder_atomic_check'' in the driver drivers/gpu/drm/imx/imx8mp-ldb.c, the following lines must be commented out
<syntaxhighlight lang="c">
/*
* Due to limited video PLL frequency points on i.MX8mp,
* we do mode fixup here in case any mode is unsupported.
*/
if (ldb->dual)
mode->clock = mode->clock > 100000 ? 148500 : 74250;
else
mode->clock = 74250;
</syntaxhighlight>
|}}
|}}
= Rotating the Weston display =
{{WESTON_DISPLAY_ROTATE}}

Latest revision as of 14:58, 22 March 2024

Warning: This page is designed to be used with a 'release' URL parameter.

This page is using the default release RELEASE_ZEUS_V1.0_DART-MX8M-PLUS.
To view this page for a specific Variscite SoM and software release, please follow these steps:

  1. Visit variwiki.com
  2. Select your SoM
  3. Select the software release
DART-MX8M-PLUS Display

HDMI, MIPI-DSI and LVDS

DART-MX8M-PLUS SoC supports LVDS, HDMI and MIPI-DSI interfaces. DART-MX8M-PLUS carrier board comes with LVDS and HDMI connectors, so you can easily connect LVDS and HDMI displays.
Connecting MIPI-DSI display to DART-MX8M-PLUS carrier board requires designing a custom connector.

Adding custom LVDS panel

DART-MX8M-PLUS evaluation kit comes with 800x480 LCD panel. DART-MX8M-PLUS DTS file was created with this panel in mind.
To support a custom LVDS panel you should make several modifications.

The following code references Variscite panel in arch/arm64/boot/dts/freescale/imx8mp-var-dart.dts under kernel source tree

panel {
	compatible = "sgd,gktw70sdae4se", "panel-lvds";
	backlight = <&backlight>;
	width-mm = <153>;
	height-mm = <87>;
	label = "gktw70sdae4se";
	data-mapping = "jeida-24";
	status = "okay";

	panel-timing {
		clock-frequency = <33000000>;
		hactive = <800>;
		vactive = <480>;
		hback-porch = <40>;
		hfront-porch = <40>;
		vback-porch = <29>;
		vfront-porch = <13>;
		hsync-len = <48>;
		vsync-len = <3>;
		hsync-active = <0>;
		vsync-active = <0>;
		de-active = <1>;
	};
...
};

&ldb {
        status = "okay";

        lvds-channel@0 {
                fsl,data-mapping = "jeida";
                fsl,data-width = <24>;
                status = "okay";
...
};

You should modify panel "data-mapping" and "display-timings" properties to match your panel specification.
You should also modify ldb (internal LVDS bridge) "fsl,data-mapping" and "fsl,data-width" properties to match your panel specification.
Supported "data-mapping" values are "jeida-18", "jeida-24" and "vesa-24".
Supported "fsl,data-mapping" values are "jeida", and "spwg".
Supported "fsl,data-width" values are <18>, and <24>.

For dual channel LVDS panels add fsl,dual-channel property to ldb node, as in the example below:

&ldb {
        status = "okay";
        fsl,dual-channel;

        lvds-channel@0 {
                fsl,data-mapping = "jeida";
                fsl,data-width = <24>;
                status = "okay";
...
};


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

For more information, see the weston man pages: