camera on imx93 board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

camera on imx93 board

664 Views
zhangjunsheng
Contributor III

Hi,

     I am try to turn on topaz2m camera on imx93 platform board. when I  try to drive camera to output data, v412-ctl is stuck. I enabled the debug printing in CSI driver, get below result. 

# v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=GREY; setsid -f v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=1

topaz2m 1-0010: mbus_fmt: 2001
mxc-mipi-csi2.0: format: 0x2001
bypass csc
input fmt GREY
output fmt GREY
dwc-mipi-csi2-host 4ae00000.csi: enter enable=1
dwc-mipi-csi2-host 4ae00000.csi: data_type:0x1e, virtual chan: 0
dwc-mipi-csi2-host 4ae00000.csi: hsa_time=0, hbp_time=0, hsd_time=0, hline_time=1280
dwc-mipi-csi2-host 4ae00000.csi: ipi mode: camera, color_mode: color mode 48
dwc-mipi-csi2-host 4ae00000.csi: format: 0x2001, w/h=(1920, 1080)
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 Version: 0x3135302a
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 lanes: 0x1
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 HOST RESETN: 0x1
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 INT STATUS MAIN: 0x40000
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DATA IDS1: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DATA IDS2: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DPHY CFG: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DPHY MODE: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 INT STATUS AP MAIN: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DATA IDS VC1: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DATA IDS VC2: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DPHY SHUTDOWN: 0x1
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DPHY RESET: 0x1
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DPHY RX STATUS: 0x30000
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DPHY STOP STATUS: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DPHY TEST CTRL0: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 DPHY TEST CTRL1: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 PPI PG PATTERN HIGH: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 PPI PG PATTERN WIDTH: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 PPI PG CONFIG: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 PPI PG ENABLE: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 PPI PG STATUS: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 IPI MODE: 0x1010000
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 IPI VCID: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 IPI DATA TYPE: 0x1e
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 IPI SOFT RESET: 0x1
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 IPI ADV FEATURE: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 INT_MSK_PHY_FATAL: 0x3
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 INT_MSK_PKT_FATAL: 0x3
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 INT_MSK_PHY: 0x3
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 INT_MSK_IPI_FATAL: 0x7f
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 INT_MSK_BNDRY_FRAME_FATAL: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 INT_MSK_SEQ_FRAME_FATAL: 0x0
dwc-mipi-csi2-host 4ae00000.csi: DWC CSI2 INT_MSK_DATA_ID: 0x0
dwc-mipi-csi2-host 4ae00000.csi: gasket: CAMERA MUX: 0x10150
dwc-mipi-csi2-host 4ae00000.csi: gasket: CSI REG: 0x22c1c
dwc-mipi-csi2-host 4ae00000.csi: gasket: MIPI -> ISI pixel ctrl: 0xe07
dwc-mipi-csi2-host 4ae00000.csi: gasket: MIPI -> ISI pixel cnt: 0x0
dwc-mipi-csi2-host 4ae00000.csi: gasket: MIPI -> ISI line cnt: 0x0

~# /unit_tests/memtool 4ae00140 1
E
Reading 0x1 count starting at address 0x4AE00140

0x4AE00140:  00000020

# cat /sys/kernel/debug/clk/cam_pix_root/clk_rate
300000000

from the above result, can see:

1. INT_ST_IPI_FATAL is set, which show fatal IPI interrupt is triggered. 

2. IPI interrupt status register shows FIFO is full (data overflow causes data lose)

Is the result indicates the pixel clock is not fast enough? but I set it already very high (300000000)

/***************************************************************************************
 * camera - CSI@4ae00000 - topaz2m: 0x10@I2C2@44350000
 * 1. power pin:		OSM U6 P0_7
 * 2. reset pin:		OSM U6 P0_6
 * 3. bus-type:			4 (MEDIA_BUS_TYPE_CSI2_DPHY)
 * 4. cfg-clk-range:	28 (24M) https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/ov5640-support-on-i-mx93-with-6-12-20-bsp/ta-p/2129317
 * 5. hs-clk-range:		0x2b (1500M, imx93 RM page 4542)
 * 6. data-lanes:		2
 **************************************************************************************/
set_node_property(&mipi_csi_ep, remote-endpoint, <&edp_from_mipi_csi_topaz2m>);
set_node_property(&mipi_csi_ep, hs-clk-range, <0x2c>);
set_node_property(&mipi_csi, assigned-clock-rates, comma(<300000000>, <24000000>));
&lpi2c2 {
	topaz2m_csi0: topaz2m@10 {
		compatible	= "teledyne,topaz2m";
		reg			= <0x10>;
		lid-gpio	= <&gpioex_osm_u6 7 GPIO_ACTIVE_HIGH>;
		pwdn-gpio	= <&gpioex_osm_u6 6 GPIO_ACTIVE_HIGH>;
		csi_id		= <0>;
		mclk		= <24000000>;
		port {
			edp_from_mipi_csi_topaz2m: endpoint {
				remote-endpoint = <&mipi_csi_ep>;
			};
		};
	};
};



Do you help to share some suggestion so I can go next?

 

Best regards.

Johnson

 

 

Labels (2)
Tags (1)
0 Kudos
Reply
4 Replies

654 Views
joanxie
NXP TechSupport
NXP TechSupport

do you mind sharing the dts file with me? let me double check it, and what bsp version do you use?

0 Kudos
Reply

640 Views
zhangjunsheng
Contributor III

Hi @joanxie ,

      kernel version is 6.6.52.

     In my previous post, I share related dts already. anyway, I share here again.

#include "imx93-11x11-evk.dts"

#define set_node_property(n, p, v) 					n { p = v ; }

