Page 1 of 1

Luckfox Pico Pro Max + ADV7282-M

Posted: 2026-05-04 9:59
by zombien-5
Hello, I'm trying to get a video from a custom CVBS to MIPI-CSI2 decoder based on the ADV7282-M IC. I connected it to Luckfox Pico Pro Max CSI Camera connector(using custom 20 to 15 pin FFC adapter) according to the diagram below:
connectionDiagram.png
I've enabled the kernel driver for ADV7282-M by adding CONFIG_VIDEO_ADV7180=m to luckfox_rv1106_linux_defconfig file, and modified the rv1106-luckfox-pico-pro-max-ipc.dtsi file(this is modified fragment, everything else remains untouched):

Code: Select all

&csi2_dphy0 {
	status = "okay";

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

		port@0 {
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <0>;

			csi_dphy_input0: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&adv7282m_out>;
				data-lanes = <1>;
			};
		};

		port@1 {
			reg = <1>;
			#address-cells = <1>;
			#size-cells = <0>;

			csi_dphy_output: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&mipi_csi2_input>;
			};
		};
	};
};

&i2c4 {
	status = "okay";
	clock-frequency = <400000>;

	adv7282m: adv7282m@21 {
		compatible = "adi,adv7282-m";
		status = "okay";
		reg = <0x21>;
		rockchip,camera-module-index = <0>;
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "ADV7282-M";
		rockchip,camera-module-lens-name = "None";

		pinctrl-names = "default";
		pinctrl-0 = <&mipi_refclk_out0>;
		
		port {
			adv7282m_out: endpoint {
				remote-endpoint = <&csi_dphy_input0>;
				data-lanes = <1>;
			};
		};
	};
};
It gives me this dmesg log:

Code: Select all

