[Xavier] Multiple Camera Connection probelms

I’m trying to connect 4 YUV sensors to Xavier but only 2 cameras worked fine.

from dtsi files nvidia made, I set port-index as follows.
sensors connected to CSI X pin in Camera expansion header
to port-index =
bus-width is 2.

port-index=0 and 2 work fine but 4, 6 does not.
and got following error message.

t194-nvcsi 15a00000.nvcsi: Selected no CSI lane, cannot do calibration

which may suggest I selected wrong port-index.

also, I want to know how to determine “tegra_sinterface”.

Thanks.

After changing port index 6->5 for sensor connected to CSI-6,
following error gone
t194-nvcsi 15a00000.nvcsi: Selected no CSI lane, cannot do calibration
However, new error message appears when I gst-launch with the sensors connected to CSI-4 and CSI-6

tegra194-vi5 15c10000.vi: no reply from camera processor
tegra194-vi5 15c10000.vi: vi capture dequeue status failed

hello rary,

here are some details about the port-index of NVCSI and VI
nvcsi@ node should be the NVCSI port
CSI Port A := 0
CSI Port B := 1
CSI Port C := 2
CSI Port D := 3
CSI Port E := 4
CSI Port F := 5
CSI Port G := 6
CSI Port H := 7

vi@ node should be NVCSI PixelParser index (aka. stream_id), the last two bricks, each CSI-E/F and CSI-G/H share a single PixelParser.
Stream 0 := 0 (CSI Port A)
Stream 1 := 1 (CSI Port B)
Stream 2 := 2 (CSI Port C)
Stream 3 := 3 (CSI Port D)
Stream 4 := 4 (CSI Port EF)
Stream 5 := 5 (CSI Port GH)

for example,
if you had a sensor connect to CSI-G,
the port-index device tree property should be indicate as below.

Sensor_out (port-index= 6) → CSI_in (port-index= 6) → CSI_out (port-index= 6) → VI_in (port-index= 5)

please download [Xavier Series (SoC) Technical Reference Manual] from Jetson Download Center,
you should also check [Multimedia Complex]-> [Camera Subsystem]-> [Figure 7.9 External Connectivity Diagram] for reference.
thanks

1 Like

Hi JerryChang,

Thank you for your detailed explanation.
That really helps me to understand device tree.

However, I still cannot make it work for CSI-6.
Following your answer, I set port-index=6 for csi side and 5 for vi input.

Let me take an example.
For t19x-common-modules/tegra194-camera-imx185-a00.dtsi, I made following changes to connect CSI 6.

liimx185_vi_in0: endpoint {
	<s>port-index = <0>;</s> port-index = <5>;
	bus-width = <4>;
	remote-endpoint = <&liimx185_csi_out0>;
};

liimx185_csi_in0: endpoint@0 {
	<s>port-index = <0>;</s> port-index = <6>;
	bus-width = <4>;
	remote-endpoint = <&liimx185_imx185_out0>;
};
liimx185_imx185_out0: endpoint {
	<s>port-index = <0>;</s> port-index = <6>
	bus-width = <4>;
	remote-endpoint = <&liimx185_csi_in0>;
	};
};

When I use gst-launch to see capture is working, I noticed that only open function (in the driver) was called on failed capturing.
power_off and power_on was called on successful capturing.

Am I missing something ?

Thank you.

hello rary,

since each CSI port (i.e. CSI-A) is able to handle x1 or x2-lanes, and it seems you would like to launch four 2-lane sensors.
how about have a try to configure all your 4 sensors to CSI-A/ CSI-B/ CSI-C/ CSI-D for verification.
thanks

Hi jerryChang,

We’re using module we’ve made which can connect up to four 4-lane sensors.
So, we cannot connect 4 sensors to A, B, C, D respectively.

Is CSI-G is validated on Xavier ?
I couldn’t find any file using CSI-G in the source codes.

hello rary,

