IMX6Q,ADV7481,Can't get CSI data issue

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

IMX6Q,ADV7481,Can't get CSI data issue

Jump to solution
1,421 Views
maninwind
Contributor II

Hi, i'm beginner of linux, working on imx6q platform, linux kernel is 3.14.28.

For now, i'm geting stuck in debugging on adv7481,which connects to imx6q with mipi interface.

My problem looks like "IPU can't get the CSI data". I choose the default ipu&csi setting, ipu0-csi1.

When i use "cat /dev/video0" command, following error log shows up:

   -> "ERROR: v4l2 capture: mxc_v4l_read timeout counter 0"

   -> "imx-ipu3 2400000.ipu: Not a CSI channel"

   -> "cat: read error: Timer expired"

When i use "gst-launch-1.0 /dev/video1" command, following error log shows up:

   -> "ERROR: unrecognized std! 0 (PAL=ff, NTSC=b000"

   -> "(gst-launch-1.0:599): GStreamer-CRITICAL **: gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed
ERROR: pipeline could not be constructed: no source element for URI "/dev/video1"."

Below is some configs and settings:

In device tree , i cancel the following configs, those has no relationship with debugging adv7481 i thought:

   1) lcd&backlight

   2) v4l2_cap_0

   3) mipi_dsi_reset

   4) pinctrl_ipu1

   5) pinctrl_ipu1_2(parallel camera setting)

I check the same problem in community, and modify the kernel souce with "0001-Correct-mipi-camera-virtual-channel-setting-in.patch". 

I print out the mipi.info para, and mipi regs, it seems like mipi working fine:

====Below is MipiInfo para ====>
mipi_csi2_info.mipi_en = 1
mipi_csi2_info.ipu_id = 0
mipi_csi2_info.csi_id = 1
mipi_csi2_info.v_channel = 0
mipi_csi2_info.lanes = 2
mipi_csi2_info.datatype = 30
<====Above is MipiInfo para ====
adv748x_mipi 1-0070:
====Below is MipiCsi2Regs para ====>
MIPI_CSI_N_LANES = 0x1
MIPI_CSI_PHY_SHUTDOWNZ = 0x1
MIPI_CSI_DPHY_RSTZ = 0x1
MIPI_CSI_CSI2_RESETN = 0x1
MIPI_CSI_PHY_STATE = 0x300
MIPI_CSI_DATA_IDS_1 = 0x0
MIPI_CSI_DATGA_IDS_2 = 0x0
MIPI_CSI_ERR1 = 0x0
MIPI_CSI_ERR2 = 0x0
<====Above is MipiCsi2Regs para ====

I don't know the reason here, is there something missing? 

Thanks a lot. : )

Labels (2)
Tags (2)
0 Kudos
1 Solution
848 Views
maninwind
Contributor II

The issue is fixed.

1) Make sure the .dtsi file is right.

2) Make sure the driver of adv7481 is right.

3) No need to modify the 3.14.28 kernel.

4) Add the bootpara in U-Boot

5) Use "gst-launch-1.0 imxv4l2src device=/dev/videox ! imxv4l2sink" command test.

6) The video from HDMI Rx will display through HDMI Tx.

View solution in original post

0 Kudos
3 Replies
849 Views
maninwind
Contributor II

The issue is fixed.

1) Make sure the .dtsi file is right.

2) Make sure the driver of adv7481 is right.

3) No need to modify the 3.14.28 kernel.

4) Add the bootpara in U-Boot

5) Use "gst-launch-1.0 imxv4l2src device=/dev/videox ! imxv4l2sink" command test.

6) The video from HDMI Rx will display through HDMI Tx.

0 Kudos
849 Views
igorpadykov
NXP Employee
NXP Employee

Hi Wang

one can start configuring clocks using Debug steps for customer MIPI sensor.docx on
https://community.freescale.com/docs/DOC-94312

Sample code for iMX6 SabreSD to use MIPI CSI ca... | NXP Community 

and appnote AN5305

http://www.nxp.com/assets/documents/data/en/application-notes/AN5305.pdf 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
849 Views
maninwind
Contributor II

Hi igor, 

Thanks for reply.  :smileyhappy:

I'v read the documents above, and make some changes at kernel level, just as "Sample code for iMX6 SabreSD to use MIPI CSI ca... | NXP Community" described.

But the issue is not closed.It seems invalid.

With the mipi regs debug infos i memtioned above, the STATE reg is 0x300, and the ERR reg is 0x00, seems like mipi works well.

Now i want to print ome the ipu's regs info to get the status of ipu-modulle. How can i achieve it?

0 Kudos