Difference between revisions of "DESK-MX8M-L/Peripherals/HDMI"

From DAVE Developer's Wiki
Jump to: navigation, search
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<section begin=History/>
+
<section begin="History" />
 
{| style="border-collapse:collapse; "
 
{| style="border-collapse:collapse; "
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
+
! 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"|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:#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
+
|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|15759|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"|Jan 2022
+
|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"|First DESK-MX8M 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" |{{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.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:#ededed; padding:5px; color:#000000" |2024/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:#ededed; padding:5px; color:#000000" |DESK-MX8M-L-4.1.0 release
 
|-
 
|-
 
|}
 
|}
<section end=History/>
+
<section end="History" />
<section begin=Body/>
+
<section begin="Body" />
  
 
==Peripheral HDMI ==
 
==Peripheral HDMI ==
  
 
=== Device tree configuration ===
 
=== Device tree configuration ===
 +
 +
==== ORCA SOM ====
 +
 
Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:
 
Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:
  
Line 24: Line 33:
  
 
<pre>
 
<pre>
 +
...
 +
...
 
sound-hdmi {
 
sound-hdmi {
 
compatible = "fsl,imx-audio-cdnhdmi";
 
compatible = "fsl,imx-audio-cdnhdmi";
Line 44: Line 55:
 
};
 
};
  
&hdmimix_clk {
+
&hdmi_blk_ctrl {
status = "okay";
 
};
 
 
 
&hdmimix_reset {
 
 
status = "okay";
 
status = "okay";
 
};
 
};
Line 85: Line 92:
 
</pre>
 
</pre>
  
===Accessing the peripheral===
+
====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>
 +
 
 +
===Accessing the peripheral in ORCA SOM===
  
 
====Linux messages at boot time====
 
====Linux messages at boot time====
Line 92: Line 253:
 
...
 
...
 
...
 
...
[    0.816872] imx-hdmi-pavi 32fc4000.hdmi-pai-pvi: No pvi clock get
+
[    0.336013] platform 32fd8000.hdmi: Fixing up cyclic dependency with 32fc6000.lcd-controller
[    2.514179] dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)
+
[    2.352266] dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)
[    2.524804] dwhdmi-imx 32fd8000.hdmi: registered DesignWare HDMI I2C bus driver
+
[    2.352931] dwhdmi-imx 32fd8000.hdmi: registered DesignWare HDMI I2C bus driver
[    2.533924] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)
+
[    2.414060] 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
 
 
...
 
...
 
...
 
...
Line 113: Line 269:
 
root@desk-mx8mp:~# modetest -M imx-drm
 
root@desk-mx8mp:~# modetest -M imx-drm
 
Encoders:
 
Encoders:
id     crtc   type   possible crtcs possible clones
+
id crtc type possible crtcs possible clones
40      36      LVDS   0x00000002      0xffffffff
+
37 33 LVDS 0x00000001 0x00000001
41      39     TMDS   0x00000004      0x00000000
+
39 0 TMDS 0x00000002 0x00000002
  
 
Connectors:
 
Connectors:
id     encoder status         name           size (mm)       modes   encoders
+
id encoder status name size (mm) modes encoders
42      40      connected       LVDS-1         217x136        1      40
+
38 37 connected HDMI-A-1       340x190 2 37
 
   modes:
 
   modes:
        index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
+
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
   #0 1280x800 60.01 1280 1399 1431 1452 800 804 824 832 72500 flags: ; type: preferred, driver
+
   #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:
 +
40 0 disconnected HDMI-A-2      0x0 0 39
 
   props:
 
   props:
        1 EDID:
+
1 EDID:
                flags: immutable blob
+
flags: immutable blob
                blobs:
+
blobs:
 +
 
 +
value:
 +
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:
 +
41 max bpc:
 +
flags: range
 +
values: 8 16
 +
value: 0
 +
 
 +
CRTCs:
 +
id fb pos size
 +