so you’re actually running with 4-lane sensors.
here’s known issue for l4t-r31.1/ Xavier.
please refer to below to update your kernel drivers to add csi g/h IO pad support.
thanks

diff --git a/drivers/media/platform/tegra/camera/camera_common.c b/drivers/media/platform/tegra/camera/camera_common.c
index c00ccad..7ddf3a3 100644
--- a/drivers/media/platform/tegra/camera/camera_common.c
+++ b/drivers/media/platform/tegra/camera/camera_common.c
@@ -94,6 +94,8 @@ static const char *camera_common_csi_io_pads[] = {
        "csid",
        "csie",
        "csif",
+       "csig",
+       "csih",
 };


diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
index d6c6888..29e40fe 100644
--- a/drivers/soc/tegra/pmc.c
+++ b/drivers/soc/tegra/pmc.c
@@ -4562,7 +4562,9 @@ static const unsigned long tegra194_register_map[TEGRA_PMC_MAX_REG] = {
        _lp_n_pv_(25, sdmmc3-hv, DPD2, 24, E_33V, 6, 1800, 3300, UINT_MAX, true) \
        _lponly_(26, conn, DPD2, 28, UINT_MAX, false)                           \
        _lp_n_pv_(27, audio-hv, DPD2, 29, E_33V, 1, 1800, 3300, UINT_MAX, true) \
-       _pvonly_(28, ao-hv, E_33V, 0, 1800, 3300, UINT_MAX, true)
+       _pvonly_(28, ao-hv, E_33V, 0, 1800, 3300, UINT_MAX, true)       \
+       _lponly_(29, csig, DPD2, 18, UINT_MAX, false)                   \
+       _lponly_(30, csih, DPD2, 19, UINT_MAX, false)

Hi JerryChang,

Thanks for Information.
Applied given patch, I think I made some progress.

Before applying that, gst-launch on CSI-6 sensors just calls open function.
But now, it calls s_stream and power_on, off as successful capturing does.

However, following error appears and cannot capture correctly.

tegra194-vi5 15c10000.vi: no reply from camera processor
tegra194-vi5 15c10000.vi: vi capture dequeue status failed

We’ll keep digging.
It would be appreciated if someone who can capture on CSI-6 gives us information.

Thanks

hello rary,

FYI, we had verified that 4-lane CSI-6 works with bayer sensor.

may I have more details about your status.
for example,

  1. were other three 4-lane sensors works as expect
  2. were you able to check the signaling to confirm sensor is working
  3. could you please also share the commands you used for accessing.

Hi JerriChang,

  1. were other three 4-lane sensors works as expect
    It works fine with “2-lane” configuration. (sorry example above was confusing. we are trying “2-lane”)

  2. were you able to check the signaling to confirm sensor is working
    We checked data signal works like other sensors.
    We also tried to use the sensor which works on CSI-4, but it didn’t work.

  3. could you please also share the commands you used for accessing.

gst-launch-1.0 v4l2src device=/dev/video<x> ! video/x-raw,format=UYVY ! videoconvert ! xvimagesink

above command works for other sensors.

hello rary,

I would like to double confirm your status, could you please check below items.

  1. were all 4 cameras works with 2-lane configurations. (CSI-A/ CSI-C/ CSI-E/ CSI-G)
  2. when you said “we also tried to use the sensor which works on CSI-4, but it didn’t work.”, may I kwno which port you connected and what’s the lane configuration.
  3. could you please also have a try with below commands,
v4l2-ctl -d /dev/videox --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --set-ctrl bypass_mode=0 --stream-mmap --stream-count=100
  1. may I know what’s the latest failure message you saw from kernel side.

Hi JerryChang,

  1. were all 4 cameras works with 2-lane configurations. (CSI-A/ CSI-C/ CSI-E/ CSI-G)
    CSI-A, C, E work with 2-lane configuration but CSI-G don’t.

  2. when you said “we also tried to use the sensor which works on CSI-4, but it didn’t work.”, may I kwno which port you connected and what’s the lane configuration.
    was trying to connect CSI-G

  3. could you please also have a try with below commands,
    The code gaves me same result as stated in 1).