/***************************************************************************************
 * camera - CSI@4ae00000 - topaz2m: 0x10@I2C2@44350000
 * 1. power pin:		OSM U6 P0_7
 * 2. reset pin:		OSM U6 P0_6
 * 3. bus-type:			4 (MEDIA_BUS_TYPE_CSI2_DPHY)
 * 4. cfg-clk-range:	28 (24M) https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/ov5640-support-on-i-mx93-with-6-12-20-bsp/ta-p/2129317
 * 5. hs-clk-range:		0x2b (1500M, imx93 RM page 4542)
 * 6. data-lanes:		2
 **************************************************************************************/
set_node_property(&mipi_csi_ep, remote-endpoint, <&edp_from_mipi_csi_topaz2m>);
set_node_property(&mipi_csi_ep, hs-clk-range, <0x2c>);
set_node_property(&mipi_csi, assigned-clock-rates, comma(<300000000>, <24000000>));
&lpi2c2 {
	topaz2m_csi0: topaz2m@10 {
		compatible	= "teledyne,topaz2m";
		reg			= <0x10>;
		lid-gpio	= <&gpioex_osm_u6 7 GPIO_ACTIVE_HIGH>;
		pwdn-gpio	= <&gpioex_osm_u6 6 GPIO_ACTIVE_HIGH>;
		csi_id		= <0>;
		mclk		= <24000000>;
		port {
			edp_from_mipi_csi_topaz2m: endpoint {
				remote-endpoint = <&mipi_csi_ep>;
			};
		};
	};
};

 

Also there is some patch to CSI/ISI driver. CSI patch is I added for imx93, ISI patch is also used on imx8mp and validate working.

diff --git a/drivers/staging/media/imx/dwc-mipi-csi2.c b/drivers/staging/media/imx/dwc-mipi-csi2.c
index 8a24b0231596..4a29d422d1f1 100644
--- a/drivers/staging/media/imx/dwc-mipi-csi2.c
+++ b/drivers/staging/media/imx/dwc-mipi-csi2.c
@@ -33,12 +33,12 @@
 #include <media/v4l2-device.h>
 #include <media/v4l2-fwnode.h>
 #include <media/v4l2-subdev.h>
-
+#undef dev_dbg
 /*
  * DWC MIPI CSI2 Host registers
  */
 #define DWC_MIPI_CSI2_VERSION			0x0
-
+#define dev_dbg dev_info
 #define DWC_MIPI_CSI2_N_LANES			0x4
 #define DWC_MIPI_CSI2_N_LANES_N_LANES(x)	((x) & 0x7)
 
@@ -401,6 +401,12 @@ static const struct csi2h_pix_format dwc_csi2h_formats[] = {
 	}, {
 		.code = MEDIA_BUS_FMT_SBGGR12_1X12,
 		.fmt_reg = 0x2C,
+	}, {
+		.code = MEDIA_BUS_FMT_Y8_1X8,
+		.fmt_reg = 0x2A,
+	}, {
+		.code = MEDIA_BUS_FMT_Y10_1X10,
+		.fmt_reg = 0x2B,
 	}, {
 		/* sentinel */
 	}
@@ -702,12 +708,14 @@ static void disp_mix_gasket_config(struct dwc_mipi_csi2_host *csi2h)
 		fmt_val = DT_YUV422_8;
 		break;
 	case MEDIA_BUS_FMT_SBGGR8_1X8:
+	case MEDIA_BUS_FMT_Y8_1X8:
 		fmt_val = DT_RAW8;
 		break;
 	case MEDIA_BUS_FMT_SBGGR10_1X10:
 	case MEDIA_BUS_FMT_SGBRG10_1X10:
 	case MEDIA_BUS_FMT_SGRBG10_1X10:
 	case MEDIA_BUS_FMT_SRGGB10_1X10:
+	case MEDIA_BUS_FMT_Y10_1X10:
 		fmt_val = DT_RAW10;
 		break;
 	case MEDIA_BUS_FMT_SBGGR12_1X12:
diff --git a/drivers/staging/media/imx/imx8-isi-cap.c b/drivers/staging/media/imx/imx8-isi-cap.c
index c3d6bbeed6a2..ddcac91c84e2 100644
--- a/drivers/staging/media/imx/imx8-isi-cap.c
+++ b/drivers/staging/media/imx/imx8-isi-cap.c
@@ -54,7 +54,19 @@ struct mxc_isi_fmt mxc_isi_src_formats[] = {
 		.memplanes	= 1,
 		.colplanes	= 1,
 		.align		= 2,
-	}
+	}, {
+		.name		= "Grey8 (Y8)",
+		.fourcc		= V4L2_PIX_FMT_GREY,
+		.depth		= { 8 },
+		.memplanes	= 1,
+		.colplanes	= 1,
+	}, {
+		.name		= "Grey10 (Y10)",
+		.fourcc		= V4L2_PIX_FMT_Y10,
+		.depth		= { 16 },
+		.memplanes	= 1,
+		.colplanes	= 1,
+ 	},
 };
 
 struct mxc_isi_fmt *mxc_isi_get_format(unsigned int index)
@@ -100,6 +112,10 @@ struct mxc_isi_fmt *mxc_isi_get_src_fmt(struct v4l2_subdev_format *sd_fmt)
 	    sd_fmt->format.code == MEDIA_BUS_FMT_UYVY8_1X16||
 	    sd_fmt->format.code == MEDIA_BUS_FMT_YUYV8_2X8)
 		index = 1;
+	else if (sd_fmt->format.code == MEDIA_BUS_FMT_Y8_1X8)
+		index = 2;
+	else if (sd_fmt->format.code == MEDIA_BUS_FMT_Y10_1X10)
+		index = 3;
 	else
 		index = 0;
 	return &mxc_isi_src_formats[index];
@@ -752,7 +768,7 @@ static int mxc_isi_capture_release(struct file *file)
 	struct vb2_queue *q = vdev->queue;
 	int ret = -1;
 
-	if (!isi_cap->is_link_setup)
+	if (!isi_cap->is_link_setup || atomic_read(&mxc_isi->usage_count) == 0)
 		return 0;
 
 	if (isi_cap->is_streaming[isi_cap->id])
