ADV7280A-M decoder to Rock-5b

Hello, We have a similar need and would like to connect an ADV7280A-M to a Radxa Rock 5B board. We modified the kernel with the BSP to enable the ADV7180 module and created the DTS overlay below. It is correctly added to the overlays using rsetup , and the driver is properly initialized. The MIPI-CSI signals are indeed being sent, as I forced the FREERUN mode with color bars at 576i. However, I can’t get video output because I encounter an error from the rkcif driver saying it requires a sensor-type input. Do you have a solution for this issue to get video on /dev/video0 ?

DTS :

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/rockchip.h>

/ {
metadata {
title = “Enable ADV7280 without ISP”;
compatible = “radxa,rock-5b”;
category = “camera”;
exclusive = “csi2_dphy0”;
description = “ADV7280 directly connected to CIF without ISP.”;
};
};

&i2c3 {
status = “okay”;
#address-cells = <1>;
#size-cells = <0>;

adv7280: composite-in@21 {
	compatible = "adi,adv7280-m";
	reg = <0x21>;

	/* Nom et orientation (cosmétique / libcamera) */
	rockchip,camera-module-index = <0>;
	rockchip,camera-module-facing = "back";
	rockchip,camera-module-name = "adv7280a-m";
	rockchip,camera-module-lens-name = "analog-in";

	/* Alimentation / contrôle GPIO (si dispo) */
	//reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
	//powerdown-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;

	/* Clock externe (si utilisée) */
	//clocks = <&cru SCLK_CIF_OUT>;
	//clock-names = "xvclk";

	port {
		adv7280_out: endpoint {
			//bus-width = <8>;
			bus-type = <4>;         // MIPI CSI-2
			data-lanes = <1>;       // Une seule lane de données
			clock-lanes = <0>;      // Horloge sur lane 0
			remote-endpoint = <&mipidphy0_in_ucam1>;
		};
	};
};

};

&csi2_dphy0_hw {
status = “okay”;
};

&csi2_dphy0 {
status = “okay”;

ports {
	#address-cells = <1>;
	#size-cells = <0>;

	port@0 {
		reg = <0>;

		mipidphy0_in_ucam1: endpoint@2 {
			reg = <2>;
			remote-endpoint = <&adv7280_out>;
			bus-width = <8>;
			data-lanes = <1>;
		};
	};

	port@1 {
		reg = <1>;

		csidphy0_out: endpoint@0 {
			reg = <0>;
			remote-endpoint = <&mipi2_csi2_input>;
		};
	};
};

};

&mipi2_csi2 {
status = “okay”;

ports {
	#address-cells = <1>;
	#size-cells = <0>;

	port@0 {
		reg = <0>;

		mipi2_csi2_input: endpoint@1 {
			reg = <1>;
			remote-endpoint = <&csidphy0_out>;
		};
	};

	port@1 {
		reg = <1>;

		mipi2_csi2_output: endpoint@0 {
			reg = <0>;
			remote-endpoint = <&cif_mipi2_in0>;
		};
	};
};

};

&rkcif {
status = “okay”;
};

&rkcif_mipi_lvds2 {
status = “okay”;

port {
	cif_mipi2_in0: endpoint {
		remote-endpoint = <&mipi2_csi2_output>;
	};
};

};

/* Désactivation de l’ISP */
&rkcif_mipi_lvds2_sditf {
status = “disabled”;
};

&rkisp0 {
status = “disabled”;
};

&rkisp0_vir0 {
status = “disabled”;
};

&isp0_mmu {
status = “disabled”;
};

&rkcif_mmu {
status = “okay”; // reste nécessaire pour CIF
};

Initialization error :
platform csi2-dphy0: Fixed dependency cycle(s) with /mipi2-csi2
[ 4.251409] platform mipi2-csi2: Fixed dependency cycle(s) with /csi2-dphy0
[ 4.251577] platform mipi2-csi2: Fixed dependency cycle(s) with /rkcif-mipi-lvds2
[ 4.251601] platform rkcif-mipi-lvds2: Fixed dependency cycle(s) with /mipi2-csi2
[ 5.210413] rkcif rkcif-mipi-lvds2: Adding to iommu group 15
[ 5.210452] rkcif rkcif-mipi-lvds2: rkcif driver version: v00.02.00
[ 5.210614] rkcif rkcif-mipi-lvds2: attach to cif hw node
[ 5.210626] rkcif rkcif-mipi-lvds2: rkcif wait line 0
[ 5.210637] rkcif rkcif-mipi-lvds2: rkcif fastboot reserve bufs num 3
[ 5.212759] rkcif rkcif-mipi-lvds2: No memory-region-thunderboot specified
[ 5.213735] rockchip-mipi-csi2-hw fdd10000.mipi0-csi2-hw: enter mipi csi2 hw probe!
[ 5.213843] rockchip-mipi-csi2-hw fdd10000.mipi0-csi2-hw: probe success, v4l2_dev:mipi0-csi2-hw!
[ 5.213882] rockchip-mipi-csi2-hw fdd20000.mipi1-csi2-hw: enter mipi csi2 hw probe!
[ 5.213970] rockchip-mipi-csi2-hw fdd20000.mipi1-csi2-hw: probe success, v4l2_dev:mipi1-csi2-hw!
[ 5.214005] rockchip-mipi-csi2-hw fdd30000.mipi2-csi2-hw: enter mipi csi2 hw probe!
[ 5.214085] rockchip-mipi-csi2-hw fdd30000.mipi2-csi2-hw: probe success, v4l2_dev:mipi2-csi2-hw!
[ 5.214121] rockchip-mipi-csi2-hw fdd40000.mipi3-csi2-hw: enter mipi csi2 hw probe!
[ 5.214202] rockchip-mipi-csi2-hw fdd40000.mipi3-csi2-hw: probe success, v4l2_dev:mipi3-csi2-hw!
[ 5.214236] rockchip-mipi-csi2-hw fdd50000.mipi4-csi2-hw: enter mipi csi2 hw probe!
[ 5.214315] rockchip-mipi-csi2-hw fdd50000.mipi4-csi2-hw: probe success, v4l2_dev:mipi4-csi2-hw!
[ 5.214349] rockchip-mipi-csi2-hw fdd60000.mipi5-csi2-hw: enter mipi csi2 hw probe!
[ 5.214429] rockchip-mipi-csi2-hw fdd60000.mipi5-csi2-hw: probe success, v4l2_dev:mipi5-csi2-hw!
[ 5.214929] rockchip-mipi-csi2 mipi2-csi2: attach to csi2 hw node
[ 5.214951] rkcif rkcif-mipi-lvds2: Entity type for entity rockchip-mipi-csi2 was not initialized!
[ 5.214958] rockchip-mipi-csi2: Async registered subdev
[ 5.214995] rockchip-mipi-csi2: probe success, v4l2_dev:rkcif-mipi-lvds2!
[ 5.279979] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[ 5.280144] rkcif-mipi-lvds2: Async subdev notifier completed
[ 5.280239] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[ 5.280379] rkcif-mipi-lvds2: There is not terminal subdev, not synchronized with ISP
[ 5.326976] rkcif rkcif-mipi-lvds2: clear unready subdev num: 0
[ 5.327014] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[ 5.327068] rkcif-mipi-lvds2: There is not terminal subdev, not synchronized with ISP
[ 8.349744] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[ 8.350153] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[ 8.352635] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[ 8.353355] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[ 8.353457] stream_cif_mipi_id2: update sensor info failed -19