kernel icon indicating copy to clipboard operation
kernel copied to clipboard

[IMX219] Failed to probe IMX219 camera module on RK1808 board

Open sunghyun-nam opened this issue 7 months ago • 0 comments

Hi, I'm trying to enable and use the IMX219 camera module on a Rockchip RK1808 board, but I'm encountering problems during the driver probe stage.

📌 Setup

  • Board: RK1808 (custom device tree)
  • Kernel: 4.4.194
  • Camera: Raspberry Pi Camera Module V2 (IMX219)
  • Interface: MIPI CSI
  • Device Tree: added imx219@10 node with required power, GPIO, clock, and data-lanes

✅ What I've done

  1. Created and enabled the imx219@10 node in DTS:
    • Set status = "okay"
    • Configured GPIOs (enable-gpios, pwdn-gpios), clocks, regulators, and port
  2. Recompiled DTB with make dtbs and deployed it to the target board
  3. Compared with working OV5647 DTS node (which probes successfully)

❌ Problem

IMX219 fails to probe, and the dmesg output shows: [ 0.687709] imx219 1-0010: no default pinctrl state [ 0.694726] imx219 1-0010: Error -5 setting default controls [ 0.694780] imx219: probe of 1-0010 failed with error -5

Additionally, I get the following error: rockchip-mipi-dphy-rx: No link between dphy and sensor rkisp1: update sensor info failed -19

Partial section of the currently used DTS file: I commented out the ov5647 section and uncommented the imx219 section in the previously used DTS file: `
/*ov5647: ov5647@36 { status = "okay"; compatible = "ovti,ov5647"; reg = <0x36>; clocks = <&cru SCLK_CIF_OUT>; clock-names = "xclk";

	avdd-supply = <&vcc2v8_dvp>;
	dovdd-supply = <&vcc1v8_dvp>;
	dvdd-supply = <&vdd1v5_dvp>;
	pwdn-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default";

	rockchip,camera-module-index = <0>;
	rockchip,camera-module-facing = "back";
	rockchip,camera-module-name = "TongJu";
	rockchip,camera-module-lens-name = "CHT842-MD";

    port {
        ucam_out: endpoint {
            remote-endpoint = <&mipi_in_ucam>;
			//link-frequencies = /bits/ 64 <1250000000>;
			//link-frequencies = /bits/ 64 <800000000>;
            data-lanes = <1 2>;
        };  
    };  
};
*/
imx219: imx219@10 {
	status = "okay";
	compatible = "sony,imx219";
	reg = <0x10>;
	clocks = <&cru SCLK_CIF_OUT>;
	clock-names = "xvclk";

	avdd-supply = <&vcc2v8_dvp>;
	dovdd-supply = <&vcc1v8_dvp>;
	dvdd-supply = <&vdd1v5_dvp>;
	enable-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
	pwdn-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default";
	//pinctrl-0 = <&cif_clkout_m0>;

	rockchip,camera-module-index = <0>;
	rockchip,camera-module-facing = "back";
	rockchip,camera-module-name = "TongJu";
	rockchip,camera-module-lens-name = "CHT842-MD";
	
	port {
		ucam_out: endpoint {
			remote-endpoint = <&mipi_in_ucam>;
			//link-frequencies = /bits/ 64 <200000000>;
			data-lanes = <1 2>;
		};
	};
};`

❓ What I'm trying to find out

  • Are there any additional steps required to fully enable the IMX219 sensor (e.g., DTS modifications, driver patches, or specific configuration settings)?
  • Does the Raspberry Pi V2 IMX219 module have known compatibility issues with RK1808 or Rockchip ISP?

Any guidance or working examples would be greatly appreciated.

Thanks!

sunghyun-nam avatar Jun 09 '25 09:06 sunghyun-nam