HDMI enabling issue in personally designed carrier board based on Jetson TX2

HDMI is not getting enabled in my personally designed carried board based on Jetson TX2.

I am getting following error.

nvidia@tegra-ubuntu:~$ dmesg |grep hdmi
[    0.453356] hdmi: couldn't get regulator vdd_hdmi_5v0: -517
[    0.455461] tegradc 15210000.nvdisplay: hdmi: no prod_list_hdmi_board, use default range

Hi, did you follow the OEM DG to design HDMI part? There is a reference schematic in DLC, are you following that? Per your log info, the vdd_hdmi_5v0 is not enabled.

Yes I have followed OEM DG to design HDMI. I have provided direct +5VDC for it. DDC wire (AUX/I2C)I have connected to on board EEPROM programmed with VESA 24bit 640x480 resoultion edid. When I run following command HDMI-1 is not listed and my display is connected to HDMI-1 port.

root@tegra-ubuntu:~# xrandr -q
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
HDMI-0 disconnected primary (normal left inverted right x axis y axis)

Please find log from /var/log/Xorg.0.log

[     9.706] 
X.Org X Server 1.18.4
Release Date: 2016-07-19
[     9.706] X Protocol Version 11, Revision 0
[     9.706] Build Operating System: Linux 4.4.0-131-generic aarch64 Ubuntu
[     9.706] Current Operating System: Linux tegra-ubuntu 4.4.38-tegra #1 SMP PREEMPT Thu May 17 00:15:19 PDT 2018 aarch64
[     9.706] Kernel command line: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 OS=l4t fbcon=map:0 net.ifnames=0 memtype=0 video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x03100000 nvdumper_reserved=0x2772e0000 gpt tegraid=18.1.2.0.0 tegra_keep_boot_clocks maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2.1 androidboot.serialno=0424718115495 bl_prof_dataptr=0x10000@0x277040000 sdhci_tegra.en_boot_part_access=1 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4
[     9.706] Build Date: 10 August 2018  12:01:21PM
[     9.707] xorg-server 2:1.18.4-0ubuntu0.8 (For technical support please see http://www.ubuntu.com/support) 
[     9.707] Current version of pixman: 0.33.6
[     9.707] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[     9.707] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[     9.707] (==) Log file: "/var/log/Xorg.0.log", Time: Thu Feb 11 21:58:04 2016
[     9.708] (==) Using config file: "/etc/X11/xorg.conf"
[     9.708] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[     9.710] (==) No Layout section.  Using the first Screen section.
[     9.710] (==) No screen section available. Using defaults.
[     9.710] (**) |-->Screen "Default Screen Section" (0)
[     9.710] (**) |   |-->Monitor "<default monitor>"
[     9.710] (==) No device specified for screen "Default Screen Section".
	Using the first device section listed.
[     9.710] (**) |   |-->Device "Tegra0"
[     9.711] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[     9.711] (==) Automatically adding devices
[     9.711] (==) Automatically enabling devices
[     9.711] (==) Automatically adding GPU devices
[     9.711] (==) Max clients allowed: 256, resource mask: 0x1fffff
[     9.714] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[     9.714] 	Entry deleted from font path.
[     9.714] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[     9.714] 	Entry deleted from font path.
[     9.714] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[     9.714] 	Entry deleted from font path.
[     9.714] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[     9.714] 	Entry deleted from font path.
[     9.714] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[     9.714] 	Entry deleted from font path.
[     9.714] (==) FontPath set to:
	/usr/share/fonts/X11/misc,
	/usr/share/fonts/X11/Type1,
	built-ins
[     9.714] (==) ModulePath set to "/usr/lib/aarch64-linux-gnu/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
[     9.714] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[     9.714] (II) Loader magic: 0x558cb0cd80
[     9.714] (II) Module ABI versions:
[     9.714] 	X.Org ANSI C Emulation: 0.4
[     9.714] 	X.Org Video Driver: 20.0
[     9.714] 	X.Org XInput driver : 22.1
[     9.715] 	X.Org Server Extension : 9.0
[     9.716] (++) using VT number 7

[     9.716] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[     9.716] (II) no primary bus or device found
[     9.716] (WW) "dri" will not be loaded unless you've specified it to be loaded elsewhere.
[     9.716] (II) "glx" will be loaded by default.
[     9.716] (II) LoadModule: "extmod"
[     9.717] (II) Module "extmod" already built-in
[     9.717] (II) LoadModule: "glx"
[     9.720] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     9.859] (II) Module glx: vendor="NVIDIA Corporation"
[     9.859] 	compiled for 4.0.2, module version = 1.0.0
[     9.859] 	Module class: X.Org Server Extension
[     9.859] (II) NVIDIA GLX Module  28.2.1  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-773)  Thu May 17 00:15:24 PDT 2018
[     9.859] (II) LoadModule: "nvidia"
[     9.860] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[     9.883] (II) Module nvidia: vendor="NVIDIA Corporation"
[     9.883] 	compiled for 4.0.2, module version = 1.0.0
[     9.883] 	Module class: X.Org Video Driver
[     9.883] (II) NVIDIA dlloader X Driver  28.2.1  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-773)  Thu May 17 00:16:09 PDT 2018
[     9.884] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[     9.891] (WW) Falling back to old probe method for NVIDIA
[     9.892] (II) Loading sub module "fb"
[     9.892] (II) LoadModule: "fb"
[     9.893] (II) Loading /usr/lib/xorg/modules/libfb.so
[     9.898] (II) Module fb: vendor="X.Org Foundation"
[     9.898] 	compiled for 1.18.4, module version = 1.0.0
[     9.898] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     9.898] (II) Loading sub module "wfb"
[     9.898] (II) LoadModule: "wfb"
[     9.899] (II) Loading /usr/lib/xorg/modules/libwfb.so
[     9.901] (II) Module wfb: vendor="X.Org Foundation"
[     9.901] 	compiled for 1.18.4, module version = 1.0.0
[     9.901] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     9.901] (II) Loading sub module "ramdac"
[     9.901] (II) LoadModule: "ramdac"
[     9.901] (II) Module "ramdac" already built-in
[     9.905] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[     9.905] (II) NVIDIA(0): Creating default Display subsection in Screen section
	"Default Screen Section" for depth/fbbpp 24/32
