Hello,
I have reviewed these posts:
- https://devtalk.nvidia.com/default/topic/1032382/how-to-enable-displayport-
- https://devtalk.nvidia.com/default/topic/1024140/jetson-tx2/displayport-output-on-tx2
- https://devtalk.nvidia.com/default/topic/937880/jetson-tx1/displayport-output-on-x1
I also posted this : https://devtalk.nvidia.com/default/topic/1035687/jetson-tx2/configuring-power-in-device-tree-for-display-port-on-tx2/ but now I don’t think this is a power tree problem.
I have a custom carrier card configured to use a single display port monitor connected to DP0. I’m having trouble understanding and configuring the device tree.
We are using the Jetson TX2.
Looking at the Parker TRM, I believe DP0 is mapped to address 0x15200000. p30
The display port connector is connected to the “DP0_” pins on the Jetson TX2 and
the DP0_HDP.
In the Jetson-TX2-Generic-Customer-Pinmux-Template.xlsm file, “HDMI_DP1” on line
284 appears to map to “DP0_” and “HDMI_DP0” appears to map to “DP1_”. Is this a
typo?
I tried to configure the device tree to use the display port by selecting the display port in the
./JetPack-3.2/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-common.dtsi
(see “changed this” annotation)
...
host1x {
nvdisplay@15200000 {
status = "okay";
nvidia,dc-flags = <TEGRA_DC_FLAG_ENABLED>;
nvidia,emc-rate = <300000000>;
nvidia,fb-bpp = <32>;
nvidia,fb-flags = <TEGRA_FB_FLIP_ON_PROBE>;
nvidia,fb-win = <0>;
win-mask = <0x7>;
// nvidia,dc-or-node = "/host1x/dsi";
nvidia,dc-or-node = "/host1x/sor"; // changed this
nvidia,cmu-enable = <1>;
};
nvdisplay@15210000 {
status = "okay";
nvidia,dc-flags = <TEGRA_DC_FLAG_ENABLED>;
nvidia,emc-clk-rate = <300000000>;
nvidia,fb-bpp = <32>; /* bits per pixel */
nvidia,fb-flags = <TEGRA_FB_FLIP_ON_PROBE>;
nvidia,fb-win = <3>;
win-mask = <0x18>;
nvidia,dc-or-node = "/host1x/sor1";
nvidia,cmu-enable = <1>;
};
nvdisplay@15220000 {
status = "okay";
nvidia,dc-flags = <TEGRA_DC_FLAG_ENABLED>;
nvidia,emc-clk-rate = <300000000>;
nvidia,fb-bpp = <32>; /* bits per pixel */
nvidia,fb-flags = <TEGRA_FB_FLIP_ON_PROBE>;
nvidia,fb-win = <5>;
win-mask = <0x20>;
// nvidia,dc-or-node = "/host1x/sor";
nvidia,dc-or-node = "/host1x/dsi"; // changed this
nvidia,cmu-enable = <1>;
};
...
sor{
status = "okay";
nvidia,xbar-ctrl = <0 1 2 3 4>;
nvidia,hpd-gpio = <&tegra_main_gpio TEGRA_MAIN_GPIO(P, 0) GPIO_ACTIVE_LOW>;
panel-s-edp-uhdtv-15-6 {
nvidia,panel-bl-pwm-gpio = <&tegra_aon_gpio TEGRA_AON_GPIO(U, 5) 0>;
};
hdmi-display {
status = "disabled";
};
dp-display {
status = "okay"; // changed this
disp-default-out {
nvidia,out-parent-clk = "plld3";
};
};
};
sor1 {
status = "okay";
nvidia,xbar-ctrl = <0 1 2 3 4>;
nvidia,hpd-gpio = <&tegra_main_gpio TEGRA_MAIN_GPIO(P, 1) GPIO_ACTIVE_LOW>;
hdmi-display {
status = "disabled"; // changed this
};
dp-display {
status = "disabled";
};
};
Why was nvdisplay@15200000 originally connected to “dsi”, which is an input?
In the system logs, It appears that DP1 is still being configured. I know I’m
burning the DTS properly because other custom devices are being configured
properly. To put the device tree in the Jetson I’m using
L4T=~/nvidia/JetPack-3.2/64_TX2/Linux_for_Tegra/
cd $L4T/sources/kernel/kernel-4.4/output/arch/arm64/boot/dts
cp tegra186-quill-p3310-1000-c03-00-base.dtb $L4T/kernel/dtb/
cd $L4T
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1
$ grep nvdisplay sys.log
[ 0.246269] iommu: Adding device 15210000.nvdisplay to group 36
[ 0.449106] tegradc 15210000.nvdisplay: DT parsed successfully
[ 0.449162] tegradc 15210000.nvdisplay: Display dc.ffffff8002320000 registered with id=0
[ 0.457806] tegradc 15210000.nvdisplay: vblank syncpt # 7 for dc 1
[ 0.457822] tegradc 15210000.nvdisplay: vpulse3 syncpt # 8 for dc 1
[ 0.460252] tegradc 15210000.nvdisplay: hdmi: no prod_list_hdmi_board, use default range
[ 2.462747] tegradc 15210000.nvdisplay: probed
[ 4.817622] tegradc 15210000.nvdisplay: fb registered
[ 4.854530] tegradc 15210000.nvdisplay: hdmi: pclk:25200K, set prod-setting:prod_c_54M
[ 8.673827] tegradc 15210000.nvdisplay: blank - powerdown
[ 8.763988] tegradc 15210000.nvdisplay: unblank
[ 8.768680] tegradc 15210000.nvdisplay: hdmi: pclk:25200K, set prod-setting:prod_c_54M
[ 9.905024] tegradc 15210000.nvdisplay: unblank
[ 12.466279] tegradc 15210000.nvdisplay: blank - powerdown
[ 12.548989] tegradc 15210000.nvdisplay: unblank
[ 12.554444] tegradc 15210000.nvdisplay: hdmi: pclk:25200K, set prod-setting:prod_c_54M
[ 12.620812] tegradc 15210000.nvdisplay: unblank
[ 41.751098] tegradc 15210000.nvdisplay: blank - powerdown
[ 41.835070] tegradc 15210000.nvdisplay: unblank
[ 41.841314] tegradc 15210000.nvdisplay: hdmi: pclk:25200K, set prod-setting:prod_c_54M
Why is the kernel configuring 15210000.nvdisplay? I thought it was disabled.
I’m also now getting I2C errors in the system log. For example
[ 15.208717] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[ 15.208719] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[ 15.208723] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[ 15.208726] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[ 15.208729] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[ 15.208732] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[ 15.208734] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[ 15.208736] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[ 15.208769] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
When I plug in and unplug the display I’m getting :
[ 12.466279] tegradc 15210000.nvdisplay: blank - powerdown
[ 12.532957] PD DISP2 index4 DOWN
[ 12.533051] PD DISP1 index3 DOWN
[ 12.533128] PD DISP0 index2 DOWN
[ 12.548989] tegradc 15210000.nvdisplay: unblank
[ 12.549002] PD DISP0 index2 UP
[ 12.549825] PD DISP1 index3 UP
[ 12.549904] PD DISP2 index4 UP
[ 12.551490] Parent Clock set for DC plld2
[ 12.553336] edid invalid
[ 12.554411] edid invalid
[ 12.554414] edid invalid
[ 12.554444] tegradc 15210000.nvdisplay: hdmi: pclk:25200K, set prod-setting:prod_c_54M
[ 12.620812] tegradc 15210000.nvdisplay: unblank
I have also tried different types of displays with the same results.
Thanks for you help.