Open main menu

DAVE Developer's Wiki β

Changes

DESK-MX8M-L/Peripherals/HDMI

3,964 bytes added, 15 April
no edit summary
! colspan="4" style="width:100%; text-align:left" ; border-bottom:solid 2px #ededed" |History
|-
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Version! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Issue Date! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Notes
|-
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |1.0.0{{oldid| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" 15759|Jan 2022/02/17}}| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |First DESK-MX8M -L release
|-
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|17553|2023/02/24}}
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |DESK-MX8M-L-2.0.0 release
|-
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |2{{oldid|19167|2023/08/22}}| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |DESK-MX8M-L-4.0.0release| -! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fbededed; padding:5px; color:#000000" |Feb 20232024/04/11| ! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fbededed; padding:5px; color:#000000" |DESK-MX8M-L-24.01.0release
|-
|}
};
&hdmimix_clk { status = "okay";}; &hdmimix_reset hdmi_blk_ctrl {
status = "okay";
};
...
};
</pre>
 
====MITO 8M Mini====
Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini SOM:
 
From <code>imx8mm-mito8mmini.dtsi</code>:
 
<pre>
...
...
&i2c1 {
...
mipi_to_lvds: sn65dsi83@2c {
compatible = "ti,sn65dsi83";
reg = <0x2c>;
enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
interrupts-extended = <&gpio1 5 GPIO_ACTIVE_HIGH>;
clocks = <&mipi_dsi 0>, <&clk IMX8MM_CLK_LCDIF_PIXEL>;
clock-names = "mipi_clk", "pixel_clock";
display = <&display_subsystem>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1_sn65dsi83>;
sync-delay = <512>;
dsi-lanes = <4>;
status = "okay";
 
lvds_ports: ports {
#address-cells = <1>;
#size-cells = <0>;
 
port@0 {
reg = <0>;
lvds_in: endpoint {
remote-endpoint = <&mipi_out>;
data-lanes = <1 2 3 4>;
};
};
};
};
...
};
 
&lcdif {
status = "okay";
};
 
&mipi_dsi {
#clock-cells = <1>;
status = "okay";
 
port@1 {
mipi_out: endpoint {
remote-endpoint = <&lvds_in>;
attach-bridge;
};
};
};
 
&vpu_g1 {
status = "okay";
};
 
&vpu_g2 {
status = "okay";
};
 
&vpu_h1 {
status = "okay";
};
 
&gpu {
status = "okay";
};
...
...
</pre>
 
From <code>imx8mm-mito8mmini-cb100a.dts</code> :
 
<pre>
...
&regulators {
reg_lvds_pwr: lvds_pwr {
compatible = "regulator-fixed";
pinctrl-names = "default";
regulator-name = "lvds_pwr_en";
pinctrl-0 = <&pinctrl_lcd_3v3_enable>;
gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-boot-on;
regulator-always-on;
};
 
reg_5v_bl: 5v_bl {
compatible = "regulator-fixed";
pinctrl-names = "default";
regulator-name = "5v_bl_en";
pinctrl-0 = <&pinctrl_lcd_5v_enable>;
gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-boot-on;
regulator-always-on;
};
};
 
&i2c3 {
lvds-to-hdmi-bridge@4c {
compatible = "ite,it6263";
reg = <0x4c>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_it6263_en>;
reset-gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
status = "okay";
 
port {
it6263_in: endpoint {
remote-endpoint = <&lvds_out>;
};
};
};
};
 
&display_subsystem {
status = "okay";
};
 
&lvds_ports {
port@2 {
reg = <2>;
lvds_out: endpoint {
remote-endpoint = <&it6263_in>;
attach-bridge;
};
};
};
 
&iomuxc {
pinctrl_lcd_3v3_enable: lcd_3v3_en {
fsl,pins = <
MX8MM_IOMUXC_SAI3_RXC_GPIO4_IO29 0x19
>;
};
pinctrl_lcd_5v_enable: lcd_5v_en {
fsl,pins = <
MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 0x19
>;
};
pinctrl_it6263_en: it6263_en {
fsl,pins = <
MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2 0x19
>;
};
};
 