@@ -961,6 +977,10 @@ static int mxc_isi_source_fmt_init(struct mxc_isi_cap_dev *isi_cap)
 	src_fmt.pad = source_pad->index;
 	src_fmt.which = V4L2_SUBDEV_FORMAT_ACTIVE;
 	src_fmt.format.code = MEDIA_BUS_FMT_UYVY8_1X16;
+	bool is_rgb(u32 pix_fmt);
+	bool is_yuv(u32 pix_fmt);
+	if (!is_rgb(dst_f->fmt->fourcc) && !is_yuv(dst_f->fmt->fourcc))
+		src_fmt.format.code = dst_f->fmt->mbus_code;
 	src_fmt.format.width = dst_f->width;
 	src_fmt.format.height = dst_f->height;
 	ret = v4l2_subdev_call(src_sd, pad, set_fmt, NULL, &src_fmt);
@@ -1693,6 +1713,7 @@ static int mxc_isi_register_cap_device(struct mxc_isi_cap_dev *isi_cap,
 		goto err_ctrl_free;
 
 	vdev->ctrl_handler = &isi_cap->ctrls.handler;
+	v4l2_dev->ctrl_handler = &isi_cap->ctrls.handler;
 	v4l2_info(v4l2_dev, "Registered %s as /dev/%s\n",
 		  vdev->name, video_device_node_name(vdev));
 
@@ -1924,3 +1945,9 @@ MODULE_DESCRIPTION("IMX8 Image Sensor Interface Capture driver");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS("ISI Capture");
 MODULE_VERSION("1.0");
+
+// patch
+// line 57-69:		mxc_isi_src_formats[], add 2 formats for topaz2m camera
+// line 115-118:	mxc_isi_get_src_fmt(), add supporting 2 formats for topaz2m camera
+// line 980-983:	mxc_isi_source_fmt_init(), supporting get format from mbus_code
+// line 1716:		mxc_isi_register_cap_device(), pass ctrl handler to v4l2_dev
diff --git a/drivers/staging/media/imx/imx8-isi-fmt.c b/drivers/staging/media/imx/imx8-isi-fmt.c
index db11c809a3d3..16a6317b87e2 100644
--- a/drivers/staging/media/imx/imx8-isi-fmt.c
+++ b/drivers/staging/media/imx/imx8-isi-fmt.c
@@ -97,7 +97,26 @@ struct mxc_isi_fmt mxc_isi_out_formats[] = {
 		.colplanes	= 1,
 		.align		= 2,
 		.mbus_code	= MEDIA_BUS_FMT_RGB888_1X24,
-	}
+	}, {
+		.name		= "Grey8 (Y8)",
+		.fourcc		= V4L2_PIX_FMT_GREY,
+		.depth		= { 8 },
+		.color		= MXC_ISI_OUT_FMT_RAW8,
+		.memplanes	= 1,
+		.colplanes	= 1,
+		.mbus_code	= MEDIA_BUS_FMT_Y8_1X8,
+	}, {
+		.name		= "Grey10 (Y10)",
+		.fourcc		= V4L2_PIX_FMT_Y10,
+		.depth		= { 16 },
+		.color		= MXC_ISI_OUT_FMT_RAW10,
+		.memplanes	= 1,
+		.colplanes	= 1,
+		.mbus_code	= MEDIA_BUS_FMT_Y10_1X10,
+ 	},
 };
 
 size_t mxc_isi_out_formats_size = ARRAY_SIZE(mxc_isi_out_formats);
+
+// patch
+// line 100-116:		mxc_isi_out_formats[], add 2 formats for topaz2m camera
diff --git a/drivers/staging/media/imx/imx8-isi-hw.c b/drivers/staging/media/imx/imx8-isi-hw.c
index f3b2b98798be..cee34d389309 100644
--- a/drivers/staging/media/imx/imx8-isi-hw.c
+++ b/drivers/staging/media/imx/imx8-isi-hw.c
@@ -103,7 +103,7 @@ static void printk_pixelformat(char *prefix, int val)
 		(val >> 24) & 0xff);
 }
 