[    0.428176] mmc_host mmc1: card is non-removable.
[    0.429042] usbcore: registered new interface driver snd-usb-audio
[    0.429563] rv1106-acodec ff480000.acodec: current soc_id: rv1106
[    0.429648] rv1106-acodec ff480000.acodec: Use pa_ctl_gpio and pa_ctl_delay_ms: 0
[    0.431605] xt_time: kernel timezone is -0000
[    0.431990] ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
[    0.432322] NET: Registered protocol family 10
[    0.433595] Segment Routing with IPv6
[    0.435080] NET: Registered protocol family 17
[    0.435205] Key type dns_resolver registered
[    0.436186] Loading compiled-in X.509 certificates
[    0.451396] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    0.462982] input: adc-keys as /devices/platform/adc-keys/input/input0
[    0.490244] mmc_host mmc1: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
[    0.543477] mmc_host mmc1: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)
[    0.544676] ubi0: attaching mtd6
[    0.590798] mmc_host mmc1: Bus speed (slot 0) = 187500Hz (slot req 100000Hz, actual 93750HZ div = 1)
[    0.801939] ubi0: scanning is finished
[    0.831972] ubi0: volume 0 ("rootfs") re-sized from 645 to 1636 LEBs
[    0.832481] ubi0: attached mtd6 (name "rootfs", size 210 MiB)
[    0.832500] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    0.832509] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    0.832519] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    0.832527] ubi0: good PEBs: 1680, bad PEBs: 0, corrupted PEBs: 0
[    0.832536] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
[    0.832546] ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1730418594
[    0.832555] ubi0: available PEBs: 0, total reserved PEBs: 1680, PEBs reserved for bad PEB handling: 40
[    0.833965] ALSA device list:
[    0.833986]   #0: rv-acodec
[    0.834620] ubi0: background thread "ubi_bgt0d" started, PID 66
[    0.834726] UBIFS (ubi0:0): Mounting in unauthenticated mode
[    0.882079] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs", R/O mode
[    0.882106] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[    0.882120] UBIFS (ubi0:0): FS size: 206336000 bytes (196 MiB, 1625 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
[    0.882129] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
[    0.882141] UBIFS (ubi0:0): media format: w4/r0 (latest is w5/r0), UUID F0B23DEE-7139-4183-96ED-E9314C641654, small LPT model
[    0.890418] VFS: Mounted root (ubifs filesystem) readonly on device 0:14.
[    0.894361] devtmpfs: mounted
[    0.894585] Freeing unused kernel memory: 224K
[    0.894595] Kernel memory protection not selected by kernel config.
[    0.894621] Run /sbin/init as init process
[    0.894637]   with arguments:
[    0.894640]     /sbin/init
[    0.894643]   with environment:
[    0.894648]     HOME=/
[    0.894651]     TERM=linux
[    0.894654]     user_debug=31
[    0.894658]     storagemedia=mtd
[    0.894662]     earlycon=uart8250,mmio32,0xff4c0000
[    0.940890] process '/bin/busybox' started with executable stack
[    1.152578] UBIFS (ubi0:0): start fixing up free space
[   10.884505] UBIFS (ubi0:0): free space fixup complete
[   10.899317] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 69
[   11.425894] udevd[99]: starting version 3.2.7
[   11.578088] udevd[100]: starting eudev-3.2.7
[   13.062361] ubi4: attaching mtd4
[   13.446314] ubi4: scanning is finished
[   13.495332] ubi4: volume 0 ("oem") re-sized from 152 to 196 LEBs
[   13.499071] ubi4: attached mtd4 (name "oem", size 30 MiB)
[   13.499106] ubi4: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[   13.499117] ubi4: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[   13.499125] ubi4: VID header offset: 2048 (aligned 2048), data offset: 4096
[   13.499134] ubi4: good PEBs: 240, bad PEBs: 0, corrupted PEBs: 0
[   13.499143] ubi4: user volume: 1, internal volumes: 1, max. volumes count: 128
[   13.499154] ubi4: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 865295137
[   13.499163] ubi4: available PEBs: 0, total reserved PEBs: 240, PEBs reserved for bad PEB handling: 40
[   13.503904] ubi4: background thread "ubi_bgt4d" started, PID 140
[   13.646252] UBIFS (ubi4:0): Mounting in unauthenticated mode
[   13.646507] UBIFS (ubi4:0): background thread "ubifs_bgt4_0" started, PID 145
[   13.675351] UBIFS (ubi4:0): start fixing up free space
[   16.175528] UBIFS (ubi4:0): free space fixup complete
[   16.204570] UBIFS (ubi4:0): UBIFS: mounted UBI device 4, volume 0, name "oem"
[   16.204602] UBIFS (ubi4:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[   16.204616] UBIFS (ubi4:0): FS size: 23617536 bytes (22 MiB, 186 LEBs), journal size 4190208 bytes (3 MiB, 33 LEBs)
[   16.204625] UBIFS (ubi4:0): reserved for root: 0 bytes (0 KiB)
[   16.204637] UBIFS (ubi4:0): media format: w4/r0 (latest is w5/r0), UUID BBA50F94-2F41-48C3-B0F1-57278D61482E, small LPT model
[   16.275979] ubi5: attaching mtd5
[   16.372904] ubi5: scanning is finished
[   16.422984] ubi5: volume 0 ("userdata") re-sized from 13 to 36 LEBs
[   16.426777] ubi5: attached mtd5 (name "userdata", size 10 MiB)
[   16.426812] ubi5: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[   16.426822] ubi5: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[   16.426831] ubi5: VID header offset: 2048 (aligned 2048), data offset: 4096
[   16.426841] ubi5: good PEBs: 80, bad PEBs: 0, corrupted PEBs: 0
[   16.426850] ubi5: user volume: 1, internal volumes: 1, max. volumes count: 128
[   16.426862] ubi5: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1191840194
[   16.426871] ubi5: available PEBs: 0, total reserved PEBs: 80, PEBs reserved for bad PEB handling: 40
[   16.431703] ubi5: background thread "ubi_bgt5d" started, PID 154
[   16.487505] UBIFS (ubi5:0): Mounting in unauthenticated mode
[   16.487710] UBIFS (ubi5:0): background thread "ubifs_bgt5_0" started, PID 159
[   16.527689] UBIFS (ubi5:0): start fixing up free space
[   16.602451] UBIFS (ubi5:0): free space fixup complete
[   16.631396] UBIFS (ubi5:0): UBIFS: mounted UBI device 5, volume 0, name "userdata"
[   16.631429] UBIFS (ubi5:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[   16.631442] UBIFS (ubi5:0): FS size: 3301376 bytes (3 MiB, 26 LEBs), journal size 1650688 bytes (1 MiB, 13 LEBs)
[   16.631452] UBIFS (ubi5:0): reserved for root: 0 bytes (0 KiB)
[   16.631464] UBIFS (ubi5:0): media format: w4/r0 (latest is w5/r0), UUID C495B933-3845-4897-9FA7-251912416F57, small LPT model
[   17.045255] rk_dvbm ffa70000.rkdvbm: probe start
[   17.045291] rk_dvbm ffa70000.rkdvbm: dvbm ctx e8049ba5
[   17.046653] rk_dvbm ffa70000.rkdvbm: probe success
[   17.086233] adv7180 4-0021: chip found @ 0x21 (rk3x-i2c)
[   17.139550] rkcifhw ffa10000.rkcif: no iommu attached, using non-iommu buffers
[   17.139581] rkcifhw ffa10000.rkcif: No reserved memory region assign to CIF
[   17.139995] rkcif rkcif-mipi-lvds: rkcif driver version: v00.02.00
[   17.140150] rkcif rkcif-mipi-lvds: attach to cif hw node
[   17.140166] rkcif rkcif-mipi-lvds: failed to get dphy hw node
[   17.140175] rkcif rkcif-mipi-lvds: rkcif wait line 0
[   17.140185] rkcif rkcif-mipi-lvds: rkcif fastboot reserve bufs num 3
[   17.140200] : terminal subdev does not exist
[   17.140210] : terminal subdev does not exist
[   17.140217] : terminal subdev does not exist
[   17.140225] : terminal subdev does not exist
[   17.140236] : get_remote_sensor: video pad[0] is null
[   17.140245] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[   17.140256] : rkcif_scale_set_fmt: req(80, 60) src out(0, 0)
[   17.140264] : get_remote_sensor: video pad[0] is null
[   17.140271] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[   17.140280] : rkcif_scale_set_fmt: req(80, 60) src out(0, 0)
[   17.140289] : get_remote_sensor: video pad[0] is null
[   17.140295] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[   17.140303] : rkcif_scale_set_fmt: req(80, 60) src out(0, 0)
[   17.140311] : get_remote_sensor: video pad[0] is null
[   17.140318] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[   17.140326] : rkcif_scale_set_fmt: req(80, 60) src out(0, 0)
[   17.151632] rkcif rkcif-mipi-lvds: No memory-region-thunderboot specified
[   17.152785] rockchip-mipi-csi2-hw ffa20000.mipi-csi2-hw: enter mipi csi2 hw probe!
[   17.153002] rockchip-mipi-csi2-hw ffa20000.mipi-csi2-hw: probe success, v4l2_dev:mipi-csi2-hw!
[   17.153131] rockchip-mipi-csi2-hw ffa30000.mipi-csi2-hw: enter mipi csi2 hw probe!
[   17.153255] rockchip-mipi-csi2-hw ffa30000.mipi-csi2-hw: probe success, v4l2_dev:mipi-csi2-hw!
[   17.153689] rockchip-mipi-csi2 mipi0-csi2: attach to csi2 hw node
[   17.153752] rkcif rkcif-mipi-lvds: Entity type for entity rockchip-mipi-csi2 was not initialized!
[   17.153774] rockchip-mipi-csi2: Async registered subdev
[   17.153788] rockchip-mipi-csi2: probe success, v4l2_dev:rkcif-mipi-lvds!
[   17.205376] rkisp_hw ffa00000.rkisp: is_thunderboot: 0
[   17.205403] rkisp_hw ffa00000.rkisp: Missing rockchip,grf property
[   17.205446] rkisp_hw ffa00000.rkisp: max input:0x0@0fps
[   17.205654] rkisp_hw ffa00000.rkisp: get sram size:253952
[   17.205669] rkisp_hw ffa00000.rkisp: no iommu attached, using non-iommu buffers
[   17.205679] rkisp_hw ffa00000.rkisp: No reserved memory region. default cma area!
[   17.206032] rkisp rkisp-vir0: rkisp driver version: v02.05.00
[   17.206190] rkisp rkisp-vir0: No memory-region-thunderboot specified
[   17.207257] rkisp rkisp-vir0: Entity type for entity rkisp-isp-subdev was not initialized!
[   17.240172] rockchip-csi2-dphy-hw ff3e8000.csi2-dphy-hw: csi2 dphy hw probe successfully!
[   17.262034] rockchip-csi2-dphy csi2-dphy0: dphy0 matches adv7180 4-0021:bus type 5
[   17.264961] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   17.264986] rkcif-mipi-lvds: Async subdev notifier completed
[   17.265005] rockchip-csi2-dphy csi2-dphy0: csi2 dphy0 probe successfully!
[   17.266264] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   17.266283] rkcif-mipi-lvds: There is not terminal subdev, not synchronized with ISP
[   17.309794] rkcif rkcif-mipi-lvds: clear unready subdev num: 0
[   17.309868] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   17.309880] rkcif-mipi-lvds: There is not terminal subdev, not synchronized with ISP
[   17.310093] rkisp rkisp-vir0: clear unready subdev num: 1
[   17.310400] rkisp-vir0: Async subdev notifier completed
[   17.345969] rga: rga2, irq = 37, match scheduler
[   17.349000] rga: rga2 hardware loaded successfully, hw_version:3.3.87975.
[   17.349028] rga: rga2 probe successfully
[   17.349297] rga_iommu: IOMMU binding successfully, default mapping core[0x4]
[   17.353542] rga: Module initialized. v1.3.1
[   17.426826] mpp_vcodec: loading out-of-tree module taints kernel.
[   17.445735] mpp_vcodec: init new
[   17.445873] mpp_service mpp-srv: 424abb9b author: Yandong Lin 2024-04-29 [mpp_enc]: fix wrap enc sw timeout when resolution switch
[   17.445912] mpp_service mpp-srv: probe start
[   17.452130] mpp_rkvenc_540c ffa50000.rkvenc: probing start
[   17.452367] mpp_rkvenc_540c ffa50000.rkvenc: probing finish
[   17.452785] mpp_vepu_pp ffa60000.rkvenc-pp: probe device
[   17.452929] mpp_vepu_pp ffa60000.rkvenc-pp: shared_rst_a_pp is not found!
[   17.452943] vepu_pp_init:526: No aclk reset resource define
[   17.452954] mpp_vepu_pp ffa60000.rkvenc-pp: shared_rst_h_pp is not found!
[   17.452963] vepu_pp_init:529: No hclk reset resource define
[   17.455266] mpp_vepu_pp ffa60000.rkvenc-pp: probing finish
[   17.455528] mpp_service mpp-srv: probe success
[   17.483675] RKNPU ff660000.npu: RKNPU: rknpu iommu device-tree entry not found!, using non-iommu mode
[   17.484828] RKNPU ff660000.npu: RKNPU: Initialized RKNPU driver: v0.9.2 for 20230825
[   17.484930] RKNPU ff660000.npu: dev_pm_opp_set_regulators: no regulator (rknpu) found: -19
[   17.574997] rockit_load start
[   17.594603] rockit_load end
[   17.619732] rve: rve_irq, irq = 53, match scheduler
[   17.620080] rve: Driver loaded successfully rve[2] ver:[2021]58.1a
[   17.620100] rve: probe successfully
[   17.621419] rve: Module initialized. v1.0.6
[   17.728107] rk_gmac-dwmac ffa80000.ethernet eth0: PHY [stmmac-0:02] driver [RK630 PHY] (irq=POLL)
[   17.728997] dwmac4: Master AXI performs any burst length
[   17.729034] rk_gmac-dwmac ffa80000.ethernet eth0: No Safety Features support found
[   17.729055] rk_gmac-dwmac ffa80000.ethernet eth0: PTP not supported by HW
[   17.729358] rk_gmac-dwmac ffa80000.ethernet eth0: configuring for phy/rmii link mode
[   17.927173] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[   17.927198] stream_cif_mipi_id2: update sensor info failed -19
[   17.927710] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   17.927726] stream_cif_mipi_id0: update sensor info failed -19
[   17.927920] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   17.927935] rkcif_scale_ch0: update sensor info failed -19
[   17.928238] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   17.928253] rkcif_tools_id0: update sensor info failed -19
[   17.968355] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[   17.968378] rkcif_tools_id1: update sensor info failed -19
[   17.977825] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[3] get remote terminal sensor failed!
[   17.977847] stream_cif_mipi_id3: update sensor info failed -19
[   18.008214] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[3] get remote terminal sensor failed!
[   18.008235] rkcif_scale_ch3: update sensor info failed -19
[   18.011056] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[   18.011077] rkcif_scale_ch1: update sensor info failed -19
[   18.015433] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[   18.015454] rkcif_scale_ch2: update sensor info failed -19
[   18.016320] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[   18.016339] stream_cif_mipi_id1: update sensor info failed -19
[   18.078569] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[   18.078591] rkcif_tools_id2: update sensor info failed -19
[   29.487265] file system registered
[   29.506723] using random self ethernet address
[   29.506749] using random host ethernet address
[   29.517349] Mass Storage Function, version: 2009/09/11
[   29.517375] LUN: removable file: (no medium)
[   29.581424] read descriptors
[   29.581824] read strings
[   30.577434] usb0: HOST MAC fa:23:d2:a4:27:35
[   30.577459] usb0: MAC 7a:1a:72:d0:db:66
[   30.709434] dwc3 ffb00000.usb: device reset
[   30.825434] dwc3 ffb00000.usb: device reset
[   30.944932] android_work: sent uevent USB_STATE=CONNECTED
[   30.988844] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready
[   30.989949] android_work: sent uevent USB_STATE=CONFIGURED
[ 17.086233] adv7180 4-0021: chip found @ 0x21 (rk3x-i2c)
Means I2C communication is ok. However, I can't get any video from /dev/video0
Also media-ctl output:

Code: Select all

[root@luckfox root]# media-ctl -p
Media controller API version 5.10.160

Media device information
------------------------
driver          rkcif
model           rkcif-mipi-lvds
serial          
bus info        
hw revision     0x0
driver version  5.10.160

Device topology
- entity 1: stream_cif_mipi_id0 (1 pad, 11 links)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "rockchip-mipi-csi2":1 [ENABLED]
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 5: stream_cif_mipi_id1 (1 pad, 11 links)
            type Node subtype V4L flags 0
            device node name /dev/video1
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 [ENABLED]
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 9: stream_cif_mipi_id2 (1 pad, 11 links)
            type Node subtype V4L flags 0
            device node name /dev/video2
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 [ENABLED]
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 13: stream_cif_mipi_id3 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video3
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 [ENABLED]
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 17: rkcif_scale_ch0 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video4
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 [ENABLED]
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 21: rkcif_scale_ch1 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video5
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 [ENABLED]
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 25: rkcif_scale_ch2 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video6
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 [ENABLED]
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 29: rkcif_scale_ch3 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video7
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 [ENABLED]
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 33: rkcif_tools_id0 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video8
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 [ENABLED]
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 37: rkcif_tools_id1 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video9
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 [ENABLED]
                <- "rockchip-mipi-csi2":11 []

