I’m currently developing the Linux driver for image sensor AR0231.
I’m using a TX2 with JetPack 3.1.
The tx2 is installed on the Auvidea J120 board.
I make device tree applied Auvidea J120 patches and device driver based on sample code for imx185.
AR0231 is 4-lane configuration, connected to the CSI_E and CSI_F.
Unfortunately, unable to capture any data on capture application, but I analysed with oscilloscope, seems AR0231 outputs MIPI signal normally.
I’ll checked https://elinux.org/Jetson_TX2/28.1_Camera_BringUp, however I can’t solve this problem.
VI4 returns status code 2 and rtcpu trace posts tag:CSIMUX_FRAME with data:0x00000224.
What does these status codes mean?
Thanks.
dmesg:
[ 3191.863988] ar0231 7-0010: Mode ID:0
[ 3195.577311] tegra-vi4 15700000.vi: Status: 2 channel:00 frame:0C00
[ 3195.577314] tegra-vi4 15700000.vi: timestamp sof 3208596727456 eof 3208612343616 data 0x00000224
[ 3195.577316] tegra-vi4 15700000.vi: capture_id 1 stream 4 vchan 0
tegra-rtcpu trace:
kworker/0:0-3896 [000] ...1 3195.480384: rtos_queue_peek_from_isr_failed: tstamp:100265623528 queue:0x0b4a3c58
kworker/0:0-3896 [000] ...1 3195.480388: rtcpu_start: tstamp:100265624464
kworker/0:0-3896 [000] ...1 3195.592394: rtcpu_vinotify_handle_msg: tstamp:100267808156 tag:CSIMUX_STREAM channel:0xff frame:0 vi_tstamp:1483559925 data:0x00010000
kworker/0:0-3896 [000] ...1 3195.592397: rtcpu_vinotify_handle_msg: tstamp:100268648284 tag:CHANSEL_PXL_SOF channel:0x00 frame:3072 vi_tstamp:1484399925 data:0x00000001
kworker/0:0-3896 [000] ...1 3195.592398: rtcpu_vinotify_handle_msg: tstamp:100268648435 tag:ATOMP_FS channel:0x00 frame:3072 vi_tstamp:1484399932 data:0x00000000
kworker/0:0-3896 [000] ...1 3195.592399: rtcpu_vinotify_handle_msg: tstamp:100269117478 tag:CHANSEL_LOAD_FRAMED channel:0x10 frame:3072 vi_tstamp:1484869254 data:0x08000000
kworker/0:0-3896 [000] ...1 3195.592400: rtcpu_vinotify_handle_msg: tstamp:100269136415 tag:CHANSEL_PXL_EOF channel:0x00 frame:3072 vi_tstamp:1484887903 data:0x04b70002
kworker/0:0-3896 [000] ...1 3195.592401: rtcpu_vinotify_handle_msg: tstamp:100269136521 tag:CSIMUX_FRAME channel:0x00 frame:3072 vi_tstamp:1484887930 data:0x00000224
kworker/0:0-3896 [000] ...1 3195.592401: rtcpu_vinotify_handle_msg: tstamp:100269136717 tag:ATOMP_FE channel:0x00 frame:3072 vi_tstamp:1484887933 data:0x00000000
kworker/0:0-3896 [000] ...1 3195.644381: rtos_queue_peek_from_isr_failed: tstamp:100270624386 queue:0x0b4a3c58
kworker/0:0-3896 [000] ...1 3195.796395: rtos_queue_peek_from_isr_failed: tstamp:100275624916 queue:0x0b4a3c58
kworker/0:0-3896 [000] ...1 3195.952393: rtos_queue_peek_from_isr_failed: tstamp:100280625430 queue:0x0b4a3c58 ```
device tree:
/ {
host1x {
vi@15700000 {
num-channels = <1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0231_vi_in0: endpoint {
csi-port = <4>; // CSI EF
bus-width = <4>;
remote-endpoint = <&ar0231_csi_out0>;
};
};
};
};
nvcsi@150c0000 {
num-channels = <1>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0231_csi_in0: endpoint@0 {
csi-port = <4>;
bus-width = <4>;
remote-endpoint = <&ar0231_out0>;
};
};
port@1 {
reg = <1>;
ar0231_csi_out0: endpoint@1 {
remote-endpoint = <&ar0231_vi_in0>;
};
};
};
};
};
};
i2c@c250000 { //I2C adaptor 7
ar0231@10 {
compatible = "nvidia,ar0231";
/* I2C device address */
reg = <0x10>;
/* V4L2 device node location */
devnode = "video0";
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
avdd-reg = "vana";
iovdd-reg = "vif";
delayed_gain = "true";
mode0 {
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_e";
discontinuous_clk = "no";
cil_settletime = "0";
active_w = "1928";
active_h = "1208";
pixel_t = "bayer_rggb12";
readout_orientation = "0";
line_length = "2200";
inherent_gain = "1";
mclk_multiplier = "200";
pix_clk_hz = "178200000";
min_gain_val = "0";
max_gain_val = "48";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
min_framerate = "6";
max_framerate = "30";
min_exp_time = "30";
max_exp_time = "666000";
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ar0231_out0: endpoint {
csi-port = <4>;
bus-width = <4>;
remote-endpoint = <&ar0231_csi_in0>;
};
};
};
};
};
};
/ {
tegra-camera-platform {
compatible = "nvidia, tegra-camera-platform";
num_csi_lanes = <4>;
max_lane_speed = <1500000>;
min_bits_per_pixel = <10>;
vi_peak_byte_per_pixel = <2>;
vi_bw_margin_pct = <25>;
max_pixel_rate = <750000>;
isp_peak_byte_per_pixel = <5>;
isp_bw_margin_pct = <25>;
modules {
module0 {
badge = "ar0231_ef_XXXXXX";
position = "rear";
orientation = "1";
drivernode0 {
/* Declare PCL support driver (classically known as guid) */
pcl_id = "v4l2_sensor";
/* Driver v4l2 device name */
devname = "ar0231";
/* Declare the device-tree hierarchy to driver instance */
proc-device-tree = "/proc/device-tree/i2c@c250000/ar0231@10";
};
};
};
};
};