DESK-MX8M-L/Peripherals/HDMI

From DAVE Developer's Wiki
Jump to: navigation, search
History
Version Issue Date Notes
1.0.0 Jan 2022 First DESK-MX8M release


Peripheral HDMI[edit | edit source]

Device tree configuration[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";
};

&hdmimix_clk {
	status = "okay";
};

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

Accessing the peripheral[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    0.816872] imx-hdmi-pavi 32fc4000.hdmi-pai-pvi: No pvi clock get
[    2.514179] 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.533924] 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
...
...

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
40      36      LVDS    0x00000002      0xffffffff
41      39      TMDS    0x00000004      0x00000000

Connectors:
id      encoder status          name            size (mm)       modes   encoders
42      40      connected       LVDS-1          217x136         1       40
  modes:
        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
  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:
43      41      connected       HDMI-A-1        480x270         20      41
  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: driver
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
                        00ffffffffffff000469c322725c0300
                        1a1e010380301b782a84d5a25a52a226
                        0d5054bfef00d1c0b300950081808140
                        81c0714f0101023a801871382d40582c
                        4500dc0c1100001e000000ff004c364c
                        4d54463232303237340a000000fd0032
                        4b185311000a202020202020000000fc
                        00415355532056503232380a20200170
                        020322714f0102031112130414050e0f
                        1d1e1f90230917078301000065030c00
                        10008c0ad08a20e02d10103e9600dc0c
                        11000018011d007251d01e206e285500
                        dc0c1100001e011d00bc52d01e20b828
                        5540dc0c1100001e8c0ad09020403120
                        0c405500dc0c11000018000000000000
                        00000000000000000000000000000035
        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      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
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:
        24 VRR_ENABLED:
                flags: range
                values: 0 1
                value: 0

Planes:
id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
31      0       0       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      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
                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 Jan 14 16:10 /dev/dri/card0
crw-rw---- 1 root video 226, 1 Jan 14 16:10 /dev/dri/card1
root@desk-mx8mp:~#