hi!
I set different modes for the camera sensor in the device tree, but only the pixel_phase property in the first mode works. When I switch modes, pixel_phase is still the value set in the first mode.
Here is my device tree code:
i2c@3180000 {
imx586_a@34 {
compatible = "nvidia,imx586";
/* I2C device address */
reg = <0x1A>;
/* V4L2 device node location */
devnode = "video1";
/* Physical dimensions of sensor */
physical_w = "6.4";
physical_h = "4.8";
sensor_model ="imx586";
/* Define any required hw resources needed by driver */
/* ie. clocks, io pins, power sources */
avdd-reg = "vana";
iovdd-reg = "vif";
dvdd-reg = "vdig";
/* Sensor output flip settings */
vertical-flip = "true";
/* 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";
/* if true, delay gain setting by one frame to be in sync with exposure */
delayed_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
/**
* A modeX node is required to support v4l2 driver
* implementation with NVIDIA camera software stack
*
* mclk_khz = "";
* Standard MIPI driving clock, typically 24MHz
*
* num_lanes = "";
* Number of lane channels sensor is programmed to output
*
* tegra_sinterface = "";
* The base tegra serial interface lanes are connected to
* Incase of virtual HW devices, use virtual
* For SW emulated devices, use host
* must be set to the CSI port where the sensor is connected
*
* phy_mode = "";
* PHY mode used by the MIPI lanes for this device
*
* discontinuous_clk = "";
* The sensor is programmed to use a discontinuous clock on MIPI lanes
*
* dpcm_enable = "true";
* The sensor is programmed to use a DPCM modes
*
* cil_settletime = "";
* MIPI lane settle time value.
* A "0" value attempts to autocalibrate based on mclk_multiplier
*
*
*
*
* active_w = "";
* Pixel active region width
*
* active_h = "";
* Pixel active region height
*
* pixel_t = "";
* The sensor readout pixel pattern
*
* readout_orientation = "0";
* Based on camera module orientation.
* Only change readout_orientation if you specifically
* Program a different readout order for this mode
*
* line_length = "";
* Pixel line length (width) for sensor mode.
* This is used to calibrate features in our camera stack.
*
* mclk_multiplier = "";
* Multiplier to MCLK to help time hardware capture sequence
* TODO: Assign to PLL_Multiplier as well until fixed in core
*
* pix_clk_hz = "";
* Sensor pixel clock used for calculations like exposure and framerate
*
*
*
*
* inherent_gain = "";
* Gain obtained inherently from mode (ie. pixel binning)
*
* == 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 (us)
*
*
* min_hdr_ratio = "";
* max_hdr_ratio = "";
* HDR Ratio limits for mode
*
* framerate_factor = ""; (integer factor used for floating to fixed point conversion)
* min_framerate = "";
* max_framerate = "";
* 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 {/*mode IMX586_MODE_4000X3000_HDR_30FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "10";
csi_pixel_bit_depth = "10";
mode_type = "bayer";
pixel_phase = "rggb";
//pixel_phase = "bggr";
active_w = "4000";
active_h = "3000";
readout_orientation = "0";
line_length = "9440";
inherent_gain = "1";
mclk_multiplier = "1042";
pix_clk_hz = "1718400000";
//gain
gain_factor = "10";
min_gain_val = "10"; /* 1dB */
max_gain_val = "240"; /* 24dB */
step_gain_val = "10"; /* 1 */
default_gain = "10";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
//framerate
framerate_factor = "1000000";
min_framerate = "1000000"; // 1.0
max_framerate = "30003939"; // 30.0039390646258
step_framerate = "1";
default_framerate = "30003939";
//exposure
exposure_factor = "1000000";
min_exp_time = "32"; /* us, 6 lines */
max_exp_time = "33333"; /* us */
step_exp_time = "2";
default_exp_time = "33333";/* us */
embedded_metadata_height = "0";
};
mode1 {/*mode IMX586_MODE_4000X3000_NOR_35FPS*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "10";
csi_pixel_bit_depth = "10";
mode_type = "bayer";
pixel_phase = "rggb";
//pixel_phase = "bggr";
active_w = "4000";
active_h = "3000";
readout_orientation = "0";
line_length = "7872";
inherent_gain = "1";
//mclk_multiplier = "400";
//pix_clk_hz = "597600000";
//pix_clk_hz = "741600000";
mclk_multiplier = "625";
pix_clk_hz = "864000000";
//gain
gain_factor = "10";
min_gain_val = "10"; /* 1dB */
max_gain_val = "360"; /* 36dB */
step_gain_val = "10"; /* 1 */
default_gain = "10";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
//framerate
framerate_factor = "1000000";
//min_framerate = "1500000"; // 1.5
//max_framerate = "24808704"; // 24.808704
min_framerate = "1000000"; // 1.0
//max_framerate = "30786704"; // 30.78670492587279
//max_framerate = "35668739"; // 35.66873904033158
max_framerate = "35868005"; // 35.86800573888092
step_framerate = "1";
//default_framerate = "24088320";
//default_framerate = "30786704";
//default_framerate = "35668739";
default_framerate = "35868005";
//exposure
exposure_factor = "1000000";
min_exp_time = "56"; /* us, 6 lines */
max_exp_time = "28571"; //"28036"; /* us */
step_exp_time = "2";
default_exp_time = "28571";/* us */
embedded_metadata_height = "0";
};
mode2 {/*mode IMX586_MODE_4000X3000_HDR_30FPS_mirror*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "10";
csi_pixel_bit_depth = "10";
mode_type = "bayer";
pixel_phase = "grbg";
//pixel_phase = "grbg";
active_w = "4000";
active_h = "3000";
readout_orientation = "0";
line_length = "9440";
inherent_gain = "1";
mclk_multiplier = "1042";
pix_clk_hz = "1718400000";
//gain
gain_factor = "10";
min_gain_val = "10"; /* 1dB */
max_gain_val = "240"; /* 24dB */
step_gain_val = "10"; /* 1 */
default_gain = "10";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
//framerate
framerate_factor = "1000000";
min_framerate = "1000000"; // 1.0
max_framerate = "30003939"; // 30.0039390646258
step_framerate = "1";
default_framerate = "30003939";
//exposure
exposure_factor = "1000000";
min_exp_time = "32"; /* us, 6 lines */
max_exp_time = "33333"; /* us */
step_exp_time = "2";
default_exp_time = "33333";/* us */
embedded_metadata_height = "0";
};
mode3 {/*mode IMX586_MODE_4000X3000_NOR_35FPS_mirror*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "10";
csi_pixel_bit_depth = "10";
mode_type = "bayer";
pixel_phase = "grbg";
//pixel_phase = "grbg";
active_w = "4000";
active_h = "3000";
readout_orientation = "0";
line_length = "7872";
inherent_gain = "1";
//mclk_multiplier = "400";
//pix_clk_hz = "597600000";
//pix_clk_hz = "741600000";
mclk_multiplier = "625";
pix_clk_hz = "864000000";
//gain
gain_factor = "10";
min_gain_val = "10"; /* 1dB */
max_gain_val = "360"; /* 36dB */
step_gain_val = "10"; /* 1 */
default_gain = "10";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
//framerate
framerate_factor = "1000000";
//min_framerate = "1500000"; // 1.5
//max_framerate = "24808704"; // 24.808704
min_framerate = "1000000"; // 1.0
//max_framerate = "30786704"; // 30.78670492587279
//max_framerate = "35668739"; // 35.66873904033158
max_framerate = "35868005"; // 35.86800573888092
step_framerate = "1";
//default_framerate = "24088320";
//default_framerate = "30786704";
//default_framerate = "35668739";
default_framerate = "35868005";
//exposure
exposure_factor = "1000000";
min_exp_time = "56"; /* us, 6 lines */
max_exp_time = "28571"; //"28036"; /* us */
step_exp_time = "2";
default_exp_time = "28571";/* us */
embedded_metadata_height = "0";
};
mode4 {/*mode IMX586_MODE_4000X3000_HDR_30FPS_flip*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "10";
csi_pixel_bit_depth = "10";
mode_type = "bayer";
pixel_phase = "gbrg";
//pixel_phase = "grbg";
active_w = "4000";
active_h = "3000";
readout_orientation = "0";
line_length = "9440";
inherent_gain = "1";
mclk_multiplier = "1042";
pix_clk_hz = "1718400000";
//gain
gain_factor = "10";
min_gain_val = "10"; /* 1dB */
max_gain_val = "240"; /* 24dB */
step_gain_val = "10"; /* 1 */
default_gain = "10";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
//framerate
framerate_factor = "1000000";
min_framerate = "1000000"; // 1.0
max_framerate = "30003939"; // 30.0039390646258
step_framerate = "1";
default_framerate = "30003939";
//exposure
exposure_factor = "1000000";
min_exp_time = "32"; /* us, 6 lines */
max_exp_time = "33333"; /* us */
step_exp_time = "2";
default_exp_time = "33333";/* us */
embedded_metadata_height = "0";
};
mode5 {/*mode IMX586_MODE_4000X3000_NOR_35FPS_flip*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "10";
csi_pixel_bit_depth = "10";
mode_type = "bayer";
pixel_phase = "gbrg";
//pixel_phase = "grbg";
active_w = "4000";
active_h = "3000";
readout_orientation = "0";
line_length = "7872";
inherent_gain = "1";
//mclk_multiplier = "400";
//pix_clk_hz = "597600000";
//pix_clk_hz = "741600000";
mclk_multiplier = "625";
pix_clk_hz = "864000000";
//gain
gain_factor = "10";
min_gain_val = "10"; /* 1dB */
max_gain_val = "360"; /* 36dB */
step_gain_val = "10"; /* 1 */
default_gain = "10";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
//framerate
framerate_factor = "1000000";
//min_framerate = "1500000"; // 1.5
//max_framerate = "24808704"; // 24.808704
min_framerate = "1000000"; // 1.0
//max_framerate = "30786704"; // 30.78670492587279
//max_framerate = "35668739"; // 35.66873904033158
max_framerate = "35868005"; // 35.86800573888092
step_framerate = "1";
//default_framerate = "24088320";
//default_framerate = "30786704";
//default_framerate = "35668739";
default_framerate = "35868005";
//exposure
exposure_factor = "1000000";
min_exp_time = "56"; /* us, 6 lines */
max_exp_time = "28571"; //"28036"; /* us */
step_exp_time = "2";
default_exp_time = "28571";/* us */
embedded_metadata_height = "0";
};
mode6 {/*mode IMX586_MODE_4000X3000_HDR_30FPS_mirror_flip*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "10";
csi_pixel_bit_depth = "10";
mode_type = "bayer";
pixel_phase = "bggr";
//pixel_phase = "grbg";
active_w = "4000";
active_h = "3000";
readout_orientation = "0";
line_length = "9440";
inherent_gain = "1";
mclk_multiplier = "1042";
pix_clk_hz = "1718400000";
//gain
gain_factor = "10";
min_gain_val = "10"; /* 1dB */
max_gain_val = "240"; /* 24dB */
step_gain_val = "10"; /* 1 */
default_gain = "10";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
//framerate
framerate_factor = "1000000";
min_framerate = "1000000"; // 1.0
max_framerate = "30003939"; // 30.0039390646258
step_framerate = "1";
default_framerate = "30003939";
//exposure
exposure_factor = "1000000";
min_exp_time = "32"; /* us, 6 lines */
max_exp_time = "33333"; /* us */
step_exp_time = "2";
default_exp_time = "33333";/* us */
embedded_metadata_height = "0";
};
mode7 {/*mode IMX586_MODE_4000X3000_NOR_35FPS_mirror_flip*/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "10";
csi_pixel_bit_depth = "10";
mode_type = "bayer";
pixel_phase = "bggr";
//pixel_phase = "grbg";
active_w = "4000";
active_h = "3000";
readout_orientation = "0";
line_length = "7872";
inherent_gain = "1";
//mclk_multiplier = "400";
//pix_clk_hz = "597600000";
//pix_clk_hz = "741600000";
mclk_multiplier = "625";
pix_clk_hz = "864000000";
//gain
gain_factor = "10";
min_gain_val = "10"; /* 1dB */
max_gain_val = "360"; /* 36dB */
step_gain_val = "10"; /* 1 */
default_gain = "10";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
//framerate
framerate_factor = "1000000";
//min_framerate = "1500000"; // 1.5
//max_framerate = "24808704"; // 24.808704
min_framerate = "1000000"; // 1.0
//max_framerate = "30786704"; // 30.78670492587279
//max_framerate = "35668739"; // 35.66873904033158
max_framerate = "35868005"; // 35.86800573888092
step_framerate = "1";
//default_framerate = "24088320";
//default_framerate = "30786704";
//default_framerate = "35668739";
default_framerate = "35868005";
//exposure
exposure_factor = "1000000";
min_exp_time = "56"; /* us, 6 lines */
max_exp_time = "28571"; //"28036"; /* us */
step_exp_time = "2";
default_exp_time = "28571";/* us */
embedded_metadata_height = "0";
};
/*
mode8 {//mode IMX586_MODE_8000X6000_FULL_19FPS/
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "10";
csi_pixel_bit_depth = "10";
mode_type = "bayer";
pixel_phase = "rggb";
//pixel_phase = "grbg";
active_w = "8000";
active_h = "6000";
readout_orientation = "0";
line_length = "16000";
inherent_gain = "1";
mclk_multiplier = "625";
pix_clk_hz = "1728000000";
//gain
gain_factor = "10";
min_gain_val = "10"; // 1dB
max_gain_val = "240"; // 24dB
step_gain_val = "10"; // 1db
default_gain = "10";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
//framerate
framerate_factor = "1000000";
min_framerate = "1500000"; // 1.5
max_framerate = "19390000"; // 19.39
step_framerate = "1";
default_framerate = "19390000";
//exposure
exposure_factor = "1000000";
min_exp_time = "30"; // us
max_exp_time = "28036"; // us
step_exp_time = "1";
default_exp_time = "3000";// us
embedded_metadata_height = "0";
};
*/
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
status = "okay";
liimx586_imx586_out0: endpoint {
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&liimx586_csi_in0>;
};
};
};
};
};
It worked fine, and the kernel logs did not report any errors.
This is the kernel log:
[ 85.118266] configfs-gadget gadget: Wrong NDP SIGN
[ 85.408161] [RCE] WARNING: t194/isp5.c:901 [config_channel] "All error notifications not enabled: correctable=0x00 uncorrectable=0x00"
[ 85.636317] imx586_power_on: power_on
[ 85.636333] imx586 2-001a: imx586_power_on: set reset gpio = 412.
[ 85.636582] imx586_power_off: power_off
[ 85.641151] imx586_power_on: power_on
[ 85.641163] imx586 2-001a: imx586_power_on: set reset gpio = 412.
[ 85.641481] imx586_power_off: power_off
[ 85.662991] imx586_power_on: power_on
[ 85.663005] imx586 2-001a: imx586_power_on: set reset gpio = 412.
[ 85.663161] imx586_power_off: power_off
[ 85.664824] imx586_power_on: power_on
[ 85.664838] imx586 2-001a: imx586_power_on: set reset gpio = 412.
[ 85.665057] imx586_power_off: power_off
[ 85.667998] imx586_power_on: power_on
[ 85.668006] imx586 2-001a: imx586_power_on: set reset gpio = 412.
[ 85.668988] imx586_power_off: power_off
[ 85.706262] imx586_power_on: power_on
[ 85.706277] imx586 2-001a: imx586_power_on: set reset gpio = 412.
[ 85.706448] imx586_power_off: power_off
[ 85.708684] imx586_power_on: power_on
[ 85.708697] imx586 2-001a: imx586_power_on: set reset gpio = 412.
[ 85.708943] imx586_power_off: power_off
[ 85.716413] FAN rising trip_level:107 cur_temp:30400 trip_temps[108]:1919248500
[ 85.812137] [RCE] vi5_hwinit: firmware CL2018101701 protocol version 2.2
[ 86.118365] imx586_power_on: power_on
[ 86.118380] imx586 2-001a: imx586_power_on: set reset gpio = 412.
[ 86.118641] imx586_set_exposure: val: 56, hdr_en: 0, 0, mode: 5
[ 86.118651] imx586 2-001a: imx586_set_exposure: imx586_set_coarse_time(nor)
[ 86.118770] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[ 86.119230] imx586_set_coarse_time: val: 56, coarse_integ_time:2, def coarse time:2, max_coarse_time: 1077, fine_time: 1075, set: 52, mode: 5, num_framerates: 1, framerates: 35, frame_length: 1125, exposure_factor:1000000
[ 86.119234] imx586_get_integ_coarse_time_regs, 2
[ 86.119693] imx586 2-001a: imx586_set_group_hold: imx586_set_group_hold start, val :1 !!------------------
[ 86.119879] imx586 2-001a: imx586_set_frame_rate: val: 35868003, calc frame_length:3060, mode: 5, pixel_clock: 864000000, framerate_factor:1000000, line_length:7872
[ 86.119885] imx586 2-001a: imx586_set_frame_rate: val: 35868003, frame_length: 3060, frame_rate:35 fps
[ 86.120253] imx586 2-001a: imx586_set_group_hold: imx586_set_group_hold start, val :0 !!------------------
[ 86.156225] imx586 2-001a: imx586_set_group_hold: imx586_set_group_hold start, val :1 !!------------------
[ 86.156512] imx586 2-001a: imx586_set_frame_rate: val: 25000000, calc frame_length:4390, mode: 5, pixel_clock: 864000000, framerate_factor:1000000, line_length:7872
[ 86.156521] imx586 2-001a: imx586_set_frame_rate: val: 25000000, frame_length: 4390, frame_rate:25 fps
[ 86.157069] imx586_set_exposure: val: 28570, hdr_en: 0, 0, mode: 5
[ 86.157079] imx586 2-001a: imx586_set_exposure: imx586_set_coarse_time(nor)
[ 86.157348] imx586_set_coarse_time: val: 28570, coarse_integ_time:4342, def coarse time:4389, max_coarse_time: 4342, fine_time: 0, set: 52, mode: 5, num_framerates: 1, framerates: 35, frame_length: 4390, exposure_factor:1000000
[ 86.157355] imx586_get_integ_coarse_time_regs, 4342
[ 86.157831] imx586 2-001a: imx586_set_group_hold: imx586_set_group_hold start, val :0 !!------------------
[ 86.160761] imx586 2-001a: imx586_set_mode: imx586_set_mode-----------
[ 86.160768] imx586 2-001a: imx586_set_mode: imx586 set sensor_mode_id: 5
[ 86.160780] imx586 2-001a: imx586_set_mode: imx586_set_mode, mode_prop_idx:5, limit_analog_gain:0, csi_port:0, numlanes:4, mode:5,fmt_width: 4000, fmt_height:3000, def_clk_freq:24000000
[ 86.160786] imx586_set_mode: imx586_stand_by-----------
[ 86.160791] imx586_stand_by: write table id: 11
[ 86.182050] imx586 2-001a: imx586_set_mode: imx586_write_table, mode: 5-----------
[ 86.201968] imx586_set_flip: flip write table id: 101
[ 86.201977] imx586_set_flip: flip write value is: 02
[ 86.253196] imx586_eeprom_get_dcc get dcc from eeprom
[ 86.282209] imx586_eeprom_to_sensor_lrc: read reg from eeprom, Flag of SONY PDAF and SPC Calibration, addr: 0x07ae, val:1, ret: 0
[ 86.418023] imx586_eeprom_to_sensor_lrc: write reg to sonsor (regaddr: 0x3e37, value: 1, err: 0)
[ 86.429277] imx586 2-001a: imx586_set_gain, val:10
[ 86.429288] imx586 2-001a: imx586_set_gain, min_gain_val:10, max_gain_val:240, step_gain_val:10, gain_factor:10
[ 86.429293] imx586 2-001a: imx586_set_gain: set value: 10, db gain: 1, anagle gani: 112
[ 86.429299] imx586 2-001a: imx586_set_gain: set gain, address: 0x0204, val: 0x00
[ 86.429459] imx586 2-001a: imx586_set_gain: set gain, address: 0x0205, val: 0x70
[ 86.429621] imx586_set_exposure: val: 28570, hdr_en: 0, 0, mode: 5
[ 86.429628] imx586 2-001a: imx586_set_exposure: imx586_set_coarse_time(nor)
[ 86.429639] imx586_set_coarse_time: val: 28570, coarse_integ_time:4342, def coarse time:4389, max_coarse_time: 4342, fine_time: 0, set: 52, mode: 5, num_framerates: 1, framerates: 35, frame_length: 4390, exposure_factor:1000000
[ 86.429643] imx586_get_integ_coarse_time_regs, 4342
[ 86.432193] imx586 2-001a: imx586_set_frame_rate: val: 25000000, calc frame_length:4390, mode: 5, pixel_clock: 864000000, framerate_factor:1000000, line_length:7872
[ 86.432201] imx586 2-001a: imx586_set_frame_rate: val: 25000000, frame_length: 4390, frame_rate:25 fps
[ 86.432544] imx586_start_streaming
[ 86.432548] imx586_start_streaming: imx586_start_streaming-------------
[ 86.432553] imx586_start_streaming: IMX586_MODE_START_STREAM, 8!!!
[ 86.836438] FAN cooling trip_level:9 cur_temp:30250 trip_temps[10]:0
[ 86.884738] imx586_focus_start_kthreads: imx586_focus_start_kthreads !!!
[ 86.884880] imx586_focus_thread frame_rate: 25 fps, mode_prop_id: 5, frame_rate: 25001388, width: 4000, height: 3000
[ 86.884891] imx586_pdaf_set_area: area (mode_prop_idx:5, width: 4000, height: 3000, xstart: 1667, ystart: 1250, xend: 2333, yend: 1750)
[ 86.885088] imx586_pdaf_set_area: imx586_write_reg (regaddr: 0x38a3, value: 2, err: 0)
[ 86.885242] imx586_pdaf_set_area: imx586_write_reg (regaddr: 0x38ac, value: 1, err: 0)
[ 86.886072] imx586 2-001a: imx586_set_frame_rate: val: 35868003, calc frame_length:3060, mode: 5, pixel_clock: 864000000, framerate_factor:1000000, line_length:7872
[ 86.886079] imx586 2-001a: imx586_set_frame_rate: val: 35868003, frame_length: 3060, frame_rate:35 fps
[ 86.914703] imx586 2-001a: imx586_set_frame_rate: val: 25000000, calc frame_length:4390, mode: 5, pixel_clock: 864000000, framerate_factor:1000000, line_length:7872
[ 86.914717] imx586 2-001a: imx586_set_frame_rate: val: 25000000, frame_length: 4390, frame_rate:25 fps
[ 87.215223] imx586 2-001a: imx586_set_gain, val:20
[ 87.215236] imx586 2-001a: imx586_set_gain, min_gain_val:10, max_gain_val:240, step_gain_val:10, gain_factor:10
[ 87.215241] imx586 2-001a: imx586_set_gain: set value: 20, db gain: 2, anagle gani: 211
[ 87.215248] imx586 2-001a: imx586_set_gain: set gain, address: 0x0204, val: 0x00
[ 87.215455] imx586 2-001a: imx586_set_gain: set gain, address: 0x0205, val: 0xd3
[ 87.375219] imx586 2-001a: imx586_set_gain, val:30
[ 87.375231] imx586 2-001a: imx586_set_gain, min_gain_val:10, max_gain_val:240, step_gain_val:10, gain_factor:10
[ 87.375236] imx586 2-001a: imx586_set_gain: set value: 30, db gain: 3, anagle gani: 300
[ 87.375243] imx586 2-001a: imx586_set_gain: set gain, address: 0x0204, val: 0x01
[ 87.375585] imx586 2-001a: imx586_set_gain: set gain, address: 0x0205, val: 0x2c
[ 87.535427] imx586 2-001a: imx586_set_gain, val:40
[ 87.535439] imx586 2-001a: imx586_set_gain, min_gain_val:10, max_gain_val:240, step_gain_val:10, gain_factor:10
[ 87.535572] imx586 2-001a: imx586_set_gain: set value: 40, db gain: 4, anagle gani: 378
[ 87.535579] imx586 2-001a: imx586_set_gain: set gain, address: 0x0204, val: 0x01
[ 87.535763] imx586 2-001a: imx586_set_gain: set gain, address: 0x0205, val: 0x7a
[ 87.815151] imx586 2-001a: imx586_set_gain, val:50
[ 87.815251] imx586 2-001a: imx586_set_gain, min_gain_val:10, max_gain_val:240, step_gain_val:10, gain_factor:10
[ 87.815257] imx586 2-001a: imx586_set_gain: set value: 50, db gain: 5, anagle gani: 449
[ 87.815263] imx586 2-001a: imx586_set_gain: set gain, address: 0x0204, val: 0x01
[ 87.815768] imx586 2-001a: imx586_set_gain: set gain, address: 0x0205, val: 0xc1
[ 87.956379] FAN rising trip_level:107 cur_temp:30550 trip_temps[108]:1919248500
[ 89.655066] imx586_set_exposure: val: 20000, hdr_en: 0, 0, mode: 5
[ 89.655079] imx586 2-001a: imx586_set_exposure: imx586_set_coarse_time(nor)
[ 89.655090] imx586_set_coarse_time: val: 20000, coarse_integ_time:3073, def coarse time:3073, max_coarse_time: 4342, fine_time: 1269, set: 52, mode: 5, num_framerates: 1, framerates: 35, frame_length: 4390, exposure_factor:1000000
[ 89.655093] imx586_get_integ_coarse_time_regs, 3073
[ 89.695494] imx586 2-001a: imx586_set_gain, val:80
[ 89.695535] imx586 2-001a: imx586_set_gain, min_gain_val:10, max_gain_val:240, step_gain_val:10, gain_factor:10
[ 89.695540] imx586 2-001a: imx586_set_gain: set value: 80, db gain: 8, anagle gani: 617
[ 89.695546] imx586 2-001a: imx586_set_gain: set gain, address: 0x0204, val: 0x02
[ 89.699046] imx586 2-001a: imx586_set_gain: set gain, address: 0x0205, val: 0x69
[ 89.922344] imx586_stop_streaming: imx586_stop_streaming-------------
[ 89.969183] imx586_focus_stop_kthreads: imx586_focus_stop_kthreads !!!
[ 89.969217] imx586_focus_thread: focus thread exit
[ 90.010856] imx586_power_off: power_off
[ 90.196422] FAN cooling trip_level:9 cur_temp:30550 trip_temps[10]:0
[ 91.316447] FAN rising trip_level:107 cur_temp:30600 trip_temps[108]:1919248500
I use the Gstreamer directive:
gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=3 ! 'video/x-raw(memory:NVMM), width=(int)4000, height=(int)3000, framerate=25/1' ! nvvidconv flip-method=0 ! 'video/x-raw, width=(int)640, height=(int)480, format=(string)I420' ! xvimagesink -e