We have a system using a TX2 on a custom carrier where we want to be able
to drive 4 monitors. The 2 HDMI monitors are working fine. Our X-based
application works across the two monitors.
Next step is to enable some CSI output so the hardware dev can start testing his hardware.
I modified our dts based on postings here and the devicetree/bindings information
in the kernel documentation. In the top-level dts for this board I have enabled
dsi and a panel with the following:
#include "tegra186-quill-p3310-1000-c03-00-dsi-hdmi-hdmi.dts"
/ {
nvidia,dtsfilename = __FILE__;
host1x {
dsi {
status = "ok";
panel-s-wqxga-10-1 {
status = "ok";
};
};
};
};
The decompiled dtb has the detailed information for the dsi seems to show this (… indicates removed blocks)
dsi {
compatible = "nvidia,tegra186-dsi";
reg = <0x0 0x15300000 0x0 0x40000 0x0 0x15400000 0x0 0x40000 0x0 0x15900000 0x0 0x40000 0x0 0x15940000 0x0 0x40000 0x0 0x15880000 0x0 0x10000>;
clocks = <0xbc 0xd 0x73 0xd 0x75 0xd 0x76 0xd 0x77 0xd 0xe7 0xd 0xe8 0xd 0xe9 0xd 0xea>;
clock-names = "clk32k_in", "dsi", "dsia_lp", "dsib", "dsib_lp", "dsic", "dsic_lp", "dsid", "dsid_lp";
resets = <0xd 0x6 0xd 0x7 0xd 0x3f 0xd 0x40 0xd 0x91>;
reset-names = "dsia", "dsib", "dsic", "dsid", "dsi_padctrl";
nvidia,enable-hs-clk-in-lp-mode = <0x1>;
pad-controllers = <0x10 0xf 0x10 0x10 0x10 0x11 0x10 0x12>;
pad-names = "dsia", "dsib", "dsic", "dsid";
status = "ok";
nvidia,dsi-controller-vs = <0x1>;
prod-settings {
#prod-cells = <0x3>;
dsi-padctrl-prod {
prod = <0x24 0x3f0fc3f 0x0 0x28 0x333333 0x0 0x30 0xffffff 0x0 0x34 0xffffff 0x777777 0x54 0x3f0fc3f 0x0 0x58 0x333333 0x0 0x60 0xffffff 0x0 0x64 0xffffff 0x777777 0x84 0x3f0fc3f 0x0 0x88 0x333333 0x0 0x90 0xffffff 0x0 0x94 0xffffff 0x777777 0xb4 0x3f0fc3f 0x0 0xb8 0x333333 0x0 0xc0 0xffffff 0x0 0xc4 0xffffff 0x777777>;
};
};
...
panel-s-wqxga-10-1 {
status = "ok";
compatible = "s,wqxga-10-1";
nvidia,dsi-instance = <0x0>;
nvidia,dsi-n-data-lanes = <0x8>;
nvidia,dsi-pixel-format = <0x3>;
nvidia,dsi-refresh-rate = <0x3d>;
nvidia,dsi-rated-refresh-rate = <0x3c>;
nvidia,dsi-te-polarity-low = <0x1>;
...
And these nodes show up under
/sys/firmware/devicetree/base/host1x/dsi
So that all seems correct.
A dsi device is created
/sys/devices/13e10000.host1x/15300000.dsi
But no screen or monitor is detected by xrandr, and there are only the two /dev/fb[01] entries
for the HDMI monitors. There is no dsi activity in the kernel log except for this one
power message:
[ 0.317764] avdd_dsi_csi: 1200 mV
Any ideas how I can get this working so we can continue to debug the hardware?
Thanks in advance,
Cary