Tool/software:
Hi,
I have the same custom board as mentioned in (https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1008216/am5728-unable-to-get-correct-capture-with-ov5640-green-pink-screen-issue?tisearch=e2e-sitesearch&keymatch=am5728%252520ov5640#) based on TI's AM5728 EVM.
I am running the latest Linux PSDK 9.03 on it. I have done the same dts changes similar to what is described in the post above. (See dts changes below:-)
clk_ov5640_fixed: clk_ov5640_fixed { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <24000000>; }; clk_ov5640: clk_ov5640 { compatible = "gpio-gate-clock"; #clock-cells = <0>; clocks = <&clk_ov5640_fixed>; enable-gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>; //[04] changed in VIC2 from ACTIVE_LOW }; &vip2 { status = "okay"; }; &vin3a { status = "okay"; port { vin3a_ep: endpoint { remote-endpoint = <&cam>; slave-mode; bus-width = <8>; data-shift = <0>; hsync-active = <1>; vsync-active = <0>; pclk-sample = <0>; }; }; }; &i2c3 { status = "okay"; clock-frequency = <400000>; ov5640@3c { compatible = "ovti,ov5640"; reg = <0x3c>; status="okay"; clocks = <&clk_ov5640>; clock-names = "xclk"; powerdown-gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>; port { cam: endpoint { bus-width = <8>; data-shift = <0>; hsync-active = <1>; vsync-active = <0>; pclk-sample = <0>; remote-endpoint = <&vin3a_ep>; }; }; }; };
I have enabled ov5640 driver in the kernel and I too am taking care of all its dependencies as well. I am using the same driver code which is present in Linux 9.03 PSDK. Path for the driver is -
/opt/ti-processor-sdk-linux-am57xx-evm-09_03_06_05/board-support/ti-linux-kernel-6.1.119+gitAUTOINC+e4e8b16e66-ti/drivers/media/i2c/ov5640.c
But the camera device is not getting registered as /dev/video1 (capture device). Only /dev/video0 is showing.
I have put prints in each function in drivers/media/i2c/ov5640.c and ./drivers/media/platform/ti/vpe/vip.c (See dmesg logs below)
[ 0.326049] VM********************* File: drivers/input/keyboard/omap4-keypad.c, Line: 358, Function: omap4_keypad_probe **************************** [ 9.326629] VM********************* File: drivers/media/i2c/ov5640.c, Line: 3850, Function: ov5640_probe **************************** [ 9.362701] VM********************* File: drivers/media/i2c/ov5640.c, Line: 3814, Function: ov5640_get_regulators **************************** [ 9.496124] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3937, Function: vip_probe **************************** [ 9.597930] VM********************* File: drivers/media/i2c/ov5640.c, Line: 3442, Function: ov5640_init_controls **************************** [ 9.660461] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3782, Function: vip_endpoint_scan **************************** [ 9.686187] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 333, Function: vip_init_format_info **************************** [ 9.817169] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3617, Function: get_field **************************** [ 9.884002] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 529, Function: vip_shared_set_clock_enable **************************** [ 9.938079] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 569, Function: vip_top_vpdma_reset **************************** [ 10.002136] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field **************************** [ 10.018829] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field **************************** [ 10.044342] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3867, Function: vip_probe_slice **************************** [ 10.065155] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 540, Function: vip_top_reset **************************** [ 10.087524] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field **************************** [ 10.102722] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field **************************** [ 10.118164] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 629, Function: vip_set_slice_path **************************** [ 10.158843] VM********************* File: drivers/media/i2c/ov5640.c, Line: 3827, Function: ov5640_check_chip_id **************************** [ 10.207580] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field **************************** [ 10.267791] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3867, Function: vip_probe_slice **************************** [ 10.400909] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 540, Function: vip_top_reset **************************** [ 10.490997] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field **************************** [ 10.583160] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field **************************** [ 10.583160] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 629, Function: vip_set_slice_path **************************** [ 10.583160] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field **************************** [ 10.588836] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3937, Function: vip_probe **************************** [ 10.588867] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3782, Function: vip_endpoint_scan **************************** [ 10.604034] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3624, Function: vip_vpdma_fw_cb **************************** [ 10.604064] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3801, Function: vip_probe_complete **************************** [ 10.604064] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3704, Function: fwnode_graph_get_next_endpoint_by_regs **************************** [ 10.604095] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3583, Function: alloc_port **************************** [ 10.604095] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3712, Function: vip_register_subdev_notif **************************** [ 10.604095] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3704, Function: fwnode_graph_get_next_endpoint_by_regs **************************** [ 10.604125] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3704, Function: fwnode_graph_get_next_endpoint_by_regs **************************** [ 10.604125] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3704, Function: fwnode_graph_get_next_endpoint_by_regs ****************************
What am I missing?
Please help resolve this !