Xaiver nx csi g

Hello

  1. 硬件环境
    a. xavier nx
    b. camera x5 分别接到接到CSI0,CSI1,CSI2,CSI3,CSI5(csi_g)

  2. 软件环境
    jetpak 5.0.2

    有个问题想请教一下关于xavier nx csi g,我这边设备树如下:

//下视csi port chan
			csi_chan3: channel@3 {
				reg = <3>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					csi_chan3_port0: port@0 {
						reg = <0>;
						xc9080_csi_in3: endpoint@6 {
							port-index = <6>;
							bus-width = <2>;
							remote-endpoint = <&xc9080_out3>;
						};
					};
					csi_chan3_port1: port@1 {
						reg = <1>;
						xc9080_csi_out3: endpoint@7 {
							remote-endpoint = <&xc9080_vi_in3>;
						};
					};
				};
			};
//下视 vi chan
			vi_port3: port@3 {
				reg = <3>;
				xc9080_vi_in3: endpoint {
					port-index = <5>;
					bus-width = <2>;
					remote-endpoint = <&xc9080_csi_out3>;
				};
			};
			xc9080_d@1e {//下视
				compatible = "nvidia,xc9080";
				/* I2C device address */
				reg = <0x1e>;

				/* V4L2 device node location */
				devnode = "video3";

				/* Physical dimensions of sensor */
				physical_w = "3.680";
				physical_h = "2.760";

				sensor_model = "xc9080";

				use_sensor_mode_id = "true";

				/**
				* ==== Modes ====
				* A modeX node is required to support v4l2 driver
				* implementation with NVIDIA camera software stack
				*
				* == Signal properties ==
				*
				* phy_mode = "";
				* PHY mode used by the MIPI lanes for this device
				*
				* tegra_sinterface = "";
				* CSI Serial interface connected to tegra
				* Incase of virtual HW devices, use virtual
				* For SW emulated devices, use host
				*
				* pix_clk_hz = "";
				* Sensor pixel clock used for calculations like exposure and framerate
				*
				* readout_orientation = "0";
				* Based on camera module orientation.
				* Only change readout_orientation if you specifically
				* Program a different readout order for this mode
				*
				* == Image format Properties ==
				*
				* active_w = "";
				* Pixel active region width
				*
				* active_h = "";
				* Pixel active region height
				*
				* pixel_t = "";
				* The sensor readout pixel pattern
				*
				* line_length = "";
				* Pixel line length (width) for sensor mode.
				*
				* == Source Control Settings ==
				*
				* Gain factor used to convert fixed point integer to float
				* Gain range [min_gain/gain_factor, max_gain/gain_factor]
				* Gain step [step_gain/gain_factor is the smallest step that can be configured]
				* Default gain [Default gain to be initialized for the control.
				*     use min_gain_val as default for optimal results]
				* Framerate factor used to convert fixed point integer to float
				* Framerate range [min_framerate/framerate_factor, max_framerate/framerate_factor]
				* Framerate step [step_framerate/framerate_factor is the smallest step that can be configured]
				* Default Framerate [Default framerate to be initialized for the control.
				*     use max_framerate to get required performance]
				* Exposure factor used to convert fixed point integer to float
				* For convenience use 1 sec = 1000000us as conversion factor
				* Exposure range [min_exp_time/exposure_factor, max_exp_time/exposure_factor]
				* Exposure step [step_exp_time/exposure_factor is the smallest step that can be configured]
				* Default Exposure Time [Default exposure to be initialized for the control.
				*     Set default exposure based on the default_framerate for optimal exposure settings]
				*
				* gain_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_gain_val = ""; (ceil to integer)
				* max_gain_val = ""; (ceil to integer)
				* step_gain_val = ""; (ceil to integer)
				* default_gain = ""; (ceil to integer)
				* Gain limits for mode
				*
				* exposure_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_exp_time = ""; (ceil to integer)
				* max_exp_time = ""; (ceil to integer)
				* step_exp_time = ""; (ceil to integer)
				* default_exp_time = ""; (ceil to integer)
				* Exposure Time limits for mode (sec)
				*
				* framerate_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_framerate = ""; (ceil to integer)
				* max_framerate = ""; (ceil to integer)
				* step_framerate = ""; (ceil to integer)
				* default_framerate = ""; (ceil to integer)
				* Framerate limits for mode (fps)
				*
				* embedded_metadata_height = "";
				* Sensor embedded metadata height in units of rows.
				* If sensor does not support embedded metadata value should be 0.
				*/
				mode0 { /* xc9080_MODE_2560x1280_30FPS */
					mclk_khz = "24000";
					num_lanes = "2";
					tegra_sinterface = "serial_g";
					phy_mode = "DPHY";
					discontinuous_clk = "no";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "2160";
					active_h = "1280";
					mode_type = "yuv";
					pixel_phase = "uyvy";
					csi_pixel_bit_depth = "16";
					dynamic_pixel_bit_depth = "16";
					readout_orientation = "0";
					line_length = "2540";
					inherent_gain = "1";
					mclk_multiplier = "9.33";
					pix_clk_hz = "120000000";

					gain_factor = "16";
					framerate_factor = "1000000";
					exposure_factor = "1000000";
					min_gain_val = "16"; /* 1.00x */
					max_gain_val = "170"; /* 10.66x */
					step_gain_val = "1";
					default_gain = "16"; /* 1.00x */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "30000000"; /* 2.0 fps */
					max_framerate = "30000000"; /* 21.0 fps */
					step_framerate = "1";
					default_framerate = "30000000"; /* 21.0 fps */
					min_exp_time = "13"; /* us */
					max_exp_time = "683709"; /* us */
					step_exp_time = "1";
					default_exp_time = "2495"; /* us */

					embedded_metadata_height = "0";
				};

				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						xc9080_out3: endpoint {
							status = "okay";
							port-index = <6>;
							bus-width = <2>;
							remote-endpoint = <&xc9080_csi_in3>;
						};
					};
				};
			};
  1. 问题
    a. 其中CSI0,CSI1,CSI2,CSI3都能采集到视频数据,但csi_g,也就是DSI这路采集不到数据,会是什么原因,我的设备树有没有配置错误 ?
    b. CSI4 和CSI_g作为一个独立的vi通道?分别是port-index = <4>,port-index = <5> ?
    c. 验证条件是每个csi的数据都是一样的,都是2 lane接收。
    d. DSI_CLK_N DSI_CLK_P DSI_D0_N DSI_D0_P DSI_D1_N DSI_D1_P
    以上gpio是否默认复用成CSI 模式?
DSI_CLK_N 76 CSI_G_CLK_N CSI_G_CLK_N z CSI_G_CLK_N
DSI_CLK_P 78 CSI_G_CLK_P CSI_G_CLK_P z CSI_G_CLK_P
DSI_D0_N 70 CSI_G_D0_N CSI_G_D0_N z CSI_G_D0_N
DSI_D0_P 72 CSI_G_D0_P CSI_G_D0_P z CSI_G_D0_P
DSI_D1_N 82 CSI_G_D1_N CSI_G_D1_N z CSI_G_D1_N
DSI_D1_P 84 CSI_G_D1_P CSI_G_D1_P z CSI_G_D1_P

The port-index in vi@ and csi@ is correct but in the sensor scope should be 5

You can reference to below board for CSI-G …/hardware/nvidia/platform/t19x/common/kernel-dts/t19x-common-modules/tegra194-camera-e3333-a00.dtsi

					default_exp_time = "2495"; /* us */

					embedded_metadata_height = "0";
				};

				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						xc9080_out3: endpoint {
							status = "okay";
							port-index = <6>;
							bus-width = <2>;
							remote-endpoint = <&xc9080_csi_in3>;
						};

谢谢!

我这边先验证一下。

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.