[     9.905] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[     9.905] (==) NVIDIA(0): RGB weight 888
[     9.905] (==) NVIDIA(0): Default visual is TrueColor
[     9.905] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[     9.906] (**) NVIDIA(0): Option "ModeDebug"
[     9.906] (**) NVIDIA(0): Option "AllowEmptyInitialConfiguration" "true"
[     9.906] (**) NVIDIA(0): Option "TegraReserveDisplayBandwidth" "false"
[     9.906] (**) NVIDIA(0): Enabling 2D acceleration
[     9.909] (--) NVIDIA(0): Valid display device(s) on GPU-0 at SoC
[     9.909] (--) NVIDIA(0):     DFP-0
[     9.909] (II) NVIDIA(0): NVIDIA GPU NVIDIA Tegra X2 (nvgpu) (GP10B) at SoC (GPU-0)
[     9.909] (--) NVIDIA(0): Memory: 8042776 kBytes
[     9.909] (--) NVIDIA(0): VideoBIOS: 
[     9.910] (==) NVIDIA(0): 
[     9.910] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[     9.910] (==) NVIDIA(0):     will be used as the requested mode.
[     9.910] (==) NVIDIA(0): 
[     9.910] (--) NVIDIA(0): No enabled display devices found; starting anyway because
[     9.910] (--) NVIDIA(0):     AllowEmptyInitialConfiguration is enabled
[     9.910] (II) NVIDIA(0): Validated MetaModes:
[     9.910] (II) NVIDIA(0): Virtual screen size determined to be 640 x 480
[     9.910] (WW) NVIDIA(0): Unable to get display device for DPI computation.
[     9.910] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
[     9.910] (--) Depth 24 pixmap format is 32 bpp
[     9.913] (II) NVIDIA: Reserving 49152.00 MB of virtual memory for indirect memory
[     9.913] (II) NVIDIA:     access.
[     9.919] (EE) NVIDIA(0): Failed to allocate NVIDIA Error Handler
[     9.919] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
[     9.919] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
[     9.920] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
[     9.920] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
[     9.920] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
[     9.920] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
[     9.920] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
[     9.920] (II) NVIDIA(0):     Config Options in the README.
[     9.972] (II) NVIDIA(0): Setting mode "NULL"
[     9.982] (==) NVIDIA(0): Disabling shared memory pixmaps
[     9.982] (==) NVIDIA(0): Backing store enabled
[     9.982] (==) NVIDIA(0): Silken mouse enabled
[     9.983] (==) NVIDIA(0): DPMS enabled
[     9.983] (II) Loading sub module "dri2"
[     9.983] (II) LoadModule: "dri2"
[     9.983] (II) Module "dri2" already built-in
[     9.983] (II) NVIDIA(0): [DRI2] Setup complete
[     9.983] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
[     9.983] (--) RandR disabled
[     9.992] (II) SELinux: Disabled on system
[     9.993] (II) Initializing extension GLX
[     9.993] (II) Indirect GLX disabled.
[    10.170] (II) config/udev: Adding input device tegra-hda HDMI/DP,pcm=3 (/dev/input/event0)
[    10.170] (II) No input driver specified, ignoring this device.
[    10.170] (II) This device may have been added with another device file.
[    10.171] (II) config/udev: Adding input device tegra-hda HDMI/DP,pcm=7 (/dev/input/event1)
[    10.171] (II) No input driver specified, ignoring this device.
[    10.172] (II) This device may have been added with another device file.
[    10.173] (II) config/udev: Adding input device gpio-keys (/dev/input/event3)
[    10.173] (**) gpio-keys: Applying InputClass "evdev keyboard catchall"
[    10.173] (II) LoadModule: "evdev"
[    10.173] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[    10.177] (II) Module evdev: vendor="X.Org Foundation"
[    10.177] 	compiled for 1.18.1, module version = 2.10.1
[    10.177] 	Module class: X.Org XInput Driver
[    10.177] 	ABI class: X.Org XInput driver, version 22.1
[    10.177] (II) Using input driver 'evdev' for 'gpio-keys'
[    10.178] (**) gpio-keys: always reports core events
[    10.178] (**) evdev: gpio-keys: Device: "/dev/input/event3"
[    10.178] (--) evdev: gpio-keys: Vendor 0x1 Product 0x1
[    10.178] (--) evdev: gpio-keys: Found keys
[    10.178] (II) evdev: gpio-keys: Configuring as keyboard
[    10.178] (**) Option "config_info" "udev:/sys/devices/gpio-keys/input/input3/event3"
[    10.178] (II) XINPUT: Adding extended input device "gpio-keys" (type: KEYBOARD, id 6)
[    10.178] (**) Option "xkb_rules" "evdev"
[    10.178] (**) Option "xkb_model" "pc105"
[    10.178] (**) Option "xkb_layout" "us"
[    10.180] (II) config/udev: Adding input device tegra-snd-t186ref-mobile-rt565x Headphone Jack (/dev/input/event2)
[    10.180] (**) tegra-snd-t186ref-mobile-rt565x Headphone Jack: Applying InputClass "evdev keyboard catchall"
[    10.180] (II) Using input driver 'evdev' for 'tegra-snd-t186ref-mobile-rt565x Headphone Jack'
[    10.180] (**) tegra-snd-t186ref-mobile-rt565x Headphone Jack: always reports core events
[    10.180] (**) evdev: tegra-snd-t186ref-mobile-rt565x Headphone Jack: Device: "/dev/input/event2"
[    10.180] (--) evdev: tegra-snd-t186ref-mobile-rt565x Headphone Jack: Vendor 0 Product 0
[    10.180] (--) evdev: tegra-snd-t186ref-mobile-rt565x Headphone Jack: Found keys
[    10.180] (II) evdev: tegra-snd-t186ref-mobile-rt565x Headphone Jack: Configuring as keyboard
[    10.181] (**) Option "config_info" "udev:/sys/devices/sound/sound/card1/input2/event2"
[    10.181] (II) XINPUT: Adding extended input device "tegra-snd-t186ref-mobile-rt565x Headphone Jack" (type: KEYBOARD, id 7)
[    10.181] (**) Option "xkb_rules" "evdev"
[    10.181] (**) Option "xkb_model" "pc105"
[    10.181] (**) Option "xkb_layout" "us"

