Skip to main content
Associate III
October 15, 2025
Question

ADV7280A-M Driver Issue on STM32MP2 Yocto System

  • October 15, 2025
  • 1 reply
  • 243 views

Hello everyone,

I am currently using the ADV7280A-M with an STM32MP2 YOCTO system. I found the related driver adv7180.c and successfully loaded the driver. Following the instructions in [1], I conducted tests, but I keep encountering the following errors, or the process gets stuck at "New Clock: GstSystemClock". I would like to ask if anyone has experienced similar issues?

Below is the output from running the gst-launch command:

media-ctl -d platform:48030000.dcmipp -r
media-ctl -d platform:48030000.dcmipp -l '"48020000.csi":1->"dcmipp_input":0[1]'
media-ctl -d platform:48030000.dcmipp -l "'dcmipp_input':2->'dcmipp_main_isp':0[1]"
media-ctl -d platform:48030000.dcmipp --set-v4l2 "'adv7180 2-0021':0[fmt:UYVY8_1X16/720x480]"
media-ctl -d platform:48030000.dcmipp --set-v4l2 "'48020000.csi':1[fmt:UYVY8_1X16/720x480]"
media-ctl -d platform:48030000.dcmipp --set-v4l2 "'dcmipp_input':2[fmt:UYVY8_1X16/720x480 field:none]"
media-ctl -d platform:48030000.dcmipp --set-v4l2 "'dcmipp_main_isp':1[fmt:RGB888_1X24/720x480 field:none]"
media-ctl -d platform:48030000.dcmipp --set-v4l2 "'dcmipp_main_postproc':0[compose:(0,0)/720x480]"
media-ctl -d platform:48030000.dcmipp --set-v4l2 "'dcmipp_main_postproc':1[fmt:RGB888_1X24/720x480]"
export main_capture_dev=$(media-ctl -d "platform:48030000.dcmipp" -e "dcmipp_main_capture")

gst-launch-1.0 v4l2src device=$main_capture_dev ! "video/x-raw, format=RGB16, width=720, height=480, framerate=30/1" ! queue ! waylandsink fullscreen=true

Here is the output after running the command:

(gst-launch-1.0:1344): GStreamer-Wayland-CRITICAL **: 05:17:41.603: gst_wl_window_ensure_fullscreen: assertion 'self' failed
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline i[ 42.741244] dcmipp 48030000.dcmipp: failed to start source subdev streaming (-2)
[ 42.748510] dcmipp 48030000.dcmipp: failed to start source subdev streaming (-2)
s PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

 

Here is my Device Tree:

&csi {
	status = "okay";
	/* USER CODE BEGIN csi */
	vdd-supply = <&scmi_vddcore>;
	vdda18-supply = <&scmi_v1v8>;
	ports{
		#address-cells = <1>;
		#size-cells = <0>;

		port@0{
			reg = <0>;

			csi_sink:endpoint{
				remote-endpoint = <&adv7280am_ep>; 
				bus-type = <4>;
				data-lanes = <0>;
			};
		};

		port@1{
			reg = <1>;

			csi_source:endpoint{
				remote-endpoint = <&dcmipp_0>;
			};
		};
	};
	/* USER CODE END csi */
};

&dcmipp {
	status = "okay";

	/* USER CODE BEGIN dcmipp */
	port{

		dcmipp_0:endpoint{
			remote-endpoint = <&csi_source>;
			bus-type = <4>;
		};
	};
	/* USER CODE END dcmipp */
};