sorry,

When I exit with CTRL-C, stack trace appears and continue to pop untill rebooting.

[  +0.057578] t194-nvcsi 15a00000.nvcsi: Selected no CSI lane, cannot do calibration
[  +0.000179] t194-nvcsi 15a00000.nvcsi: calibration failed with -22 error


// s_stream and power_on power_off part


[  +2.630910] tegra194-vi5 15c10000.vi: no reply from camera processor
[  +0.000150] tegra194-vi5 15c10000.vi: vi capture dequeue status failed
[  +2.559838] tegra194-vi5 15c10000.vi: no reply from camera processor
[  +0.000139] tegra194-vi5 15c10000.vi: vi capture dequeue status failed
[  +0.000348] tegra194-vi5 15c10000.vi: channel error, resetting the channel
[  +2.559538] tegra194-vi5 15c10000.vi: no reply from camera processor
[  +0.000141] tegra194-vi5 15c10000.vi: vi capture dequeue status failed
[  +0.000550] tegra194-vi5 15c10000.vi: channel error, resetting the channel
[  +2.527266] tegra194-vi5 15c10000.vi: no reply from camera processor
[  +0.000174] tegra194-vi5 15c10000.vi: vi capture dequeue status failed
[  +2.591822] tegra194-vi5 15c10000.vi: no reply from camera processor
[  +0.000141] tegra194-vi5 15c10000.vi: vi capture dequeue status failed
[  +0.000228] ------------[ cut here ]------------
[  +0.000103] WARNING: CPU: 3 PID: 9011 at ../drivers/media/v4l2-core/videobuf2-core.c:899 vb2_buffer_done+0x1f0/0x230
[  +0.000183] Modules linked in:

[  +0.000014] CPU: 3 PID: 9011 Comm: vi-output, imx0 Not tainted 4.9.108 #1
[  +0.000002] Hardware name: jetson-xavier (DT)
[  +0.000006] task: ffffffc3ee2faa00 task.stack: ffffffc317eac000
[  +0.000005] PC is at vb2_buffer_done+0x1f0/0x230
[  +0.000005] LR is at free_ring_buffers+0x6c/0x140
[  +0.000008] pc : [<ffffff8008b56b08>] lr : [<ffffff8008b6128c>] pstate: 20c00045
[  +0.000003] sp : ffffffc317eafd00
[  +0.000003] x29: ffffffc317eafd00 x28: 0000000000000000
[  +0.000035] x27: 0000000000000001 x26: ffffffc3d6392eb8
[  +0.000006] x25: ffffff800b7cb000 x24: 431bde82d7b634db
[  +0.000004] x23: 0000000000000007 x22: ffffffc3d6392b48
[  +0.000005] x21: ffffffc3b1523800 x20: ffffffc3b1523800
[  +0.000005] x19: ffffffc3d6392018 x18: 0000000000000010
[  +0.000005] x17: 000000000000ebb6 x16: 00000296b7edc634
[  +0.000005] x15: 0000000000000006 x14: 7461747320657565
[  +0.000004] x13: 7571656420657275 x12: 7470616320697620
[  +0.000005] x11: 3a69762e30303030 x10: 3163353120356976
[  +0.000005] x9 : 000000000000045a x8 : 000000000000004d
[  +0.000037] x7 : ffffff8009eb4f88 x6 : 000000000000004a
[  +0.000010] x5 : 0000000000000000 x4 : 0000000000000007
[  +0.000008] x3 : 0000000000000001 x2 : ffffffc392521b98
[  +0.000005] x1 : 0000000000000007 x0 : 0000000000000007

[  +0.000007] ---[ end trace cbd05858ebc47d3c ]---