-static bool is_rgb(u32 pix_fmt)
+bool is_rgb(u32 pix_fmt)
 {
 	if ((pix_fmt == V4L2_PIX_FMT_RGB565) ||
 	    (pix_fmt == V4L2_PIX_FMT_RGB24)  ||
@@ -120,7 +120,7 @@ static bool is_rgb(u32 pix_fmt)
 		return false;
 }
 
-static bool is_yuv(u32 pix_fmt)
+bool is_yuv(u32 pix_fmt)
 {
 	if ((pix_fmt == V4L2_PIX_FMT_YUYV)  ||
 	    (pix_fmt == V4L2_PIX_FMT_YUV32) ||
@@ -812,3 +812,7 @@ void mxc_isi_m2m_start_read(struct mxc_isi_dev *mxc_isi)
 	writel(val, mxc_isi->regs + CHNL_MEM_RD_CTRL);
 }
 EXPORT_SYMBOL_GPL(mxc_isi_m2m_start_read);
+
+// patch
+// line 106:	is_rgb() discard static declaration so can used outside.
+// line 123:	is_yuv() discard static declaration so can used outside.

 

Best regards.

Johnson

0 Kudos
Reply

438 Views
joanxie
NXP TechSupport
NXP TechSupport

sorry for my delay, there is some issue with community, I missed the message, do you fix this issue? 

0 Kudos
Reply

416 Views
zhangjunsheng
Contributor III

Hi @joanxie ,

 

     Not yet.

 

     Limited for the condition, I have only the data sheet of the camera, no reference manual of the camera and no high speed oscilloscope to measure the actual frequency of the lanes. from the datasheet, the lane speed is 1.2G. so for 2 lanes and RAW8 case, the pixel speed might be 1.2G x 2 / 8 = 300M, is it right?

 

    If it's the case, how do I need to configure CSI/ISP clock to avoid the FIFO overflow?

 

Best regards.

Johnson 

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2336428%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Ecamera%20on%20imx93%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2336428%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3BI%20am%20try%20to%20turn%20on%20topaz2m%26nbsp%3Bcamera%20on%20imx93%20platform%20board.%20when%20I%26nbsp%3B%20try%20to%20drive%20camera%20to%20output%20data%2C%20v412-ctl%20is%20stuck.%20I%20enabled%20the%20debug%20printing%20in%20CSI%20driver%2C%20get%20below%20result.%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%23%20v4l2-ctl%20-d%20%2Fdev%2Fvideo0%20--set-fmt-video%3Dwidth%3D1920%2Cheight%3D1080%2Cpixelformat%3DGREY%3B%20setsid%20-f%20v4l2-ctl%20-d%20%2Fdev%2Fvideo0%20--stream-mmap%20--stream-count%3D1%0A%0Atopaz2m%201-0010%3A%20mbus_fmt%3A%202001%0Amxc-mipi-csi2.0%3A%20format%3A%200x2001%0Abypass%20csc%0Ainput%20fmt%20GREY%0Aoutput%20fmt%20GREY%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20enter%20enable%3D1%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20data_type%3A0x1e%2C%20virtual%20chan%3A%200%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20hsa_time%3D0%2C%20hbp_time%3D0%2C%20hsd_time%3D0%2C%20hline_time%3D1280%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20ipi%20mode%3A%20camera%2C%20color_mode%3A%20color%20mode%2048%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20format%3A%200x2001%2C%20w%2Fh%3D(1920%2C%201080)%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20Version%3A%200x3135302a%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20lanes%3A%200x1%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20HOST%20RESETN%3A%200x1%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20INT%20STATUS%20MAIN%3A%200x40000%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DATA%20IDS1%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DATA%20IDS2%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DPHY%20CFG%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DPHY%20MODE%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20INT%20STATUS%20AP%20MAIN%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DATA%20IDS%20VC1%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DATA%20IDS%20VC2%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DPHY%20SHUTDOWN%3A%200x1%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DPHY%20RESET%3A%200x1%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DPHY%20RX%20STATUS%3A%200x30000%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DPHY%20STOP%20STATUS%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DPHY%20TEST%20CTRL0%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20DPHY%20TEST%20CTRL1%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20PPI%20PG%20PATTERN%20HIGH%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20PPI%20PG%20PATTERN%20WIDTH%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20PPI%20PG%20CONFIG%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20PPI%20PG%20ENABLE%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20PPI%20PG%20STATUS%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20IPI%20MODE%3A%200x1010000%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20IPI%20VCID%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20IPI%20DATA%20TYPE%3A%200x1e%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20IPI%20SOFT%20RESET%3A%200x1%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20IPI%20ADV%20FEATURE%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20INT_MSK_PHY_FATAL%3A%200x3%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20INT_MSK_PKT_FATAL%3A%200x3%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20INT_MSK_PHY%3A%200x3%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20INT_MSK_IPI_FATAL%3A%200x7f%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20INT_MSK_BNDRY_FRAME_FATAL%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20INT_MSK_SEQ_FRAME_FATAL%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20DWC%20CSI2%20INT_MSK_DATA_ID%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20gasket%3A%20CAMERA%20MUX%3A%200x10150%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20gasket%3A%20CSI%20REG%3A%200x22c1c%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20gasket%3A%20MIPI%20-%26gt%3B%20ISI%20pixel%20ctrl%3A%200xe07%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20gasket%3A%20MIPI%20-%26gt%3B%20ISI%20pixel%20cnt%3A%200x0%0Adwc-mipi-csi2-host%204ae00000.csi%3A%20gasket%3A%20MIPI%20-%26gt%3B%20ISI%20line%20cnt%3A%200x0%0A%0A~%23%20%2Funit_tests%2Fmemtool%204ae00140%201%0AE%0AReading%200x1%20count%20starting%20at%20address%200x4AE00140%0A%0A0x4AE00140%3A%20%2000000020%0A%0A%23%20cat%20%2Fsys%2Fkernel%2Fdebug%2Fclk%2Fcam_pix_root%2Fclk_rate%0A300000000%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3Efrom%20the%20above%20result%2C%20can%20see%3A%3C%2FP%3E%3CP%3E1.%20INT_ST_IPI_FATAL%20is%20set%2C%20which%20show%20fatal%20IPI%20interrupt%20is%20triggered.%26nbsp%3B%3C%2FP%3E%3CP%3E2.%20IPI%20interrupt%20status%20register%20shows%20FIFO%20is%20full%20(data%20overflow%20causes%20data%20lose)%3CBR%20%2F%3E%3CBR%20%2F%3EIs%20the%20result%20indicates%20the%20pixel%20clock%20is%20not%20fast%20enough%3F%20but%20I%20set%20it%20already%20very%20high%20(300000000)%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%2F***************************************************************************************%0A%20*%20camera%20-%20CSI%404ae00000%20-%20topaz2m%3A%200x10%40I2C2%4044350000%0A%20*%201.%20power%20pin%3A%09%09OSM%20U6%20P0_7%0A%20*%202.%20reset%20pin%3A%09%09OSM%20U6%20P0_6%0A%20*%203.%20bus-type%3A%09%09%094%20(MEDIA_BUS_TYPE_CSI2_DPHY)%0A%20*%204.%20cfg-clk-range%3A%0928%20(24M)%20https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors-Knowledge-Base%2Fov5640-support-on-i-mx93-with-6-12-20-bsp%2Fta-p%2F2129317%0A%20*%205.%20hs-clk-range%3A%09%090x2b%20(1500M%2C%20imx93%20RM%20page%204542)%0A%20*%206.%20data-lanes%3A%09%092%0A%20**************************************************************************************%2F%0Aset_node_property(%26amp%3Bmipi_csi_ep%2C%20remote-endpoint%2C%20%26lt%3B%26amp%3Bedp_from_mipi_csi_topaz2m%26gt%3B)%3B%0Aset_node_property(%26amp%3Bmipi_csi_ep%2C%20hs-clk-range%2C%20%26lt%3B0x2c%26gt%3B)%3B%0Aset_node_property(%26amp%3Bmipi_csi%2C%20assigned-clock-rates%2C%20comma(%26lt%3B300000000%26gt%3B%2C%20%26lt%3B24000000%26gt%3B))%3B%0A%26amp%3Blpi2c2%20%7B%0A%09topaz2m_csi0%3A%20topaz2m%4010%20%7B%0A%09%09compatible%09%3D%20%22teledyne%2Ctopaz2m%22%3B%0A%09%09reg%09%09%09%3D%20%26lt%3B0x10%26gt%3B%3B%0A%09%09lid-gpio%09%3D%20%26lt%3B%26amp%3Bgpioex_osm_u6%207%20GPIO_ACTIVE_HIGH%26gt%3B%3B%0A%09%09pwdn-gpio%09%3D%20%26lt%3B%26amp%3Bgpioex_osm_u6%206%20GPIO_ACTIVE_HIGH%26gt%3B%3B%0A%09%09csi_id%09%09%3D%20%26lt%3B0%26gt%3B%3B%0A%09%09mclk%09%09%3D%20%26lt%3B24000000%26gt%3B%3B%0A%09%09port%20%7B%0A%09%09%09edp_from_mipi_csi_topaz2m%3A%20endpoint%20%7B%0A%09%09%09%09remote-endpoint%20%3D%20%26lt%3B%26amp%3Bmipi_csi_ep%26gt%3B%3B%0A%09%09%09%7D%3B%0A%09%09%7D%3B%0A%09%7D%3B%0A%7D%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3EDo%20you%20help%20to%20share%20some%20suggestion%20so%20I%20can%20go%20next%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EBest%20regards.%3C%2FP%3E%3CP%3EJohnson%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2336428%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3ELinux%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EMultimedia%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2336485%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20camera%20on%20imx93%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2336485%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F39586%22%20target%3D%22_blank%22%3E%40joanxie%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20kernel%20version%20is%206.6.52.%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3BIn%20my%20previous%20post%2C%20I%20share%20related%20dts%20already.%20anyway%2C%20I%20share%20here%20again.%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%23include%20%22imx93-11x11-evk.dts%22%0A%0A%23define%20set_node_property(n%2C%20p%2C%20v)%20%09%09%09%09%09n%20%7B%20p%20%3D%20v%20%3B%20%7D%0A%0A%2F***************************************************************************************%0A%20*%20camera%20-%20CSI%404ae00000%20-%20topaz2m%3A%200x10%40I2C2%4044350000%0A%20*%201.%20power%20pin%3A%09%09OSM%20U6%20P0_7%0A%20*%202.%20reset%20pin%3A%09%09OSM%20U6%20P0_6%0A%20*%203.%20bus-type%3A%09%09%094%20(MEDIA_BUS_TYPE_CSI2_DPHY)%0A%20*%204.%20cfg-clk-range%3A%0928%20(24M)%20https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors-Knowledge-Base%2Fov5640-support-on-i-mx93-with-6-12-20-bsp%2Fta-p%2F2129317%0A%20*%205.%20hs-clk-range%3A%09%090x2b%20(1500M%2C%20imx93%20RM%20page%204542)%0A%20*%206.%20data-lanes%3A%09%092%0A%20**************************************************************************************%2F%0Aset_node_property(%26amp%3Bmipi_csi_ep%2C%20remote-endpoint%2C%20%26lt%3B%26amp%3Bedp_from_mipi_csi_topaz2m%26gt%3B)%3B%0Aset_node_property(%26amp%3Bmipi_csi_ep%2C%20hs-clk-range%2C%20%26lt%3B0x2c%26gt%3B)%3B%0Aset_node_property(%26amp%3Bmipi_csi%2C%20assigned-clock-rates%2C%20comma(%26lt%3B300000000%26gt%3B%2C%20%26lt%3B24000000%26gt%3B))%3B%0A%26amp%3Blpi2c2%20%7B%0A%09topaz2m_csi0%3A%20topaz2m%4010%20%7B%0A%09%09compatible%09%3D%20%22teledyne%2Ctopaz2m%22%3B%0A%09%09reg%09%09%09%3D%20%26lt%3B0x10%26gt%3B%3B%0A%09%09lid-gpio%09%3D%20%26lt%3B%26amp%3Bgpioex_osm_u6%207%20GPIO_ACTIVE_HIGH%26gt%3B%3B%0A%09%09pwdn-gpio%09%3D%20%26lt%3B%26amp%3Bgpioex_osm_u6%206%20GPIO_ACTIVE_HIGH%26gt%3B%3B%0A%09%09csi_id%09%09%3D%20%26lt%3B0%26gt%3B%3B%0A%09%09mclk%09%09%3D%20%26lt%3B24000000%26gt%3B%3B%0A%09%09port%20%7B%0A%09%09%09edp_from_mipi_csi_topaz2m%3A%20endpoint%20%7B%0A%09%09%09%09remote-endpoint%20%3D%20%26lt%3B%26amp%3Bmipi_csi_ep%26gt%3B%3B%0A%09%09%09%7D%3B%0A%09%09%7D%3B%0A%09%7D%3B%0A%7D%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3EAlso%20there%20is%20some%20patch%20to%20CSI%2FISI%20driver.%20CSI%20patch%20is%20I%20added%20for%20imx93%2C%20ISI%20patch%20is%20also%20used%20on%20imx8mp%20and%20validate%20working.%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3Ediff%20--git%20a%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fdwc-mipi-csi2.c%20b%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fdwc-mipi-csi2.c%0Aindex%208a24b0231596..4a29d422d1f1%20100644%0A---%20a%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fdwc-mipi-csi2.c%0A%2B%2B%2B%20b%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fdwc-mipi-csi2.c%0A%40%40%20-33%2C12%20%2B33%2C12%20%40%40%0A%20%23include%20%3CMEDIA%3E%0A%20%23include%20%3CMEDIA%3E%0A%20%23include%20%3CMEDIA%3E%0A-%0A%2B%23undef%20dev_dbg%0A%20%2F*%0A%20%20*%20DWC%20MIPI%20CSI2%20Host%20registers%0A%20%20*%2F%0A%20%23define%20DWC_MIPI_CSI2_VERSION%09%09%090x0%0A-%0A%2B%23define%20dev_dbg%20dev_info%0A%20%23define%20DWC_MIPI_CSI2_N_LANES%09%09%090x4%0A%20%23define%20DWC_MIPI_CSI2_N_LANES_N_LANES(x)%09((x)%20%26amp%3B%200x7)%0A%20%0A%40%40%20-401%2C6%20%2B401%2C12%20%40%40%20static%20const%20struct%20csi2h_pix_format%20dwc_csi2h_formats%5B%5D%20%3D%20%7B%0A%20%09%7D%2C%20%7B%0A%20%09%09.code%20%3D%20MEDIA_BUS_FMT_SBGGR12_1X12%2C%0A%20%09%09.fmt_reg%20%3D%200x2C%2C%0A%2B%09%7D%2C%20%7B%0A%2B%09%09.code%20%3D%20MEDIA_BUS_FMT_Y8_1X8%2C%0A%2B%09%09.fmt_reg%20%3D%200x2A%2C%0A%2B%09%7D%2C%20%7B%0A%2B%09%09.code%20%3D%20MEDIA_BUS_FMT_Y10_1X10%2C%0A%2B%09%09.fmt_reg%20%3D%200x2B%2C%0A%20%09%7D%2C%20%7B%0A%20%09%09%2F*%20sentinel%20*%2F%0A%20%09%7D%0A%40%40%20-702%2C12%20%2B708%2C14%20%40%40%20static%20void%20disp_mix_gasket_config(struct%20dwc_mipi_csi2_host%20*csi2h)%0A%20%09%09fmt_val%20%3D%20DT_YUV422_8%3B%0A%20%09%09break%3B%0A%20%09case%20MEDIA_BUS_FMT_SBGGR8_1X8%3A%0A%2B%09case%20MEDIA_BUS_FMT_Y8_1X8%3A%0A%20%09%09fmt_val%20%3D%20DT_RAW8%3B%0A%20%09%09break%3B%0A%20%09case%20MEDIA_BUS_FMT_SBGGR10_1X10%3A%0A%20%09case%20MEDIA_BUS_FMT_SGBRG10_1X10%3A%0A%20%09case%20MEDIA_BUS_FMT_SGRBG10_1X10%3A%0A%20%09case%20MEDIA_BUS_FMT_SRGGB10_1X10%3A%0A%2B%09case%20MEDIA_BUS_FMT_Y10_1X10%3A%0A%20%09%09fmt_val%20%3D%20DT_RAW10%3B%0A%20%09%09break%3B%0A%20%09case%20MEDIA_BUS_FMT_SBGGR12_1X12%3A%0Adiff%20--git%20a%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-cap.c%20b%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-cap.c%0Aindex%20c3d6bbeed6a2..ddcac91c84e2%20100644%0A---%20a%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-cap.c%0A%2B%2B%2B%20b%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-cap.c%0A%40%40%20-54%2C7%20%2B54%2C19%20%40%40%20struct%20mxc_isi_fmt%20mxc_isi_src_formats%5B%5D%20%3D%20%7B%0A%20%09%09.memplanes%09%3D%201%2C%0A%20%09%09.colplanes%09%3D%201%2C%0A%20%09%09.align%09%09%3D%202%2C%0A-%09%7D%0A%2B%09%7D%2C%20%7B%0A%2B%09%09.name%09%09%3D%20%22Grey8%20(Y8)%22%2C%0A%2B%09%09.fourcc%09%09%3D%20V4L2_PIX_FMT_GREY%2C%0A%2B%09%09.depth%09%09%3D%20%7B%208%20%7D%2C%0A%2B%09%09.memplanes%09%3D%201%2C%0A%2B%09%09.colplanes%09%3D%201%2C%0A%2B%09%7D%2C%20%7B%0A%2B%09%09.name%09%09%3D%20%22Grey10%20(Y10)%22%2C%0A%2B%09%09.fourcc%09%09%3D%20V4L2_PIX_FMT_Y10%2C%0A%2B%09%09.depth%09%09%3D%20%7B%2016%20%7D%2C%0A%2B%09%09.memplanes%09%3D%201%2C%0A%2B%09%09.colplanes%09%3D%201%2C%0A%2B%20%09%7D%2C%0A%20%7D%3B%0A%20%0A%20struct%20mxc_isi_fmt%20*mxc_isi_get_format(unsigned%20int%20index)%0A%40%40%20-100%2C6%20%2B112%2C10%20%40%40%20struct%20mxc_isi_fmt%20*mxc_isi_get_src_fmt(struct%20v4l2_subdev_format%20*sd_fmt)%0A%20%09%20%20%20%20sd_fmt-%26gt%3Bformat.code%20%3D%3D%20MEDIA_BUS_FMT_UYVY8_1X16%7C%7C%0A%20%09%20%20%20%20sd_fmt-%26gt%3Bformat.code%20%3D%3D%20MEDIA_BUS_FMT_YUYV8_2X8)%0A%20%09%09index%20%3D%201%3B%0A%2B%09else%20if%20(sd_fmt-%26gt%3Bformat.code%20%3D%3D%20MEDIA_BUS_FMT_Y8_1X8)%0A%2B%09%09index%20%3D%202%3B%0A%2B%09else%20if%20(sd_fmt-%26gt%3Bformat.code%20%3D%3D%20MEDIA_BUS_FMT_Y10_1X10)%0A%2B%09%09index%20%3D%203%3B%0A%20%09else%0A%20%09%09index%20%3D%200%3B%0A%20%09return%20%26amp%3Bmxc_isi_src_formats%5Bindex%5D%3B%0A%40%40%20-752%2C7%20%2B768%2C7%20%40%40%20static%20int%20mxc_isi_capture_release(struct%20file%20*file)%0A%20%09struct%20vb2_queue%20*q%20%3D%20vdev-%26gt%3Bqueue%3B%0A%20%09int%20ret%20%3D%20-1%3B%0A%20%0A-%09if%20(!isi_cap-%26gt%3Bis_link_setup)%0A%2B%09if%20(!isi_cap-%26gt%3Bis_link_setup%20%7C%7C%20atomic_read(%26amp%3Bmxc_isi-%26gt%3Busage_count)%20%3D%3D%200)%0A%20%09%09return%200%3B%0A%20%0A%20%09if%20(isi_cap-%26gt%3Bis_streaming%5Bisi_cap-%26gt%3Bid%5D)%0A%40%40%20-961%2C6%20%2B977%2C10%20%40%40%20static%20int%20mxc_isi_source_fmt_init(struct%20mxc_isi_cap_dev%20*isi_cap)%0A%20%09src_fmt.pad%20%3D%20source_pad-%26gt%3Bindex%3B%0A%20%09src_fmt.which%20%3D%20V4L2_SUBDEV_FORMAT_ACTIVE%3B%0A%20%09src_fmt.format.code%20%3D%20MEDIA_BUS_FMT_UYVY8_1X16%3B%0A%2B%09bool%20is_rgb(u32%20pix_fmt)%3B%0A%2B%09bool%20is_yuv(u32%20pix_fmt)%3B%0A%2B%09if%20(!is_rgb(dst_f-%26gt%3Bfmt-%26gt%3Bfourcc)%20%26amp%3B%26amp%3B%20!is_yuv(dst_f-%26gt%3Bfmt-%26gt%3Bfourcc))%0A%2B%09%09src_fmt.format.code%20%3D%20dst_f-%26gt%3Bfmt-%26gt%3Bmbus_code%3B%0A%20%09src_fmt.format.width%20%3D%20dst_f-%26gt%3Bwidth%3B%0A%20%09src_fmt.format.height%20%3D%20dst_f-%26gt%3Bheight%3B%0A%20%09ret%20%3D%20v4l2_subdev_call(src_sd%2C%20pad%2C%20set_fmt%2C%20NULL%2C%20%26amp%3Bsrc_fmt)%3B%0A%40%40%20-1693%2C6%20%2B1713%2C7%20%40%40%20static%20int%20mxc_isi_register_cap_device(struct%20mxc_isi_cap_dev%20*isi_cap%2C%0A%20%09%09goto%20err_ctrl_free%3B%0A%20%0A%20%09vdev-%26gt%3Bctrl_handler%20%3D%20%26amp%3Bisi_cap-%26gt%3Bctrls.handler%3B%0A%2B%09v4l2_dev-%26gt%3Bctrl_handler%20%3D%20%26amp%3Bisi_cap-%26gt%3Bctrls.handler%3B%0A%20%09v4l2_info(v4l2_dev%2C%20%22Registered%20%25s%20as%20%2Fdev%2F%25s%5Cn%22%2C%0A%20%09%09%20%20vdev-%26gt%3Bname%2C%20video_device_node_name(vdev))%3B%0A%20%0A%40%40%20-1924%2C3%20%2B1945%2C9%20%40%40%20MODULE_DESCRIPTION(%22IMX8%20Image%20Sensor%20Interface%20Capture%20driver%22)%3B%0A%20MODULE_LICENSE(%22GPL%22)%3B%0A%20MODULE_ALIAS(%22ISI%20Capture%22)%3B%0A%20MODULE_VERSION(%221.0%22)%3B%0A%2B%0A%2B%2F%2F%20patch%0A%2B%2F%2F%20line%2057-69%3A%09%09mxc_isi_src_formats%5B%5D%2C%20add%202%20formats%20for%20topaz2m%20camera%0A%2B%2F%2F%20line%20115-118%3A%09mxc_isi_get_src_fmt()%2C%20add%20supporting%202%20formats%20for%20topaz2m%20camera%0A%2B%2F%2F%20line%20980-983%3A%09mxc_isi_source_fmt_init()%2C%20supporting%20get%20format%20from%20mbus_code%0A%2B%2F%2F%20line%201716%3A%09%09mxc_isi_register_cap_device()%2C%20pass%20ctrl%20handler%20to%20v4l2_dev%0Adiff%20--git%20a%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-fmt.c%20b%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-fmt.c%0Aindex%20db11c809a3d3..16a6317b87e2%20100644%0A---%20a%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-fmt.c%0A%2B%2B%2B%20b%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-fmt.c%0A%40%40%20-97%2C7%20%2B97%2C26%20%40%40%20struct%20mxc_isi_fmt%20mxc_isi_out_formats%5B%5D%20%3D%20%7B%0A%20%09%09.colplanes%09%3D%201%2C%0A%20%09%09.align%09%09%3D%202%2C%0A%20%09%09.mbus_code%09%3D%20MEDIA_BUS_FMT_RGB888_1X24%2C%0A-%09%7D%0A%2B%09%7D%2C%20%7B%0A%2B%09%09.name%09%09%3D%20%22Grey8%20(Y8)%22%2C%0A%2B%09%09.fourcc%09%09%3D%20V4L2_PIX_FMT_GREY%2C%0A%2B%09%09.depth%09%09%3D%20%7B%208%20%7D%2C%0A%2B%09%09.color%09%09%3D%20MXC_ISI_OUT_FMT_RAW8%2C%0A%2B%09%09.memplanes%09%3D%201%2C%0A%2B%09%09.colplanes%09%3D%201%2C%0A%2B%09%09.mbus_code%09%3D%20MEDIA_BUS_FMT_Y8_1X8%2C%0A%2B%09%7D%2C%20%7B%0A%2B%09%09.name%09%09%3D%20%22Grey10%20(Y10)%22%2C%0A%2B%09%09.fourcc%09%09%3D%20V4L2_PIX_FMT_Y10%2C%0A%2B%09%09.depth%09%09%3D%20%7B%2016%20%7D%2C%0A%2B%09%09.color%09%09%3D%20MXC_ISI_OUT_FMT_RAW10%2C%0A%2B%09%09.memplanes%09%3D%201%2C%0A%2B%09%09.colplanes%09%3D%201%2C%0A%2B%09%09.mbus_code%09%3D%20MEDIA_BUS_FMT_Y10_1X10%2C%0A%2B%20%09%7D%2C%0A%20%7D%3B%0A%20%0A%20size_t%20mxc_isi_out_formats_size%20%3D%20ARRAY_SIZE(mxc_isi_out_formats)%3B%0A%2B%0A%2B%2F%2F%20patch%0A%2B%2F%2F%20line%20100-116%3A%09%09mxc_isi_out_formats%5B%5D%2C%20add%202%20formats%20for%20topaz2m%20camera%0Adiff%20--git%20a%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-hw.c%20b%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-hw.c%0Aindex%20f3b2b98798be..cee34d389309%20100644%0A---%20a%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-hw.c%0A%2B%2B%2B%20b%2Fdrivers%2Fstaging%2Fmedia%2Fimx%2Fimx8-isi-hw.c%0A%40%40%20-103%2C7%20%2B103%2C7%20%40%40%20static%20void%20printk_pixelformat(char%20*prefix%2C%20int%20val)%0A%20%09%09(val%20%26gt%3B%26gt%3B%2024)%20%26amp%3B%200xff)%3B%0A%20%7D%0A%20%0A-static%20bool%20is_rgb(u32%20pix_fmt)%0A%2Bbool%20is_rgb(u32%20pix_fmt)%0A%20%7B%0A%20%09if%20((pix_fmt%20%3D%3D%20V4L2_PIX_FMT_RGB565)%20%7C%7C%0A%20%09%20%20%20%20(pix_fmt%20%3D%3D%20V4L2_PIX_FMT_RGB24)%20%20%7C%7C%0A%40%40%20-120%2C7%20%2B120%2C7%20%40%40%20static%20bool%20is_rgb(u32%20pix_fmt)%0A%20%09%09return%20false%3B%0A%20%7D%0A%20%0A-static%20bool%20is_yuv(u32%20pix_fmt)%0A%2Bbool%20is_yuv(u32%20pix_fmt)%0A%20%7B%0A%20%09if%20((pix_fmt%20%3D%3D%20V4L2_PIX_FMT_YUYV)%20%20%7C%7C%0A%20%09%20%20%20%20(pix_fmt%20%3D%3D%20V4L2_PIX_FMT_YUV32)%20%7C%7C%0A%40%40%20-812%2C3%20%2B812%2C7%20%40%40%20void%20mxc_isi_m2m_start_read(struct%20mxc_isi_dev%20*mxc_isi)%0A%20%09writel(val%2C%20mxc_isi-%26gt%3Bregs%20%2B%20CHNL_MEM_RD_CTRL)%3B%0A%20%7D%0A%20EXPORT_SYMBOL_GPL(mxc_isi_m2m_start_read)%3B%0A%2B%0A%2B%2F%2F%20patch%0A%2B%2F%2F%20line%20106%3A%09is_rgb()%20discard%20static%20declaration%20so%20can%20used%20outside.%0A%2B%2F%2F%20line%20123%3A%09is_yuv()%20discard%20static%20declaration%20so%20can%20used%20outside.%3C%2FMEDIA%3E%3C%2FMEDIA%3E%3C%2FMEDIA%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3EBest%20regards.%3C%2FP%3E%3CP%3EJohnson%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2336438%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20camera%20on%20imx93%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2336438%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3Edo%20you%20mind%20sharing%20the%20dts%20file%20with%20me%3F%20let%20me%20double%20check%20it%2C%20and%20what%20bsp%20version%20do%20you%20use%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2343484%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20camera%20on%20imx93%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2343484%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3Esorry%20for%20my%20delay%2C%20there%20is%20some%20issue%20with%20community%2C%20I%20missed%20the%20message%2C%20do%20you%20fix%20this%20issue%3F%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2343907%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20camera%20on%20imx93%20board%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2343907%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F39586%22%20target%3D%22_blank%22%3E%40joanxie%3C%2FA%3E%26nbsp%3B%2C%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3BNot%20yet.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3BLimited%20for%20the%20condition%2C%20I%20have%20only%20the%20data%20sheet%20of%20the%20camera%2C%20no%20reference%20manual%20of%20the%20camera%20and%20no%20high%20speed%20oscilloscope%20to%20measure%20the%20actual%20frequency%20of%20the%20lanes.%20from%20the%20datasheet%2C%20the%20lane%20speed%20is%201.2G.%20so%20for%202%20lanes%20and%20RAW8%20case%2C%20the%20pixel%20speed%20might%20be%201.2G%20x%202%20%2F%208%20%3D%20300M%2C%20is%20it%20right%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20If%20it's%20the%20case%2C%20how%20do%20I%20need%20to%20configure%20CSI%2FISP%20clock%20to%20avoid%20the%20FIFO%20overflow%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EBest%20regards.%3C%2FP%3E%3CP%3EJohnson%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E