Enabling HDMI on DP0 and DP1 for custom carrier board for Tx2/Tx2i.

I have a custom carrier board which is similar to the development kit for Tx1/Tx2 but has 2 hdmi.
One of the HDMI is working fine, it is detecting and Displaying. I want to enable the other hdmi and display the same output on it as well. What are the changes required as i did not change the default Pinmux.

I am using JetPack 3.2.1 with R28.2.1.

Update:
I changed the dtb file, HDMI-0 is working fine but HDMI-1 is showing disconnected.

#include “tegra186-quill-p3310-1000-a00-00-base.dts”

/ {
nvidia,dtsfilename = FILE;

host1x {

	sor {
		status = "okay";
		hdmi-display {
			status = "okay";
		};
		dp-display {
			status = "disabled";
		};
	};
	
	dpaux@155c0000 {
		status = "okay";
	};	

	nvdisplay@15200000 {
		status = "okay";
		nvidia,dc-or-node = "/host1x/sor1";
	};
	nvdisplay@15210000 {
		status = "okay";
		nvidia,dc-or-node = "/host1x/sor";
	};
	nvdisplay@15220000 {
		status = "disabled";
		nvidia,dc-or-node = "/host1x/dsi";
	};
	

};

};

This is the log
nvidia@tegra-ubuntu:~$ dmesg |grep tegradc
[ 0.457176] tegradc 15200000.nvdisplay: DT parsed successfully
[ 0.457220] tegradc 15200000.nvdisplay: Display dc.ffffff80023c0000 registered with id=0
[ 0.464415] tegradc 15200000.nvdisplay: vblank syncpt # 7 for dc 0
[ 0.464431] tegradc 15200000.nvdisplay: vpulse3 syncpt # 8 for dc 0
[ 0.467064] tegradc 15200000.nvdisplay: hdmi: no prod_list_hdmi_board, use default range
[ 0.522608] tegradc 15200000.nvdisplay: probed
[ 4.137897] tegradc 15200000.nvdisplay: fb registered
[ 4.167622] tegradc 15200000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 4.208625] tegradc 15210000.nvdisplay: DT parsed successfully
[ 4.215975] tegradc 15210000.nvdisplay: Display dc.ffffff80091e0000 registered with id=1
[ 4.225819] tegradc 15210000.nvdisplay: vblank syncpt # 9 for dc 1
[ 4.233494] tegradc 15210000.nvdisplay: vpulse3 syncpt # 11 for dc 1
[ 4.244536] tegradc 15210000.nvdisplay: hdmi: no prod_list_hdmi_board, use default range
[ 4.325852] tegradc 15200000.nvdisplay: blank - normal
[ 4.330255] tegradc 15200000.nvdisplay: blank - powerdown
[ 4.394373] tegradc 15200000.nvdisplay: unblank
[ 4.398512] tegradc 15200000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 4.425001] tegradc 15210000.nvdisplay: probed
[ 5.518120] tegradc 15210000.nvdisplay: fb registered
[ 5.518132] tegradc 15200000.nvdisplay: hdmi: plugged
[ 11.423284] tegradc 15200000.nvdisplay: blank - powerdown
[ 11.522246] tegradc 15200000.nvdisplay: unblank
[ 11.526295] tegradc 15200000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 12.617133] tegradc 15200000.nvdisplay: unblank
[ 12.621827] tegradc 15210000.nvdisplay: blank - powerdown
[ 17.495665] tegradc 15200000.nvdisplay: blank - powerdown
[ 17.588661] tegradc 15200000.nvdisplay: unblank
[ 17.594408] tegradc 15200000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 17.651114] tegradc 15200000.nvdisplay: unblank
[ 17.655693] tegradc 15210000.nvdisplay: blank - powerdown

The other question is
LCD at HDMI-1 has resolution of 1024x768. How can i fix it, without the EDID.

  1. Please also check the pinmux. The default pinmux sets the dp1 to GPIO pin.

  2. Please compare the whole sor/sor1 and nvdisp dts values and see if anything missing.

You could try to dump it by converting dtb back to dts.

Dear WayneWWW,

Thank you for the response.
As we can see from the log SOR1 @Nvdisplay15200000 is working fine. The problem is with sor nvdisplay@15210000.I changed the dts file as you suggested but i am seeing the same response.

Did you check the pinmux?

I didnt changed them.How can i check and change the current pinmux ?

According to your reply, DP1 should be GPIO by default but for me HDMI @Sor1 is working fine.Am i missing something here ?

Hi,

A quick way is open below file /Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg and find dp_aux_ch0_hpd_pp0.

Please modify it as the same value as dp_aux_ch1_hpd_pp1 and re-flash the board.

Thank you for quick response,

In the file you mentioned i found

dp_aux_ch1_hpd_pp1: rsvd1, tristate-enable, input-enable, io_high_voltage-disable

so i Changed
dp_aux_ch0_hpd_pp0: dp, tristate-enable, input-enable, io_high_voltage-disable
to
dp_aux_ch0_hpd_pp0: rsvd0, tristate-enable, input-enable, io_high_voltage-disable

But there is an other reference for dp_aux_ch1_hpd_pp1
which is pinmux.0x02440028 = 0x00000000; # GPIO dp_aux_ch1_hpd_pp1

so what should i put for DP0?

Hi ammar.zafar8,

The actual way to update pinmux is to use the pinmux spreadsheet from our download center.

However, we just resolved a bug on TX2 spreadsheet and thus new file is not yet uploaded.

That is why suggested you to update the value directly.
Please be careful that what you need to change is the value but not the text here.

pinmux.0x02440028 = 0x00000151; # dp_aux_ch1_hpd_pp1: rsvd1, tristate-enable, input-enable, io_high_voltage-disable