Any news about that?

Hi EmHardy,

Do you use 5V0_HDMI_EN to switch the HDMI 5V output? You can check the reference schematic about this. It should not be a direct 5V to that.

We have made our custom carrier board and HDMI_5V is direct from 5V supply, and problem has solved. We were using HPD active high, but in device tree HPD is defined as active low.

Glad to here that. But better to follow guide to use EN for HDMI_5V as there might be potential risks if not.

Could you please tell me where to modify the HPD part? We got the same question.

Hi EmHardy, Hi Trumany
We have made our custom carrier board and HDMI_5V is direct from 5V supply too .My hpd signal become high from low when our custom carrier board powers on.BUT there is nothing when we catch the signal of the ehdmi i2c.We think the tx2i might does not identify the HPD high signal,and we think there is some proble about the HDMI_supply_en, HOW can I make my custom carrier board’s HDMI work normally.

I am getting following error too.
hdmi: couldn’t get regulator vdd_hdmi_5v0: -517

Please check the device tree to change the “TEGRA_DC_OUT_HOTPLUG_LOW” to “TEGRA_DC_OUT_HOTPLUG_HIGH”.

hdmi: couldn’t get regulator vdd_hdmi_5v0: -517
This error should not cause the driver to hang. If it hangs, please change the vdd_hdmi_5v0 to battery_reg as a dummy regulator.