&i2c4 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&i2c4_pins_mx>;
	pinctrl-1 = <&i2c4_sleep_pins_mx>;
	status = "okay";

	/* USER CODE BEGIN i2c4 */
	i2c-scl-rising-time-ns = <108>; //108
	i2c-scl-falling-time-ns = <12>;
	clock-frequency = <400000>;
	/delete-property/ dmas;
	/delete-property/ dma-names;

	// adv7280am
	adv7280am: adv7280am@21 { 
	 compatible = "adi,adv7280-m";
	 reg = <0x21>;
		status = "okay";
		reset-gpios = <&gpioi 4 GPIO_ACTIVE_LOW>;
		powerdown-gpios = <&gpioi 3 GPIO_ACTIVE_LOW>;
		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
		interrupt-parent = <&gpioz>;
		interrupt-names = "adv7280m_intrq";

		port {
			adv7280am_ep: endpoint {
				remote-endpoint = <&csi_sink>;
				data-lanes = <1>;
				clock-lanes = <0>;
				link-frequencies = /bits/ 64 <270000000>;
			};
		};
 };
	/* USER CODE END i2c4 */
};

 

i2c:

 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- UU -- UU -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

media-ctl:

Media controller API version 6.6.48

Media device information
------------------------
driver dcmipp
model DCMIPP MDEV
serial
bus info platform:48030000.dcmipp
hw revision 0x30
driver version 6.6.48

Device topology
- entity 1: dcmipp_input (4 pads, 5 links, 0 routes)
 type V4L2 subdev subtype Unknown flags 0
 device node name /dev/v4l-subdev0
 pad0: Sink
 [stream:0 fmt:RGB565_2X8_LE/640x480 field:none colorspace:rec709]
 <- "dcmipp_tpg":0 []
 <- "48020000.csi":1 [ENABLED]
 pad1: Source
 [stream:0 fmt:RGB565_2X8_LE/640x480 field:none colorspace:rec709]
 -> "dcmipp_dump_postproc":0 []
 pad2: Source
 [stream:0 fmt:RGB565_2X8_LE/640x480 field:none colorspace:rec709]
 -> "dcmipp_main_isp":0 []
 pad3: Source
 [stream:0 fmt:RGB565_2X8_LE/640x480 field:none colorspace:rec709]
 -> "dcmipp_aux_postproc":0 []

- entity 6: dcmipp_dump_postproc (2 pads, 2 links, 0 routes)
 type V4L2 subdev subtype Unknown flags 0
 device node name /dev/v4l-subdev1
 pad0: Sink
 [stream:0 fmt:RGB565_2X8_LE/640x480 field:none colorspace:rec709
 compose.bounds:(0,0)/640x480
 compose:(0,0)/640x480]
 <- "dcmipp_input":1 []
 pad1: Source
 [stream:0 fmt:RGB565_2X8_LE/640x480 field:none colorspace:rec709
 crop.bounds:(0,0)/640x480
 crop:(0,0)/640x480]
 -> "dcmipp_dump_capture":0 [ENABLED,IMMUTABLE]

- entity 9: dcmipp_dump_capture (1 pad, 1 link)
 type Node subtype V4L flags 0
 device node name /dev/video0
 pad0: Sink
 <- "dcmipp_dump_postproc":1 [ENABLED,IMMUTABLE]

- entity 13: dcmipp_main_isp (4 pads, 5 links, 0 routes)
 type V4L2 subdev subtype Unknown flags 0
 device node name /dev/v4l-subdev2
 pad0: Sink
 [stream:0 fmt:RGB565_2X8_LE/640x480 field:none colorspace:rec709
 crop.bounds:(0,0)/640x480
 crop:(0,0)/0x0
 compose.bounds:(0,0)/0x0
 compose:(0,0)/0x0]
 <- "dcmipp_input":2 []
 pad1: Source
 [stream:0 fmt:RGB888_1X24/640x480 field:none colorspace:rec709]
 -> "dcmipp_main_postproc":0 [ENABLED,IMMUTABLE]
 -> "dcmipp_aux_postproc":0 []
 pad2: Sink
 [stream:0 fmt:unknown/0x0]
 <- "dcmipp_main_isp_params_output":0 [ENABLED,IMMUTABLE]
 pad3: Source
 [stream:0 fmt:unknown/0x0]
 -> "dcmipp_main_isp_stat_capture":0 [ENABLED,IMMUTABLE]

