DESK-MX8M-L/Peripherals/MIPI

From DAVE Developer's Wiki
Jump to: navigation, search
History
Version Issue Date Notes
1.0.0 Jan 2022 First DESK-MX8M release


Peripheral MIPI[edit | edit source]

Device tree configuration[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts:

&mipi_csi_0 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	port@0 {
		reg = <0>;
		mipi_csi0_ep: endpoint {
			remote-endpoint = <&ov5640_mipi_0_ep>;
			data-lanes = <2>;
			csis-hs-settle = <13>;
			csis-clk-settle = <2>;
			csis-wclk;
		};
	};
};

&mipi_csi_1 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	port@1 {
		reg = <1>;
		mipi_csi1_ep: endpoint {
			remote-endpoint = <&ov5640_mipi_1_ep>;
			data-lanes = <2>;
			csis-hs-settle = <13>;
			csis-clk-settle = <2>;
			csis-wclk;
		};
	};
};

From imx8mp-mito8mplus.dtsi:


&iomuxc {
...
...
	pinctrl_mipi_dsi_en: mipi_dsi_en {
		fsl,pins = <
			MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08	0x16
		>;
	};
...
...
};

Accessing the peripheral[edit | edit source]

Linux messages at boot time[edit | edit source]

MIPI CSI-2 driver initialized:

...
...
[    1.486047] mxc-mipi-csi2-sam 32e40000.csi: 32e40000.csi supply mipi-phy not found, using dummy regulator
[    1.496009] mxc-mipi-csi2-sam 32e40000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 500000000
[    1.506087] mxc-mipi-csi2-sam 32e50000.csi: 32e50000.csi supply mipi-phy not found, using dummy regulator
[    1.515958] mxc-mipi-csi2-sam 32e50000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 266000000
...
...

and if a MIPI camera is inserted, it has been recognized and its video driver loaded:

root@desk-mx8mp:~# dmesg | grep -i ov5640
[    2.038286] ov5640 1-003c: 1-003c supply DOVDD not found, using dummy regulator
[    2.045672] ov5640 1-003c: 1-003c supply AVDD not found, using dummy regulator
[    2.052936] ov5640 1-003c: 1-003c supply DVDD not found, using dummy regulator
[    2.067852] ov5640 2-003c: 2-003c supply DOVDD not found, using dummy regulator
[    2.075222] ov5640 2-003c: 2-003c supply AVDD not found, using dummy regulator
[    2.082488] ov5640 2-003c: 2-003c supply DVDD not found, using dummy regulator
[    2.090371] ov5640 2-003c: ov5640_read_reg: error: reg=300a
[    2.095959] ov5640 2-003c: ov5640_check_chip_id: failed to read chip identifier
[    5.719681] mx8-img-md: Registered sensor subdevice: ov5640 1-003c (1)
[    5.752677] mx8-img-md: created link [ov5640 1-003c] => [mxc-mipi-csi2.0]
root@desk-mx8mp:~# ls -la /dev/video1
crw-rw---- 1 root video 81, 1 Jan 13 17:25 /dev/video1
root@desk-mx8mp:~#

Usage with gstreamer[edit | edit source]

Video capture and display using Pcam 5C OV5640 MIPI camera:

root@desk-mx8mp:~# gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw,width=1280,height=720" ! queue ! videorate ! vpuenc_h264 ! avimux ! filesink location=camera_test.avi
Setting pipeline to PAUSED ...
====== VPUENC: 4.5.7 build on Dec  2 2021 19:53:04. ======
        wrapper: 3.0.0 (VPUWRAPPER_ARM64_LINUX Build on Dec  2 2021 19:43:12)
        vpulib: 1.1.1
        firmware: 1.1.1.43690
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
[   56.090918] bypass csc
[   56.093288] input fmt YUV4
[   56.096074] output fmt YUYV
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:06.547119013
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@desk-mx8mp:~#

Additional information[edit | edit source]

More information about gstreamer on its web site.

More information about i.MX gstreamer plugin on the gstreamer-imx web site