Hi,WayneWWW
I have changed the “TEGRA_DC_OUT_HOTPLUG_LOW” to “TEGRA_DC_OUT_HOTPLUG_HIGH”.and vdd_hdmi_5v0_supply to &battery_reg.But HDMI is not getting enabled.It seem to the .DTB files have some problem.

when the our custom carrier board powers on,the uart printf:
[0002.465] I> enabling ‘vdd-hdmi’ regulator
[0002.469] E> tegrabl_display_get_pdata, failed to parse dtb settings
[0002.478] E> cannot find any other nvdisp nodes
[0002.482] E> no valid display unit config found in dtb
[0002.488] W> display init failed
[0002.491] initializing target
[0002.494] calling apps_init()
[0002.497] starting app kernel_boot_app
[0002.503] I> found decompressor handler: lz4-legacy
[0002.507] I> decompressing BMP blob …
[0002.518] I> Kernel type = Normal
[0002.521] I> Loading kernel from partition …
[0002.525] W> No valid slot number is found in scratch register
[0002.531] W> Return default slot: _a
[0002.534] I> A/B: bin_type (24) slot 0

and the I use Dmesg command,the uart printf:
780.002042] extcon-disp-state external-connection:disp-state: cable 47 state 0
[ 780.002050] Extcon AUX1(HDMI) disable
[ 780.021871] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
[ 780.021950] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
[ 780.022518] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
[ 789.430352] tegradc 15210000.nvdisplay: unblank
[ 789.432314] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[ 789.432606] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[ 789.432816] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
[ 789.438334] Parent Clock set for DC plld2
[ 789.443313] tegradc 15210000.nvdisplay: hdmi: tmds rate:148500K prod-setting:prod_c_hdmi_111m_223m
[ 789.444928] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
[ 789.444950] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[ 789.485679] extcon-disp-state external-connection:disp-state: cable 47 state 1
[ 789.485688] Extcon AUX1(HDMI) enable

  1. Please share the full dmesg with below test
    case1: connected the hdmi cable and then boot up.
    case2: boot up and then hotplug cable after system is ready.

  2. Please share the result of “lsmod”

Hi,WayneWWW

  1. Connected the hdmi cable and then boot up.THE full result of “dmesg” as follows:
    [Com COM3] (2019-11-23_144657)HDMI_F_DMESG.log

2 .boot up and then hotplug cable after system is ready.the full result of “dmesg” as follows:
[Com COM3] (2019-11-23_145600)HDMI_L_DMESG.log

  1. Connected the hdmi cable and then boot up. the result of “lsmod” as follows:
    [Com COM3] (2019-11-23_145747)HDMI_L_LSMOD.log

[Com COM3] (2019-11-23_144657)HDMI_F_DMESG.log (77.1 KB)

[Com COM3] (2019-11-23_145747)HDMI_L_LSMOD.log (461 Bytes)

[Com COM3] (2019-11-23_145600)HDMI_L_DMESG.log (159 KB)

Yes, you are correct. i2c has failure so that it cannot read the edid from your monitor.

[ 17.713639] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 17.720400] tegradc 15210000.nvdisplay: hdmi: tegra_edid_read_block(0) returned err -121
[ 17.720409] tegradc 15210000.nvdisplay: hdmi_recheck_edid: read_edid_into_buffer() returned -121
[ 17.720416] tegradc 15210000.nvdisplay: hdmi: unable to read EDID

Do you use the same pin connection as our devkit? I don’t see you schematic in this post.

Hi,WayneWWW
MY design as follows:I use a chip named “tpd12s521”.
p2597_c02.pdf (276 KB)

TPD12S521.docx (175 KB)

I use the same pin connection as devkit.