You should change below to value 151 too which would configure it as a gpio.

pinmux.0x02440020 = 0x00000550; # dp_aux_ch0_hpd_pp0: dp, tristate-enable, input-enable, io_high_voltage-disable

All gpio pins would have two configurations in this file. You could just write a similar one for pinmux.0x02440020 as pinmux.0x02440028.

1 Like

Dear WayneWWW,
I am using Tx2i is the cfg file for tx2 and tx2i is same ?

Sorry, if this is tx2i, then the file name should have “p3489” keyword.

Please check your flash config (jetson-tx2i.conf) to know the pinmux file you are using.

HI WayneeWWw,

Still facing the same issue. Although Pinmux and Dtb has been adjusted as you said.
tegra186-mb1-bct-pinmux-quill-p3489-1000-a00-cfg.txt (27.6 KB)
dts.txt (368 KB)

Hi,

For debug such issue, please

  1. Please disable nvdisplay15200000 which is working fine and only enable nvdisplay15210000 and share the full dmesg again.
    This is to avoid the log to mix up.

  2. Please try below case and share each dmesg.
    case1: connect the HDMI and then boot up
    case2: hotplug the monitor after system boots up.

According to you log in #1, only the working port has below log. Please try to check if case2 is able to detect the hotplug.

tegradc 15200000.nvdisplay: hdmi: plugged

Also, please use the same monitor which works fine on the first port for test.

Hi,
Actually the nvDisplay@15210000 port is connected to HDMI to LVDS Converter on the custom board so i can not connect the monitor directly to it. Secondly, I am able to read the EDID from the chip with that port.

This is the log for notworking Port.

nvidia@tegra-ubuntu:~$ dmesg |grep ‘tegradc 1521’
[ 4.187937] tegradc 15210000.nvdisplay: DT parsed successfully
[ 4.195195] tegradc 15210000.nvdisplay: Display dc.ffffff80091e0000 registered with id=1
[ 4.204973] tegradc 15210000.nvdisplay: vblank syncpt # 9 for dc 1
[ 4.212556] tegradc 15210000.nvdisplay: vpulse3 syncpt # 11 for dc 1
[ 4.223565] tegradc 15210000.nvdisplay: hdmi: no prod_list_hdmi_board, use default range
[ 4.250788] tegradc 15210000.nvdisplay: probed
[ 4.272947] tegradc 15210000.nvdisplay: fb registered
[ 11.840701] tegradc 15210000.nvdisplay: blank - powerdown
[ 17.287797] tegradc 15210000.nvdisplay: blank - powerdown
[ 609.432885] tegradc 15210000.nvdisplay: blank - powerdown
[ 3650.327385] tegradc 15210000.nvdisplay: blank - powerdown
[ 3651.594726] tegradc 15210000.nvdisplay: blank - powerdown
[ 3651.970094] tegradc 15210000.nvdisplay: blank - powerdown
[ 3775.059972] tegradc 15210000.nvdisplay: blank - powerdown

This is for working PORT

nvidia@tegra-ubuntu:~ dmesg | grep ‘tegradc 1520’
[ 0.456837] tegradc 15200000.nvdisplay: DT parsed successfully
[ 0.456871] tegradc 15200000.nvdisplay: Display dc.ffffff80023c0000 registered with id=0
[ 0.464342] tegradc 15200000.nvdisplay: vblank syncpt # 7 for dc 0
[ 0.464358] tegradc 15200000.nvdisplay: vpulse3 syncpt # 8 for dc 0
[ 0.466991] tegradc 15200000.nvdisplay: hdmi: no prod_list_hdmi_board, use default range
[ 0.522652] tegradc 15200000.nvdisplay: probed
[ 4.117718] tegradc 15200000.nvdisplay: fb registered
[ 4.149710] tegradc 15200000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 4.312324] tegradc 15200000.nvdisplay: blank - normal
[ 4.326386] tegradc 15200000.nvdisplay: blank - powerdown
[ 4.387783] tegradc 15200000.nvdisplay: unblank
[ 4.391638] tegradc 15200000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 6.389330] tegradc 15200000.nvdisplay: hdmi: plugged
[ 10.705676] tegradc 15200000.nvdisplay: blank - powerdown
[ 10.777298] tegradc 15200000.nvdisplay: unblank
[ 10.781734] tegradc 15200000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 11.836074] tegradc 15200000.nvdisplay: unblank
[ 17.134994] tegradc 15200000.nvdisplay: blank - powerdown
[ 17.219700] tegradc 15200000.nvdisplay: unblank
[ 17.225771] tegradc 15200000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 17.282521] tegradc 15200000.nvdisplay: unblank

These are the results for the modes.

nvidia@tegra-ubuntu:~$ sudo cat /sys/kernel/debug/tegradc.0/mode
pclk: 148500000
h_ref_to_sync: 1
v_ref_to_sync: 3
h_sync_width: 44
v_sync_width: 5
h_back_porch: 148
v_back_porch: 36
h_active: 1920
v_active: 1080
h_front_porch: 88
v_front_porch: 4
flags: 0x0
stereo_mode: 0
avi_m: 0x2
vmode: 0x600000

nvidia@tegra-ubuntu:~$ sudo cat /sys/kernel/debug/tegradc.1/mode
pclk: 75001000
h_ref_to_sync: 1
v_ref_to_sync: 4
h_sync_width: 48
v_sync_width: 7
h_back_porch: 124
v_back_porch: 12
h_active: 1280
v_active: 800
h_front_porch: 64
v_front_porch: 5
flags: 0x1
stereo_mode: 0
avi_m: 0x0
vmode: 0x10200000

Hi,
The issue is resolved, there was a hardware problem with Hot plug detection.
Thank you for your support.

No problem. Glad it works.