- entity 18: dcmipp_main_postproc (2 pads, 2 links, 0 routes)
 type V4L2 subdev subtype Unknown flags 0
 device node name /dev/v4l-subdev3
 pad0: Sink
 [stream:0 fmt:RGB888_1X24/640x480@1/30 field:none colorspace:rec709
 crop.bounds:(0,0)/640x480
 crop:(0,0)/640x480
 compose.bounds:(0,0)/640x480
 compose:(0,0)/640x480]
 <- "dcmipp_main_isp":1 [ENABLED,IMMUTABLE]
 pad1: Source
 [stream:0 fmt:RGB888_1X24/640x480@1/30 field:none colorspace:rec709]
 -> "dcmipp_main_capture":0 [ENABLED,IMMUTABLE]

- entity 21: dcmipp_main_capture (1 pad, 1 link)
 type Node subtype V4L flags 0
 device node name /dev/video1
 pad0: Sink
 <- "dcmipp_main_postproc":1 [ENABLED,IMMUTABLE]

- entity 25: dcmipp_aux_postproc (2 pads, 3 links, 0 routes)
 type V4L2 subdev subtype Unknown flags 0
 device node name /dev/v4l-subdev4
 pad0: Sink
 [stream:0 fmt:RGB888_1X24/640x480@1/30 field:none colorspace:rec709
 crop.bounds:(0,0)/640x480
 crop:(0,0)/640x480
 compose.bounds:(0,0)/640x480
 compose:(0,0)/640x480]
 <- "dcmipp_input":3 []
 <- "dcmipp_main_isp":1 []
 pad1: Source
 [stream:0 fmt:RGB888_1X24/640x480@1/30 field:none colorspace:rec709]
 -> "dcmipp_aux_capture":0 [ENABLED,IMMUTABLE]

- entity 28: dcmipp_aux_capture (1 pad, 1 link)
 type Node subtype V4L flags 0
 device node name /dev/video2
 pad0: Sink
 <- "dcmipp_aux_postproc":1 [ENABLED,IMMUTABLE]

- entity 32: dcmipp_main_isp_stat_capture (1 pad, 1 link)
 type Node subtype V4L flags 0
 device node name /dev/video3
 pad0: Sink
 <- "dcmipp_main_isp":3 [ENABLED,IMMUTABLE]

- entity 36: dcmipp_main_isp_params_output (1 pad, 1 link)
 type Node subtype V4L flags 0
 device node name /dev/video4
 pad0: Source
 -> "dcmipp_main_isp":2 [ENABLED,IMMUTABLE]

- entity 40: dcmipp_tpg (1 pad, 1 link, 0 routes)
 type V4L2 subdev subtype Sensor flags 0
 device node name /dev/v4l-subdev5
 pad0: Source
 [stream:0 fmt:RGB565_1X16/640x480 field:none colorspace:rec709]
 -> "dcmipp_input":0 []

- entity 64: 48020000.csi (2 pads, 2 links, 0 routes)
 type V4L2 subdev subtype Unknown flags 0
 device node name /dev/v4l-subdev6
 pad0: Sink
 [stream:0 fmt:RGB565_1X16/640x480 field:none colorspace:rec709]
 <- "adv7180 2-0021":0 [ENABLED,IMMUTABLE]
 pad1: Source
 [stream:0 fmt:RGB565_1X16/640x480 field:none colorspace:rec709]
 -> "dcmipp_input":0 [ENABLED]

- entity 69: adv7180 2-0021 (1 pad, 1 link, 0 routes)
 type V4L2 subdev subtype Decoder flags 0
 device node name /dev/v4l-subdev7
 pad0: Source
 [stream:0 fmt:UYVY8_1X16/720x480@1001/30000 field:none colorspace:smpte170m]
 -> "48020000.csi":0 [ENABLED,IMMUTABLE]

[1] STM32MP2 V4L2 camera overview - stm32mpu

1 reply

ST Employee
November 3, 2025

Hi @Steven-LIN ,

 

Do you still have an issue?

 

Regards,

Grégory 

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
Associate III
November 4, 2025

Thanks! After updating the adv7280 driver and CSI device tree, the display is now showing properly.