33 46 (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
 +
36 0 (0,0) (0x0)
 +
  #0  nan 0 0 0 0 0 0 0 0 0 flags: ; type:
 +
  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 46 0,0 0,0 0      0x00000001
 +
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
 +
  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
 +
34 0 0 0,0 0,0 0      0x00000002
 +
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
 +
  props:
 +
8 type:
 +
flags: immutable enum
 +
enums: Overlay=0 Primary=1 Cursor=2
 +
value: 1
 +
35 zpos:
 +
flags: immutable range
 +
values: 0 0
 +
value: 0
 +
 
 +
Frame buffers:
 +
id size pitch
 +
root@desk-mx8mp:~#
 +
</pre>
 +
 
 +
The connectors DRM names are: '''HDMI-A-1''' and '''LVDS-1'''. The releated device ''card'' is:
 +
 
 +
<pre class="workstation-terminal">
 +
root@desk-mx8mp:~# ls -la /dev/dri/card*
 +
crw-rw---- 1 root video 226, 0 Jul 26 05:52 /dev/dri/card0
 +
crw-rw---- 1 root video 226, 1 Jul 26 05: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:
  
                value:
+
<pre class="workstation-terminal">
        2 DPMS:
+
root@desk-mx8mm:~# modetest -M imx-drm
                flags: enum
+
Encoders:
                enums: On=0 Standby=1 Suspend=2 Off=3
+
id      crtc    type    possible crtcs  possible clones
                value: 0
+
34      33      DSI    0x00000001      0x00000001
        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:
+
Connectors:
43     41     connected      HDMI-A-1        480x270         20      41
+
id     encoder status          name            size (mm)      modes  encoders
 +
35      34     connected      HDMI-A-1        340x190         2      34
 
   modes:
 
   modes:
         index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
+
         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
+
   #0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  #1 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352 flags: phsync, pvsync; type: driver
+
   #1 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 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: driver
 
 
   props:
 
   props:
 
         1 EDID:
 
         1 EDID:
Line 175: Line 445:
  
 
                 value:
 
                 value:
                         00ffffffffffff000469c322725c0300
+
                         00ffffffffffff002074560100000000
                         1a1e010380301b782a84d5a25a52a226
+
                         141f010380221378fe6435a5544f9e27
                         0d5054bfef00d1c0b300950081808140
+
                         125054bfea0061400101010101010101
                         81c0714f0101023a801871382d40582c
+
                         010101010101021900a050d015203020
                         4500dc0c1100001e000000ff004c364c
+
                         780059c21000001e000000fc00543038
                         4d54463232303237340a000000fd0032
+
                         30410a20202020202020000000ff0030
                         4b185311000a202020202020000000fc
+
                         303030303030300a20202020000000fd
                         00415355532056503232380a20200170
+
                         00304b545413010a20202020202001c9
                         020322714f0102031112130414050e0f
+
                         020334f1461202030401132309070783
                         1d1e1f90230917078301000065030c00
+
                         01000067030c001000384467d85dc401
                         10008c0ad08a20e02d10103e9600dc0c
+
                         448001681a00000109283ce6e50f0000
                         11000018011d007251d01e206e285500
+
                         0600e200ff0000000000000000000000
                         dc0c1100001e011d00bc52d01e20b828
+
                         00000000000000000000000000000000
                         5540dc0c1100001e8c0ad09020403120
+
                         00000000000000000000000000000000
                         0c405500dc0c11000018000000000000
+
                         00000000000000000000000000000000
                         00000000000000000000000000000035
+
                         000000000000000000000000000000ca
 
         2 DPMS:
 
         2 DPMS:
 
                 flags: enum
 
                 flags: enum
Line 211: Line 481:
 
CRTCs:
 
CRTCs:
 
id      fb      pos    size
 
id      fb      pos    size
33      0      (0,0)  (0x0)
+
33      39      (0,0)  (1280x720)
  #0  nan 0 0 0 0 0 0 0 0 0 flags: ; type:
+
   #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
 
36      44      (0,0)  (1280x800)
 
  #0 1280x800 60.01 1280 1399 1431 1452 800 804 824 832 72500 flags: ; type: preferred, driver
 
  props:
 
        24 VRR_ENABLED:
 
                flags: range
 
                values: 0 1
 
                value: 0
 
39     50     (0,0)  (1920x1080)
 
   #0 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: preferred, driver
 
 
   props:
 
   props:
 
         24 VRR_ENABLED:
 
         24 VRR_ENABLED:
Line 235: Line 491:
 
Planes:
 
Planes:
 
id      crtc    fb      CRTC x,y        x,y    gamma size      possible crtcs
 
id      crtc    fb      CRTC x,y        x,y    gamma size      possible crtcs
31      0      0      0,0            0,0    0              0x00000001
+
31      33      39      0,0            0,0    0              0x00000001
   formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
+
   formats: XR24 AR24 RG16 XB24 AB24 RX24 RA24 AR15 XR15 AB15 XB15 BG16
 
   props:
 
   props:
 
         8 type:
 
         8 type:
Line 243: Line 499:
 
                 value: 1
 
                 value: 1
 
         32 zpos:
 
         32 zpos:
                flags: immutable range
 
                values: 0 0
 
                value: 0
 
34      36      44      0,0            0,0    0              0x00000002
 
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
 
  props:
 
        8 type:
 
                flags: immutable enum
 
                enums: Overlay=0 Primary=1 Cursor=2
 
                value: 1
 
        35 zpos:
 
                flags: immutable range
 
                values: 0 0
 
                value: 0
 
37      39      50      0,0            0,0    0              0x00000004
 
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
 
  props:
 
        8 type:
 
                flags: immutable enum
 
                enums: Overlay=0 Primary=1 Cursor=2
 
                value: 1
 
        38 zpos:
 
 
                 flags: immutable range
 
                 flags: immutable range
 
                 values: 0 0
 
                 values: 0 0
Line 272: Line 506:
 
id      size    pitch
 
id      size    pitch
  
root@desk-mx8mp:~#
 
 
</pre>
 
</pre>
  
Line 278: Line 511:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@desk-mx8mp:~# ls -la /dev/dri/card*
+
root@desk-mx8mm:~# ls -la /dev/dri/card*
crw-rw---- 1 root video 226, 0 Jan 14 16:10 /dev/dri/card0
+
crw-rw---- 1 root video 226, 0 Apr 29 00:39 /dev/dri/card0
crw-rw---- 1 root video 226, 1 Jan 14 16:10 /dev/dri/card1
+
crw-rw---- 1 root video 226, 1 Apr 29 00:39 /dev/dri/card1
root@desk-mx8mp:~#
 
 
</pre>
 
</pre>
 +
  
 
----
 
----
  
 
[[Category:ORCA]]
 
[[Category:ORCA]]

Latest revision as of 10:19, 15 April 2024

History
Issue Date Notes

2022/02/17

First DESK-MX8M-L release

2023/02/24

DESK-MX8M-L-2.0.0 release

2023/08/22

DESK-MX8M-L-4.0.0 release
2024/04/11 DESK-MX8M-L-4.1.0 release


Peripheral HDMI[edit | edit source]

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts:

...
...
	sound-hdmi {
		compatible = "fsl,imx-audio-cdnhdmi";
		model = "audio-hdmi";
		audio-cpu = <&aud2htx>;
		hdmi-out;
		constraint-rate = <44100>,
				<88200>,
				<176400>,
				<32000>,
				<48000>,
				<96000>,
				<192000>;
		status = "okay";
	};
...
...
&irqsteer_hdmi {
	status = "okay";
};

&hdmi_blk_ctrl {
	status = "okay";
};

&hdmi_pavi {
	status = "okay";
};

&hdmi {
	status = "okay";
};

&hdmiphy {
	status = "okay";
};

From imx8mp-mito8mplus.dtsi:


&iomuxc {
...
...
	pinctrl_hog: hoggrp {
		fsl,pins = <
			MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL	0x400001c3
			MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA	0x400001c3
			MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD		0x40000019
			MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC		0x40000019
		>;
	};
...
...
};

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini SOM:

From imx8mm-mito8mmini.dtsi:

...
...
&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";
};
...
...