I noticed that some code may need to be updated.

like here.
kernel/kernel-4.9/drivers/soc/tegra/pmc.c

static const char * const nvcsi_ab_bricks_pads[] = {
	"csia",
	"csib",
};

static const char * const nvcsi_cdef_bricks_pads[] = {
	"csic",
	"csid",
	"csie",
	"csif",
};

which only consider CSI-A to F

Hi,

I applied a patch that JerryChang posted in post #7, and adjust port-index from post #3 and here are my observations.

I have 4 lane csi configuration and I’m able to capture through isp, but not v4l2 pipe.

Capture OK:

gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=120/1, format=NV12' ! nvoverlaysink -e

&
argus_camera app

Capture failed(only on csi gh):

v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=RG12 --stream-mmap --stream-count=100 -d /dev/video0

&
qv4l2 app

Error code for v4l2 pipe is same as for rary in post #13.

When connecting 2 sensors(one of them on csi gh, one on csi ab) I got 2 video dev nodes for csi ab, non for csi gh.
When connecting 3 sensors(one of them on csi gh, one on csi ab, one on csi-cd or csi-ef) I got 2 video dev nodes for csi ab, non for csi gh, one for csi-cd/ef

Media controller API version 0.1.0

Media device information
------------------------
driver          tegra194-vi5
model           NVIDIA Tegra Video Input Device
serial          
bus info        
hw revision     0x3
driver version  0.0.0

