Hello,
We currently are successfully operating an LT6911UXC HDMI to CSI chip @ 4k30 using the ZHAW Driver with some minor modifications (to implement the compatibilty with the lane_polarity=“6” property for the csi-brick).
lt6911uxc_zhaw_b@2b {
compatible = "lontium,lt6911uxc_zhaw";
reg = <0x2b>;
status = LT6911_EN;
devnode = "video1";
sensor_model="lt6911";
/* Physical dimensions of sensor */
physical_w = "3.674";
physical_h = "2.738";
/* Interrupt */
interrupt-parent = <&gpio_aon>;
interrupts = <TEGRA234_AON_GPIO(CC, 1) IRQ_TYPE_LEVEL_HIGH>;
refclk_hz = <27000000>; /* 40 - 50 MHz */
/* CSI Output */
csi_port = <1>; /* Enable TX0 only */
mode0 { // 1920 x 1080, 60 FPS
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "yes";
dpcm_enable = "false";
cil_settletime = "0";
lane_polarity = "6";
active_w = "1920";
active_h = "1080";
mode_type = "rgb";
pixel_phase = "rgb888";
csi_pixel_bit_depth = "24";
readout_orientation = "0";
line_length = "1920";
pix_clk_hz = "220000000";
default_framerate = "60000000"; /* 60.0 fps */
};
mode1 { // 3840 x 2160, 30 FPS
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "yes";
dpcm_enable = "false";
cil_settletime = "0";
lane_polarity = "0";
active_w = "3840";
active_h = "2160";
mode_type = "rgb";
pixel_phase = "rgb888";
csi_pixel_bit_depth = "24";
readout_orientation = "0";
line_length = "3840";
pix_clk_hz = "297000000";
default_framerate = "30000000"; /* 30.0 fps */
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
status = LT6911_EN;
hdmi2csi_lt6911_out1: endpoint {
status = LT6911_EN;
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&hdmi2csi_csi_in1>;
};
};
};
};
Now we want to run the same chip on 4k60, for which 8 lane CSI is needed. We therefore need to configure two CSI Bricks with the correct lane_polarity since we had to swap polarity of some differential pairs on both CSI interfaces (CSI Brick one: lane_polarity = “6”, CSI Brick two: lane_polarity = “2”). For this reason, gang mode is not an options (since we did not see a way to do that with num-lanes/bus-width=8).
The best solution would be to add the second CSI brick under the same device tree node, looking something like this:
lt6911uxc_zhaw_b@2b {
.....
.....
.....
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
status = LT6911_EN;
hdmi2csi_lt6911_out0: endpoint {
status = LT6911_EN;
**lane_polarity="6";**
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&hdmi2csi_csi_in0>;
};
};
port@1 {
reg = <1>;
status = LT6911_EN;
hdmi2csi_lt6911_out1: endpoint {
status = LT6911_EN;
**lane_polarity="2";**
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&hdmi2csi_csi_in1>;
};
};
};
};
Is there a way to define the modes under the ports (so that we can define the lane_polarity for each port independently?). If i try to do this, my Jetson Linux crashes instantly…
Thanks for your help!