From imx8mm-mito8mmini-cb100a.dts :

...
&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
		>;
	};
};

Accessing the peripheral in ORCA SOM[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    0.336013] platform 32fd8000.hdmi: Fixing up cyclic dependency with 32fc6000.lcd-controller
[    2.352266] dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)
[    2.352931] dwhdmi-imx 32fd8000.hdmi: registered DesignWare HDMI I2C bus driver
[    2.414060] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)
...
...

Additional information[edit | edit source]

HDMI framebuffer can be accessed through the modetest utility accessing the imx-drm DRM device for NXP i.MX SoCs.

Here below an example of SBC ORCA configured for HDMI and LVDS outputs:

root@desk-mx8mp:~# modetest -M imx-drm
Encoders:
id	crtc	type	possible crtcs	possible clones	
37	33	LVDS	0x00000001	0x00000001
39	0	TMDS	0x00000002	0x00000002

Connectors:
id	encoder	status		name		size (mm)	modes	encoders
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
  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:
40	0	disconnected	HDMI-A-2       	0x0		0	39
  props:
	1 EDID:
		flags: immutable blob
		blobs:

		value:
	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:
	41 max bpc:
		flags: range
		values: 8 16
		value: 0

CRTCs:
id	fb	pos	size
33	46	(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
36	0	(0,0)	(0x0)
  #0  nan 0 0 0 0 0 0 0 0 0 flags: ; type: 
  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	46	0,0		0,0	0       	0x00000001
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
  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
34	0	0	0,0		0,0	0       	0x00000002
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
  props:
	8 type:
		flags: immutable enum
		enums: Overlay=0 Primary=1 Cursor=2
		value: 1
	35 zpos:
		flags: immutable range
		values: 0 0
		value: 0

Frame buffers:
id	size	pitch
root@desk-mx8mp:~#

The connectors DRM names are: HDMI-A-1 and LVDS-1. The releated device card is:

root@desk-mx8mp:~# ls -la /dev/dri/card*
crw-rw---- 1 root video 226, 0 Jul 26 05:52 /dev/dri/card0
crw-rw---- 1 root video 226, 1 Jul 26 05:52 /dev/dri/card1
root@desk-mx8mp:~#

Accessing the peripheral in MITO 8M Mini[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    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
...
...

Additional information[edit | edit source]

HDMI framebuffer can be accessed through the modetest utility accessing the imx-drm DRM device for NXP i.MX SoCs.

Here below an example of MITO 8M Mini configured for HDMI and LVDS outputs:

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

The connectors DRM names are: HDMI-A-1 and LVDS-1. The releated device card is:

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