We created a custom carrier board with 4 cameras.
The cameras are IMX219 with 2 lanes each one.
We used the CSI-A , C, E and F. This means: port-index: 0,2,4 and 5. For CSI and VI.
We have a TCA9584 with each camera connected to the ports 0, 1, 2 and 3.
We connected the CAM1_MCLK to 2 cameras and the CAM2_MCLK to other 2 cameras.
We have connected individual PW_DN for each camera.
I’m attaching my DTS for the cameras.
tegra210-camera-rbpcv2-1-imx219.dtsi (28.2 KB) tegra210-porg-camera-rbpcv2-1-imx219.dtsi (2.3 KB)
The error that we have is:
[ 3362.396850] vi 54080000.vi: mipi calibration failed
[ 3362.401918] vi 54080000.vi: calibration failed with -110 error
[ 3371.603801] vi 54080000.vi: Calibrate csi port 0
[ 3371.723454] vi 54080000.vi: Calibrate csi port 2
[ 3371.844538] vi 54080000.vi: Calibrate csi port 4
[ 3371.970337] vi 54080000.vi: Calibrate csi port 6
[ 3372.467409] tegra_mipi_cal 700e3000.mipical: Mipi cal timeout,val:5da1, lanes:4000000
[ 3372.475512] tegra_mipi_cal 700e3000.mipical: MIPI_CAL_CTRL 0x00 0x2a000000
[ 3372.475545] tegra_mipi_cal 700e3000.mipical: CIL_MIPI_CAL_STATUS 0x08 0x00005da1
[ 3372.475572] tegra_mipi_cal 700e3000.mipical: CIL_MIPI_CAL_STATUS_2 0x0c 0x00000000
[ 3372.475600] tegra_mipi_cal 700e3000.mipical: CILA_MIPI_CAL_CONFIG 0x14 0x00000000
[ 3372.475626] tegra_mipi_cal 700e3000.mipical: CILB_MIPI_CAL_CONFIG 0x18 0x00000000
[ 3372.475650] tegra_mipi_cal 700e3000.mipical: CILC_MIPI_CAL_CONFIG 0x1c 0x00000000
[ 3372.475675] tegra_mipi_cal 700e3000.mipical: CILD_MIPI_CAL_CONFIG 0x20 0x00000000
[ 3372.475694] tegra_mipi_cal 700e3000.mipical: CILE_MIPI_CAL_CONFIG 0x24 0x00000000
[ 3372.475706] tegra_mipi_cal 700e3000.mipical: CILF_MIPI_CAL_CONFIG 0x28 0x00000000
[ 3372.475718] tegra_mipi_cal 700e3000.mipical: DSIA_MIPI_CAL_CONFIG 0x38 0x00000200
[ 3372.475728] tegra_mipi_cal 700e3000.mipical: DSIB_MIPI_CAL_CONFIG 0x3c 0x00000200
[ 3372.475738] tegra_mipi_cal 700e3000.mipical: DSIC_MIPI_CAL_CONFIG 0x40 0x00000200
[ 3372.475749] tegra_mipi_cal 700e3000.mipical: DSID_MIPI_CAL_CONFIG 0x44 0x00000200
[ 3372.475758] tegra_mipi_cal 700e3000.mipical: DSIA_MIPI_CAL_CONFIG_2 0x64 0x00000002
[ 3372.475767] tegra_mipi_cal 700e3000.mipical: DSIB_MIPI_CAL_CONFIG_2 0x68 0x00000002
[ 3372.475776] tegra_mipi_cal 700e3000.mipical: DSIC_MIPI_CAL_CONFIG_2 0x70 0x00000002
[ 3372.475786] tegra_mipi_cal 700e3000.mipical: DSID_MIPI_CAL_CONFIG_2 0x74 0x00000002
[ 3372.475795] tegra_mipi_cal 700e3000.mipical: MIPI_BIAS_PAD_CFG0 0x58 0x00000000
[ 3372.475805] tegra_mipi_cal 700e3000.mipical: MIPI_BIAS_PAD_CFG1 0x5c 0x00000300
[ 3372.475814] tegra_mipi_cal 700e3000.mipical: MIPI_BIAS_PAD_CFG2 0x60 0x00010310
[ 3372.475832] vi 54080000.vi: mipi calibration failed
[ 3372.480812] vi 54080000.vi: calibration failed with -110 error
The good point is using the DUAL-imx219 dtb, and using i2cset -y 6 0x70 0x0f we have access to 2 cameras simultaneously without problem.
But never I have access with the TCA9584 i2c_mux.