</pre>
...
...
[ 0.816872336013] imx-platform 32fd8000.hdmi-pavi 32fc4000: Fixing up cyclic dependency with 32fc6000.hdmilcd-pai-pvi: No pvi clock getcontroller[ 2.514179352266] dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)[ 2.524804352931] dwhdmi-imx 32fd8000.hdmi: registered DesignWare HDMI I2C bus driver[ 2.533924414060] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)[ 2.807834] debugfs: Directory '30cb0000.aud2htx' with parent 'audio-hdmi' already present![ 2.816295] imx-cdnhdmi sound-hdmi: i2s-hifi <-> 30cb0000.aud2htx mapping ok[ 2.823380] imx-cdnhdmi sound-hdmi: ASoC: no DMI vendor name![ 2.830004] input: audio-hdmi HDMI Jack as /devices/platform/sound-hdmi/sound/card0/input1[ 2.897988] #0: audio-hdmi
...
...
Encoders:
id crtc type possible crtcs possible clones
37 33 LVDS 0x00000001 0xffffffff0x0000000138 36 39 0 TMDS 0x00000002 0x000000000x00000002
Connectors:
id encoder status name size (mm) modes encoders
39 38 37 connected HDMI-A-1 340x190 2 37
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
#0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
#1 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver
value:
40 38 connected 0 disconnected HDMI-A-2 480x270 0x0 20 38 modes: index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) #0 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: preferred, driver #1 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352 flags: phsync, pvsync; type: driver #2 1920x1080 50.00 1920 2448 2492 2640 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver #3 1280x1024 75.02 1280 1296 1440 1688 1024 1025 1028 1066 135000 flags: phsync, pvsync; type: driver #4 1280x1024 60.02 1280 1328 1440 1688 1024 1025 1028 1066 108000 flags: phsync, pvsync; type: driver #5 1280x960 60.00 1280 1376 1488 1800 960 961 964 1000 108000 flags: phsync, pvsync; type: driver #6 1152x864 75.00 1152 1216 1344 1600 864 865 868 900 108000 flags: phsync, pvsync; type: driver #7 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver #8 1280x720 59.94 1280 1390 1430 1650 720 725 730 750 74176 flags: phsync, pvsync; type: driver #9 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver #10 1440x576 50.00 1440 1464 1592 1728 576 581 586 625 54000 flags: nhsync, nvsync; type: driver #11 1440x480 60.00 1440 1472 1596 1716 480 489 495 525 54054 flags: nhsync, nvsync; type: driver #12 1440x480 59.94 1440 1472 1596 1716 480 489 495 525 54000 flags: nhsync, nvsync; type: driver #13 800x600 60.32 800 840 968 1056 600 601 605 628 40000 flags: phsync, pvsync; type: driver #14 800x600 56.25 800 824 896 1024 600 601 603 625 36000 flags: phsync, pvsync; type: driver #15 720x576 50.00 720 732 796 864 576 581 586 625 27000 flags: nhsync, nvsync; type: driver #16 720x480 60.00 720 736 798 858 480 489 495 525 27027 flags: nhsync, nvsync; type: driver #17 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver #18 640x480 60.00 640 656 752 800 480 490 492 525 25200 flags: nhsync, nvsync; type: driver #19 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync, nvsync; type: driver39
props:
1 EDID:
value:
00ffffffffffff000469c322725c0300
1a1e010380301b782a84d5a25a52a226
0d5054bfef00d1c0b300950081808140
81c0714f0101023a801871382d40582c
4500dc0c1100001e000000ff004c364c
4d54463232303237340a000000fd0032
4b185311000a202020202020000000fc
00415355532056503232380a20200170
020322714f0102031112130414050e0f
1d1e1f90230917078301000065030c00
10008c0ad08a20e02d10103e9600dc0c
11000018011d007251d01e206e285500
dc0c1100001e011d00bc52d01e20b828
5540dc0c1100001e8c0ad09020403120
0c405500dc0c11000018000000000000
00000000000000000000000000000035
2 DPMS:
flags: enum
value:
41 max bpc:
flags: range
values: 8 16
value: 0
CRTCs:
id fb pos size
33 47 46 (0,0) (1280x720)
#0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
props:
values: 0 1
value: 0
36 49 0 (0,0) (1920x10800x0) #0 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 nan 0 0 0 0 0 0 0 0 0 flags: phsync, pvsync; type: preferred, driver
props:
24 VRR_ENABLED:
Planes:
id crtc fb CRTC x,y x,y gamma size possible crtcs
31 33 47 46 0,0 0,0 0 0x00000001
formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
props:
values: 0 0
value: 0
34 36 49 0 0 0,0 0,0 0 0x00000002
formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
props:
Frame buffers:
id size pitch
 