- entity 41: rkcif_tools_id2 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video10
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 [ENABLED]

- entity 45: rockchip-mipi-csi2 (12 pads, 122 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev0
        pad0: Sink
                [fmt:UYVY8_1X16/720x240 field:alternate colorspace:smpte170m
                 crop.bounds:(0,0)/720x240
                 crop:(0,0)/720x240]
                <- "rockchip-csi2-dphy0":1 [ENABLED]
        pad1: Source
                -> "stream_cif_mipi_id0":0 [ENABLED]
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad2: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 [ENABLED]
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad3: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 [ENABLED]
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad4: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 [ENABLED]
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad5: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 [ENABLED]
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad6: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 [ENABLED]
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad7: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 [ENABLED]
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad8: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 [ENABLED]
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad9: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 [ENABLED]
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad10: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 [ENABLED]
                -> "rkcif_tools_id2":0 []
        pad11: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 [ENABLED]

- entity 58: rockchip-csi2-dphy0 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev1
        pad0: Sink
                [fmt:UYVY8_1X16/720x240@1001/30000 field:alternate colorspace:smpte170m]
                <- "adv7180 4-0021":0 [ENABLED]
        pad1: Source
                -> "rockchip-mipi-csi2":0 [ENABLED]

- entity 63: adv7180 4-0021 (1 pad, 1 link)
             type V4L2 subdev subtype Decoder flags 0
             device node name /dev/v4l-subdev2
        pad0: Source
                [fmt:UYVY8_1X16/720x240@1001/30000 field:alternate colorspace:smpte170m]
                -> "rockchip-csi2-dphy0":0 [ENABLED]
I'm trying to obtain video using this set of commands:

Code: Select all

[root@luckfox root]# v4l2-ctl -d /dev/v4l-subdev2 -s pal
[root@luckfox root]# media-ctl -V ''\''adv7180 4-0021'\'':0 [fmt:UYVY8_1X16/720x576 field:none colorspace:smpte170m]'
[root@luckfox root]# media-ctl -V ''\''rockchip-csi2-dphy0'\'':0 [fmt:UYVY8_1X16/720x576 field:none colorspace:smpte170m]'
[root@luckfox root]# media-ctl -V ''\''rockchip-mipi-csi2'\'':0 [fmt:UYVY8_1X16/720x576 field:none colorspace:smpte170m]'
[root@luckfox root]# media-ctl -V ''\''stream_cif_mipi_id0'\'':0 [fmt:UYVY8_1X16/720x576 field:none colorspace:smpte170m]'
Unable to setup formats: No such device (19)
[root@luckfox root]# gst-launch-1.0 -vvv v4l2src ! videoconvert ! x265enc ! rtph265pay ! udpsink host=172.32.0.98 port=7000
Setting pipeline to PAUSED ...
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not open device '/dev/video0' for reading and writing.
Additional debug info:
../sys/v4l2/v4l2_calls.c(628): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: No such device
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...
The same ADV7282-M board works like a charm on Raspberry Pi CM4. Where could be an issue? Maybe device tree or driver?
I'm also attached a patch
mypatch.zip (2.93 KiB)
Downloaded 93 times
against the last commit 824b817 in the SDK repo, that contains all changes I made(except the buildroot config, in which I enabled gstreamer, i2c-tools, and a few more packages not related to video)

Re: Luckfox Pico Pro Max + ADV7282-M

Posted: 2026-05-06 2:54
by Crocodile
We do not have an ADV7282 device available to verify your issue. We suggest first running the following command to identify which device is the mainpath:

Code: Select all

grep -H '' /sys/class/video4linux/video*/name 
If you find rkisp_mainpath (typically /dev/video11), check what output formats it supports before proceeding with further tests:

Code: Select all

v4l2-ctl --device=/dev/video11 --list-formats-ext
Note that /dev/video0 in the rkisp is typically used as stream_cif_mipi_id0 and cannot directly capture RAW frames.

Re: Luckfox Pico Pro Max + ADV7282-M

Posted: 2026-05-08 12:01
by zombien-5

Given commands produce this output:

Code: Select all

[root@luckfox root]# grep -H '' /sys/class/video4linux/video*/name 
/sys/class/video4linux/video0/name:stream_cif_mipi_id0
/sys/class/video4linux/video1/name:stream_cif_mipi_id1
/sys/class/video4linux/video10/name:rkcif_tools_id2
/sys/class/video4linux/video11/name:rkisp_mainpath
/sys/class/video4linux/video12/name:rkisp_selfpath
/sys/class/video4linux/video13/name:rkisp_bypasspath
/sys/class/video4linux/video14/name:rkisp_mainpath_4x4sampling
/sys/class/video4linux/video15/name:rkisp_bypasspath_4x4sampling
/sys/class/video4linux/video16/name:rkisp_lumapath
/sys/class/video4linux/video17/name:rkisp_rawrd0_m
/sys/class/video4linux/video18/name:rkisp_rawrd2_s
/sys/class/video4linux/video19/name:rkisp-statistics
/sys/class/video4linux/video2/name:stream_cif_mipi_id2
/sys/class/video4linux/video20/name:rkisp-input-params
/sys/class/video4linux/video3/name:stream_cif_mipi_id3
/sys/class/video4linux/video4/name:rkcif_scale_ch0
/sys/class/video4linux/video5/name:rkcif_scale_ch1
/sys/class/video4linux/video6/name:rkcif_scale_ch2
/sys/class/video4linux/video7/name:rkcif_scale_ch3
/sys/class/video4linux/video8/name:rkcif_tools_id0
/sys/class/video4linux/video9/name:rkcif_tools_id1
[root@luckfox root]# v4l2-ctl --device=/dev/video11 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture Multiplanar

        [0]: 'UYVY' (UYVY 4:2:2)
                Size: Stepwise 32x32 - 800x600 with step 8/8
        [1]: 'NV16' (Y/CbCr 4:2:2)
                Size: Stepwise 32x32 - 800x600 with step 8/8
        [2]: 'NV61' (Y/CrCb 4:2:2)
                Size: Stepwise 32x32 - 800x600 with step 8/8
        [3]: 'NV21' (Y/CrCb 4:2:0)
                Size: Stepwise 32x32 - 800x600 with step 8/8
        [4]: 'NV12' (Y/CbCr 4:2:0)
                Size: Stepwise 32x32 - 800x600 with step 8/8
        [5]: 'NM21' (Y/CrCb 4:2:0 (N-C))
                Size: Stepwise 32x32 - 800x600 with step 8/8
        [6]: 'NM12' (Y/CbCr 4:2:0 (N-C))
                Size: Stepwise 32x32 - 800x600 with step 8/8

P.S. Maybe there is some way to "bypass" rkcif and rkisp and output raw video to /dev/video0, in the same way it works on RPi4?


Re: Luckfox Pico Pro Max + ADV7282-M

Posted: 2026-05-09 6:24
by Crocodile

In theory, registering /dev/video0 independently while bypassing the ISP requires driver modifications. But so far, on the Rockchip platform, I haven't come across any driver that does this.