Device topology
- entity 1: imx283 30-001a (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev0
	pad0: Source
		[fmt:SRGGB10_1X10/5496x3694 field:none colorspace:srgb]
		-> "15a00000.nvcsi--6":0 [ENABLED]

- entity 3: 15a00000.nvcsi--6 (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
	pad0: Sink
		<- "imx283 30-001a":0 [ENABLED]
	pad1: Source
		-> "vi-output, imx283 30-001a":0 [ENABLED]

- entity 6: vi-output, imx283 30-001a (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
	pad0: Sink
		<- "15a00000.nvcsi--6":1 [ENABLED]

- entity 18: imx283 32-001a (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev2
	pad0: Source
		[fmt:SRGGB10_1X10/5496x3694 field:none colorspace:srgb]
		-> "15a00000.nvcsi--5":0 [ENABLED]

- entity 20: 15a00000.nvcsi--5 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
	pad0: Sink
		<- "imx283 32-001a":0 [ENABLED]
	pad1: Source
		-> "vi-output, imx283 32-001a":0 [ENABLED]

- entity 23: vi-output, imx283 32-001a (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video1
	pad0: Sink
		<- "15a00000.nvcsi--5":1 [ENABLED]

- entity 35: imx283 36-001a (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev4
	pad0: Source
		[fmt:SRGGB10_1X10/5496x3694 field:none colorspace:srgb]
		-> "15a00000.nvcsi--3":0 [ENABLED]

- entity 37: 15a00000.nvcsi--3 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev5
	pad0: Sink
		<- "imx283 36-001a":0 [ENABLED]
	pad1: Source
		-> "vi-output, imx283 36-001a":0 [ENABLED]

- entity 40: vi-output, imx283 36-001a (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video2
	pad0: Sink
		<- "15a00000.nvcsi--3":1 [ENABLED]

3 sensors(not on csi-gh). Everything is ok.

Also when connecting 4 sensors I got this error code:

[   47.622500] tegra194-isp5 14800000.isp: isp_channel_power_on
[   47.627348] t194-nvcsi 15a00000.nvcsi: Selected no CSI lane, cannot do calibration
[   47.627521] t194-nvcsi 15a00000.nvcsi: calibration failed with -22 error
[   47.631123] tegra194-isp5 14800000.isp: 6 GoS tables configured.
[   47.631144] tegra194-isp5 14800000.isp: gos[0] = 0xeca00000
[   47.631151] tegra194-isp5 14800000.isp: gos[1] = 0xeca01000
[   47.631155] tegra194-isp5 14800000.isp: gos[2] = 0xeca02000
[   47.631158] tegra194-isp5 14800000.isp: gos[3] = 0xeca03000
[   47.631161] tegra194-isp5 14800000.isp: gos[4] = 0xeca04000
[   47.631164] tegra194-isp5 14800000.isp: gos[5] = 0xeca05000
[   47.674072] [RCE] Total number of isp channels : 16 
[   49.176936] tegra194-vi5 15c10000.vi: vi_channel_power_on_vi_device
[   49.177195] tegra194-vi5 15c10000.vi: 6 GoS tables configured.
[   49.177204] tegra194-vi5 15c10000.vi: gos[0] = 0xeca00000
[   49.177208] tegra194-vi5 15c10000.vi: gos[1] = 0xeca01000
[   49.177212] tegra194-vi5 15c10000.vi: gos[2] = 0xeca02000
[   49.177215] tegra194-vi5 15c10000.vi: gos[3] = 0xeca03000
[   49.177219] tegra194-vi5 15c10000.vi: gos[4] = 0xeca04000
[   49.177222] tegra194-vi5 15c10000.vi: gos[5] = 0xeca05000
[   49.198062] [RCE] vi5_hwinit: firmware CL2018061801 protocol version 2.2
[   50.728624] tegra194-vi5 15c10000.vi: vi_channel_power_off_vi_device
[   50.765512] imx283 32-001a: imx283_set_frame_length: setting frame length not implemented
[   50.768131] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[   50.770856] imx283 32-001a: imx283_read_reg: i2c read failed, 3038 
[   50.771004] imx283 32-001a: imx283_set_integration_time: failed to read VMAX
[   50.773429] tegra194-vi5 15c10000.vi: vi_channel_power_on_vi_device
[   50.773654] tegra194-vi5 15c10000.vi: 6 GoS tables configured.
[   50.773663] tegra194-vi5 15c10000.vi: gos[0] = 0xeca00000
[   50.773668] tegra194-vi5 15c10000.vi: gos[1] = 0xeca01000
[   50.773672] tegra194-vi5 15c10000.vi: gos[2] = 0xeca02000
[   50.773677] tegra194-vi5 15c10000.vi: gos[3] = 0xeca03000
[   50.773680] tegra194-vi5 15c10000.vi: gos[4] = 0xeca04000
[   50.773685] tegra194-vi5 15c10000.vi: gos[5] = 0xeca05000
[   50.898209] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[   50.898599] imx283 32-001a: imx283_write_reg: i2c write failed, 303f = 1
[   50.898727] imx283 32-001a: imx283_write_buffered_reg: error setting group reghold
[   50.898858] imx283 32-001a: imx283_set_gain: failed to set gain
[   50.908550] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[   50.908907] regmap_util_write_table_8:regmap_util_write_table:-121
[   50.909022] imx283 32-001a: imx283_start_stream: unable to stop stream
[   50.912408] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[   50.912842] imx283 32-001a: imx283_read_reg: i2c read failed, 3038 
[   50.913045] imx283 32-001a: imx283_set_integration_time: failed to read VMAX
[   50.930068] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[   50.930385] imx283 32-001a: imx283_read_reg: i2c read failed, 3038 
[   50.930555] imx283 32-001a: imx283_set_integration_time: failed to read VMAX
[   52.414029] tegra194-vi5 15c10000.vi: no reply from camera processor
[   52.414174] tegra194-vi5 15c10000.vi: vi capture get status failed
[   52.445988] fence timeout on [ffffffc347740f00] after 1500ms
[   52.446002] name=[nvhost_sync:38], current value=0 waiting value=1
[   52.446011] ---- mlocks ----

hello rary,

you MUST have kernel fixes in comment #7 applied for enabling CSI-G/H.
thanks

hello d.kristofic,

regarding to your comment #15, there’s I2C no acknowledge failures.
since you’re able to capture through ISP pipeline, I’m wondering this issue may related to launching multiple cameras simultaneously.
could you please specify sensor-id to also make sure each of them launching individually without failures.
for example,

gst-launch-1.0 nvarguscamerasrc <b>sensor-id=0 </b>! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! nvoverlaysink -ev

Hi JerryChang,

yes I can see the I2C issues but it doesn’t make sense to me. There is I2C issue only in 4 sensor configuration. Trying to specify sensor with sensor-id parameter isn’t helping, error message is the same (I2C issues for every sensor)…

What confuses me is that I get 2 nodes for csi-ab when sensor is on csi-ab and csi-gh.

For example(3 sensors configuration):
one sensor is on csi-ab, one on csi-ef and one on csi-gh

This is the confirmation of port binding(which to me, looks ok):

Media controller API version 0.1.0

Media device information
------------------------
driver          tegra194-vi5
model           NVIDIA Tegra Video Input Device
serial          
bus info        
hw revision     0x3
driver version  0.0.0

Device topology
- entity 1: imx283 30-001a (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev0
	pad0: Source
		[fmt:SRGGB10_1X10/5496x3694 field:none colorspace:srgb]
		-> "15a00000.nvcsi--6":0 [ENABLED]

- entity 3: 15a00000.nvcsi--6 (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
	pad0: Sink
		<- "imx283 30-001a":0 [ENABLED]
	pad1: Source
		-> "vi-output, imx283 30-001a":0 [ENABLED]

- entity 6: vi-output, imx283 30-001a (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
	pad0: Sink
		<- "15a00000.nvcsi--6":1 [ENABLED]

- entity 18: imx283 34-001a (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev2
	pad0: Source
		[fmt:SRGGB10_1X10/5496x3694 field:none colorspace:srgb]
		-> "15a00000.nvcsi--4":0 [ENABLED]

- entity 20: 15a00000.nvcsi--4 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
	pad0: Sink
		<- "imx283 34-001a":0 [ENABLED]
	pad1: Source
		-> "vi-output, imx283 34-001a":0 [ENABLED]

- entity 23: vi-output, imx283 34-001a (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video1
	pad0: Sink
		<- "15a00000.nvcsi--4":1 [ENABLED]

- entity 35: imx283 36-001a (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev4
	pad0: Source
		[fmt:SRGGB10_1X10/5496x3694 field:none colorspace:srgb]
		-> "15a00000.nvcsi--3":0 [ENABLED]

- entity 37: 15a00000.nvcsi--3 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev5
	pad0: Sink
		<- "imx283 36-001a":0 [ENABLED]
	pad1: Source
		-> "vi-output, imx283 36-001a":0 [ENABLED]

- entity 40: vi-output, imx283 36-001a (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video2
	pad0: Sink
		<- "15a00000.nvcsi--3":1 [ENABLED]

but when trying to access sensor through:

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! nvoverlaysink -e

sensor-id=0 gives me image from sensor on csi-ab
sensor-id=1 gives me image from sensor on csi-ab
sensor-id=2 gives me image from sensor on csi-ef

Again this is only when sensor is on csi-ab and csi-gh.
Did you maybe try that configuration?

hello d.kristofic,

I think you might check your sensor device tree settings,
please check the badge, and position variables,
since you had 4-camera settings, could you please have a try to specify all your sensors device tree with below positions property. thanks

[0] - BottomLeft 
[1] - CenterLeft
[2] - CenterRight
[3] - TopLeft

hi JerryChang,

that solved one of my problems.

The I2C acknowledge issue is still present when connecting 4 sensors.

I’ve tried to manually configure mux, and detect sensors address and no acknowledge from sensors.

While the same hardware is tested on Jetson-TX2 acknowledge is there, for all sensors(Supply power and clock is not dependent on the platform).

EDIT:
Problem resolved, it was HW.