root@desk-mx8mp:~#
</pre>
<pre class="workstation-terminal">
root@desk-mx8mp:~# ls -la /dev/dri/card*
crw-rw---- 1 root video 226, 0 Jan 14 16Jul 26 05:10 52 /dev/dri/card0crw-rw---- 1 root video 226, 1 Jan 14 16Jul 26 05:10 52 /dev/dri/card1
root@desk-mx8mp:~#
</pre>
 
===Accessing the peripheral in MITO 8M Mini===
 
====Linux messages at boot time====
 
<pre class="workstation-terminal">
...
...
[ 3.466020] imx-drm 32c00000.bus:display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[ 3.759770] imx-drm 32c00000.bus:display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[ 3.775867] imx-drm 32c00000.bus:display-subsystem: bound 32e10000.mipi_dsi (ops imx_sec_dsim_ops)
[ 3.785440] [drm] Initialized imx-drm 1.0.0 20120507 for 32c00000.bus:display-subsystem on minor 1
...
[ 6.341483] imx-drm 32c00000.bus:display-subsystem: [drm] fb0: imx-drmdrmfb frame buffer device
...
...
</pre>
 
=== Additional information ===
HDMI framebuffer can be accessed through the <code>modetest</code> utility accessing the <code>imx-drm</code> DRM device for NXP i.MX SoCs.
 
Here below an example of MITO 8M Mini configured for HDMI and LVDS outputs:
 
<pre class="workstation-terminal">
root@desk-mx8mm:~# modetest -M imx-drm
Encoders:
id crtc type possible crtcs possible clones
34 33 DSI 0x00000001 0x00000001
 
Connectors:
id encoder status name size (mm) modes encoders
35 34 connected HDMI-A-1 340x190 2 34
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
#0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
#1 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver
props:
1 EDID:
flags: immutable blob
blobs:
 
value:
00ffffffffffff002074560100000000
141f010380221378fe6435a5544f9e27
125054bfea0061400101010101010101
010101010101021900a050d015203020
780059c21000001e000000fc00543038
30410a20202020202020000000ff0030
303030303030300a20202020000000fd
00304b545413010a20202020202001c9
020334f1461202030401132309070783
01000067030c001000384467d85dc401
448001681a00000109283ce6e50f0000
0600e200ff0000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
000000000000000000000000000000ca
2 DPMS:
flags: enum
enums: On=0 Standby=1 Suspend=2 Off=3
value: 0
5 link-status:
flags: enum
enums: Good=0 Bad=1
value: 0
6 non-desktop:
flags: immutable range
values: 0 1
value: 0
4 TILE:
flags: immutable blob
blobs:
 
value:
 
CRTCs:
id fb pos size
33 39 (0,0) (1280x720)
#0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
props:
24 VRR_ENABLED:
flags: range
values: 0 1
value: 0
 
Planes:
id crtc fb CRTC x,y x,y gamma size possible crtcs
31 33 39 0,0 0,0 0 0x00000001
formats: XR24 AR24 RG16 XB24 AB24 RX24 RA24 AR15 XR15 AB15 XB15 BG16
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 1
32 zpos:
flags: immutable range
values: 0 0
value: 0
 
Frame buffers:
id size pitch
 
</pre>
 
The connectors DRM names are: '''HDMI-A-1''' and '''LVDS-1'''. The releated device ''card'' is:
 
<pre class="workstation-terminal">
root@desk-mx8mm:~# ls -la /dev/dri/card*
crw-rw---- 1 root video 226, 0 Apr 29 00:39 /dev/dri/card0
crw-rw---- 1 root video 226, 1 Apr 29 00:39 /dev/dri/card1
</pre>
 
----
[[Category:ORCA]]
dave_user
424
edits