this is CSI2 connect;
CSI port config as 4 lanes; this is the devicetree config:
#define BUS_WIDTH 4
#define BUS0_WIDTH 4
/ {
tegra-capture-vi {
num-channels = <8>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_vi_in0: endpoint {
vc-id = <0>;
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_out0>;
};
};
port@1 {
reg = <1>;
ar0233yuv_vi_in1: endpoint {
vc-id = <1>;
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_out1>;
};
};
port@2 {
reg = <2>;
ar0233yuv_vi_in2: endpoint {
vc-id = <2>;
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_out2>;
};
};
port@3 {
reg = <3>;
ar0233yuv_vi_in3: endpoint {
vc-id = <3>;
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_out3>;
};
};
port@4 {
reg = <4>;
ar0233yuv_vi_in4: endpoint {
vc-id = <0>;
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_out4>;
};
};
port@5 {
reg = <5>;
ar0233yuv_vi_in5: endpoint {
vc-id = <1>;
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_out5>;
};
};
port@6 {
reg = <6>;
ar0233yuv_vi_in6: endpoint {
vc-id = <2>;
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_out6>;
};
};
port@7 {
reg = <7>;
ar0233yuv_vi_in7: endpoint {
vc-id = <3>;
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_out7>;
};
};
};
};
host1x@13e00000 {
nvcsi@15a00000 {
num-channels = <8>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_csi_in0: endpoint@0 {
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_out0>;
};
};
port@1 {
reg = <1>;
ar0233yuv_csi_out0: endpoint@1 {
remote-endpoint = <&ar0233yuv_vi_in0>;
};
};
};
};
channel@1 {
reg = <1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_csi_in1: endpoint@2 {
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_out1>;
};
};
port@1 {
reg = <1>;
ar0233yuv_csi_out1: endpoint@3 {
remote-endpoint = <&ar0233yuv_vi_in1>;
};
};
};
};
channel@2 {
reg = <2>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_csi_in2: endpoint@4 {
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_out2>;
};
};
port@1 {
reg = <1>;
ar0233yuv_csi_out2: endpoint@5 {
remote-endpoint = <&ar0233yuv_vi_in2>;
};
};
};
};
channel@3 {
reg = <3>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_csi_in3: endpoint@6 {
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_out3>;
};
};
port@1 {
reg = <1>;
ar0233yuv_csi_out3: endpoint@7 {
remote-endpoint = <&ar0233yuv_vi_in3>;
};
};
};
};
channel@4 {
reg = <4>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_csi_in4: endpoint@8 {
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_out4>;
};
};
port@1 {
reg = <1>;
ar0233yuv_csi_out4: endpoint@9 {
remote-endpoint = <&ar0233yuv_vi_in4>;
};
};
};
};
channel@5 {
reg = <5>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_csi_in5: endpoint@10 {
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_out5>;
};
};
port@1 {
reg = <1>;
ar0233yuv_csi_out5: endpoint@11 {
remote-endpoint = <&ar0233yuv_vi_in5>;
};
};
};
};
channel@6 {
reg = <6>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_csi_in6: endpoint@12 {
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_out6>;
};
};
port@1 {
reg = <1>;
ar0233yuv_csi_out6: endpoint@13 {
remote-endpoint = <&ar0233yuv_vi_in6>;
};
};
};
};
channel@7 {
reg = <7>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_csi_in7: endpoint@14 {
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_out7>;
};
};
port@1 {
reg = <1>;
ar0233yuv_csi_out7: endpoint@15 {
remote-endpoint = <&ar0233yuv_vi_in7>;
};
};
};
};
};
};
i2c@c240000 {
ar0233yuv_a@1a {
compatible = "nvidia,ar0233yuv";
reg = <0x1a>;
reg_mux = <0>;
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
sensor_model ="ar0233yuv";
/* Defines number of frames to be dropped by driver internally after applying */
/* sensor crop settings. Some sensors send corrupt frames after applying */
/* crop co-ordinates */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
mode0 {/*mode ar0233yuv_MODE_1920X1080_CROP_30FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
vc_id = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "yuyv";
lane_polarity = "6";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
line_length = "1920";
inherent_gain = "1";
mclk_multiplier = "200";
pix_clk_hz = "74250000";
serdes_pix_clk_hz = "833333333";
gain_factor = "10";
min_gain_val = "1"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3"; /* 0.3 */
default_gain = "0";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59"; /*us, 2 lines*/
max_exp_time = "16657";
step_exp_time = "1";
default_exp_time = "16657";/* us */
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_out0: endpoint {
vc-id = <0>;
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_in0>;
};
};
};
gmsl-link {
src-csi-port = "b";
dst-csi-port = "a";
serdes-csi-link = "a";
csi-mode = "1x4";
st-vc = <0>;
vc-id = <0>;
num-lanes = <BUS0_WIDTH>;
streams = "ued-u1", "yuv422";
};
};
ar0233yuv_b@1b {
compatible = "nvidia,ar0233yuv";
reg = <0x1b>;
reg_mux = <0>;
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
sensor_model ="ar0233yuv";
/* Defines number of frames to be dropped by driver internally after applying */
/* sensor crop settings. Some sensors send corrupt frames after applying */
/* crop co-ordinates */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
mode0 {/*mode ar0233yuv_MODE_1920X1080_CROP_30FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_b";
vc_id = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "yuyv";
lane_polarity = "6";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
line_length = "1920";
inherent_gain = "1";
mclk_multiplier = "200";
pix_clk_hz = "74250000";
serdes_pix_clk_hz = "833333333";
gain_factor = "10";
min_gain_val = "1"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3"; /* 0.3 */
default_gain = "0";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59"; /*us, 2 lines*/
max_exp_time = "16657";
step_exp_time = "1";
default_exp_time = "16657";/* us */
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_out1: endpoint {
vc-id = <1>;
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_in1>;
};
};
};
gmsl-link {
src-csi-port = "b";
dst-csi-port = "a";
serdes-csi-link = "b";
csi-mode = "1x4";
st-vc = <0>;
vc-id = <1>;
num-lanes = <BUS0_WIDTH>;
streams = "ued-u1", "yuv422";
};
};
ar0233yuv_c@1c {
compatible = "nvidia,ar0233yuv";
reg = <0x1c>;
reg_mux = <0>;
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
sensor_model ="ar0233yuv";
/* Defines number of frames to be dropped by driver internally after applying */
/* sensor crop settings. Some sensors send corrupt frames after applying */
/* crop co-ordinates */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
mode0 {/*mode ar0233yuv_MODE_1920X1080_CROP_30FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_c";
vc_id = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "yuyv";
lane_polarity = "6";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
line_length = "1920";
inherent_gain = "1";
mclk_multiplier = "200";
pix_clk_hz = "74250000";
serdes_pix_clk_hz = "833333333";
gain_factor = "10";
min_gain_val = "1"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3"; /* 0.3 */
default_gain = "0";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59"; /*us, 2 lines*/
max_exp_time = "16657";
step_exp_time = "1";
default_exp_time = "16657";/* us */
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_out2: endpoint {
vc-id = <2>;
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_in2>;
};
};
};
gmsl-link {
src-csi-port = "b";
dst-csi-port = "a";
serdes-csi-link = "c";
csi-mode = "1x4";
st-vc = <0>;
vc-id = <2>;
num-lanes = <BUS0_WIDTH>;
streams = "ued-u1", "yuv422";
};
};
ar0233yuv_d@1d {
compatible = "nvidia,ar0233yuv";
reg = <0x1d>;
reg_mux = <0>;
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
sensor_model ="ar0233yuv";
/* Defines number of frames to be dropped by driver internally after applying */
/* sensor crop settings. Some sensors send corrupt frames after applying */
/* crop co-ordinates */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
mode0 {/*mode ar0233yuv_MODE_1920X1080_CROP_30FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_d";
vc_id = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "yuyv";
lane_polarity = "6";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
line_length = "1920";
inherent_gain = "1";
mclk_multiplier = "200";
pix_clk_hz = "74250000";
serdes_pix_clk_hz = "833333333";
gain_factor = "10";
min_gain_val = "1"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3"; /* 0.3 */
default_gain = "0";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59"; /*us, 2 lines*/
max_exp_time = "16657";
step_exp_time = "1";
default_exp_time = "16657";/* us */
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_out3: endpoint {
vc-id = <3>;
port-index = <0>;
bus-width = <BUS0_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_in3>;
};
};
};
gmsl-link {
src-csi-port = "b";
dst-csi-port = "a";
serdes-csi-link = "d";
csi-mode = "1x4";
st-vc = <0>;
vc-id = <3>;
num-lanes = <BUS0_WIDTH>;
streams = "ued-u1", "yuv422";
};
};
ar0233yuv_e@1e {
compatible = "nvidia,ar0233yuv";
reg = <0x1e>;
reg_mux = <0>;
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
sensor_model ="ar0233yuv";
/* Defines number of frames to be dropped by driver internally after applying */
/* sensor crop settings. Some sensors send corrupt frames after applying */
/* crop co-ordinates */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
mode0 {/*mode ar0233yuv_MODE_1920X1080_CROP_30FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
vc_id = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "yuyv";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
line_length = "1920";
inherent_gain = "1";
mclk_multiplier = "200";
pix_clk_hz = "74250000";
serdes_pix_clk_hz = "833333333";
gain_factor = "10";
min_gain_val = "1"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3"; /* 0.3 */
default_gain = "0";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59"; /*us, 2 lines*/
max_exp_time = "16657";
step_exp_time = "1";
default_exp_time = "16657";/* us */
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_out4: endpoint {
vc-id = <0>;
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_in4>;
};
};
};
gmsl-link {
src-csi-port = "b";
dst-csi-port = "a";
serdes-csi-link = "a";
csi-mode = "1x4";
st-vc = <0>;
vc-id = <0>;
num-lanes = <BUS_WIDTH>;
streams = "ued-u1", "yuv422";
};
};
ar0233yuv_f@1f {
compatible = "nvidia,ar0233yuv";
reg = <0x1f>;
reg_mux = <0>;
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
sensor_model ="ar0233yuv";
/* Defines number of frames to be dropped by driver internally after applying */
/* sensor crop settings. Some sensors send corrupt frames after applying */
/* crop co-ordinates */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
mode0 {/*mode ar0233yuv_MODE_1920X1080_CROP_30FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_b";
vc_id = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "yuyv";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
line_length = "1920";
inherent_gain = "1";
mclk_multiplier = "200";
pix_clk_hz = "74250000";
serdes_pix_clk_hz = "833333333";
gain_factor = "10";
min_gain_val = "1"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3"; /* 0.3 */
default_gain = "0";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59"; /*us, 2 lines*/
max_exp_time = "16657";
step_exp_time = "1";
default_exp_time = "16657";/* us */
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_out5: endpoint {
vc-id = <1>;
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_in5>;
};
};
};
gmsl-link {
src-csi-port = "b";
dst-csi-port = "a";
serdes-csi-link = "b";
csi-mode = "1x4";
st-vc = <0>;
vc-id = <1>;
num-lanes = <BUS_WIDTH>;
streams = "ued-u1", "yuv422";
};
};
ar0233yuv_g@20 {
compatible = "nvidia,ar0233yuv";
reg = <0x20>;
reg_mux = <0>;
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
sensor_model ="ar0233yuv";
/* Defines number of frames to be dropped by driver internally after applying */
/* sensor crop settings. Some sensors send corrupt frames after applying */
/* crop co-ordinates */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
mode0 {/*mode ar0233yuv_MODE_1920X1080_CROP_30FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_c";
vc_id = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "yuyv";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
line_length = "1920";
inherent_gain = "1";
mclk_multiplier = "200";
pix_clk_hz = "74250000";
serdes_pix_clk_hz = "833333333";
gain_factor = "10";
min_gain_val = "1"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3"; /* 0.3 */
default_gain = "0";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59"; /*us, 2 lines*/
max_exp_time = "16657";
step_exp_time = "1";
default_exp_time = "16657";/* us */
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_out6: endpoint {
vc-id = <2>;
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_in6>;
};
};
};
gmsl-link {
src-csi-port = "b";
dst-csi-port = "a";
serdes-csi-link = "c";
csi-mode = "1x4";
st-vc = <0>;
vc-id = <2>;
num-lanes = <BUS_WIDTH>;
streams = "ued-u1", "yuv422";
};
};
ar0233yuv_h@21 {
compatible = "nvidia,ar0233yuv";
reg = <0x21>;
reg_mux = <0>;
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
sensor_model ="ar0233yuv";
/* Defines number of frames to be dropped by driver internally after applying */
/* sensor crop settings. Some sensors send corrupt frames after applying */
/* crop co-ordinates */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
mode0 {/*mode ar0233yuv_MODE_1920X1080_CROP_30FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_d";
vc_id = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "yuyv";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
line_length = "1920";
inherent_gain = "1";
mclk_multiplier = "200";
pix_clk_hz = "74250000";
serdes_pix_clk_hz = "833333333";
gain_factor = "10";
min_gain_val = "1"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3"; /* 0.3 */
default_gain = "0";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59"; /*us, 2 lines*/
max_exp_time = "16657";
step_exp_time = "1";
default_exp_time = "16657";/* us */
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0233yuv_out7: endpoint {
vc-id = <3>;
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&ar0233yuv_csi_in7>;
};
};
};
gmsl-link {
src-csi-port = "b";
dst-csi-port = "a";
serdes-csi-link = "d";
csi-mode = "1x4";
st-vc = <0>;
vc-id = <3>;
num-lanes = <BUS_WIDTH>;
streams = "ued-u1", "yuv422";
};
};
};
};
/ {
tegra-camera-platform {
compatible = "nvidia, tegra-camera-platform";
/**
* Physical settings to calculate max ISO BW
*
* num_csi_lanes = <>;
* Total number of CSI lanes when all cameras are active
*
* max_lane_speed = <>;
* Max lane speed in Kbit/s
*
* min_bits_per_pixel = <>;
* Min bits per pixel
*
* vi_peak_byte_per_pixel = <>;
* Max byte per pixel for the VI ISO case
*
* vi_bw_margin_pct = <>;
* Vi bandwidth margin in percentage
*
* max_pixel_rate = <>;
* Max pixel rate in Kpixel/s for the ISP ISO case
*
* isp_peak_byte_per_pixel = <>;
* Max byte per pixel for the ISP ISO case
*
* isp_bw_margin_pct = <>;
* Isp bandwidth margin in percentage
*/
num_csi_lanes = <8>;
max_lane_speed = <4000000>;
min_bits_per_pixel = <10>;
vi_peak_byte_per_pixel = <2>;
vi_bw_margin_pct = <25>;
max_pixel_rate = <7500000>;
isp_peak_byte_per_pixel = <5>;
isp_bw_margin_pct = <25>;
/**
* The general guideline for naming badge_info contains 3 parts, and is as follows,
* The first part is the camera_board_id for the module; if the module is in a FFD
* platform, then use the platform name for this part.
* The second part contains the position of the module, ex. "rear" or "front".
* The third part contains the last 6 characters of a part number which is found
* in the module's specsheet from the vendor.
*/
modules {
module0 {
badge = "max96712_ar0233yuv";
position = "front";
orientation = "1";
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ar0233yuv 30-001a";
proc-device-tree = "/proc/device-tree/i2c@c240000/ar0233yuv_a@1a";
};
};
module1 {
badge = "max96712_ar0233yuv";
position = "rear";
orientation = "1";
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ar0233yuv 30-001b";
proc-device-tree = "/proc/device-tree/i2c@c240000/ar0233yuv_b@1b";
};
};
module2 {
badge = "max96712_ar0233yuv";
position = "left";
orientation = "1";
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ar0233yuv 30-001c";
proc-device-tree = "/proc/device-tree/i2c@c240000/ar0233yuv_c@1c";
};
};
module3 {
badge = "max96712_ar0233yuv";
position = "right";
orientation = "1";
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ar0233yuv 30-001d";
proc-device-tree = "/proc/device-tree/i2c@c240000/ar0233yuv_d@1d";
};
};
module4 {
badge = "max96712_ar0233yuv";
position = "front";
orientation = "1";
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ar0233yuv 30-001e";
proc-device-tree = "/proc/device-tree/i2c@c240000/ar0233yuv_e@1e";
};
};
module5 {
badge = "max96712_ar0233yuv";
position = "rear";
orientation = "1";
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ar0233yuv 30-001f";
proc-device-tree = "/proc/device-tree/i2c@c240000/ar0233yuv_f@1f";
};
};
module6 {
badge = "max96712_ar0233yuv";
position = "left";
orientation = "1";
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ar0233yuv 30-0020";
proc-device-tree = "/proc/device-tree/i2c@c240000/ar0233yuv_g@20";
};
};
module7 {
badge = "max96712_ar0233yuv";
position = "right";
orientation = "1";
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "ar0233yuv 30-0021";
proc-device-tree = "/proc/device-tree/i2c@c240000/ar0233yuv_h@21";
};
};
};
};
};
The CSI2 port work correctly,but the CSI0 port can not startup. No data is being transferred on the CSI0 bus.
The serializer and deserializer configurations corresponding to the two sets of buses are the same.
Any ideas for troubleshooting?