ADV7280 with IMX6ULL

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

ADV7280 with IMX6ULL

1,431 Views
crcn
Contributor I

Hi,

I have an analogue camera connected to the ADV7280, and the ADV7280 to the imx6ULL. 

In my dts file I configurated that:

adv7280: adv7280@21 {

compatible = "adi,adv7180";

reg = <0x21>;

pinctrl-names = "default";

pinctrl-0 = <&pinctrl_csi1>;

clocks = <&clks IMX6UL_CLK_CSI>;

clock-names = "csi_mclk";

pwn-gpios = <&gpio3 13 0>;

rst-gpios = <&gpio3 5 0>;

csi_id = <0>;

mclk = <24000000>;

mclk_source = <0>;

cvbs = <1>;

status = "okay";

port {

adv7180_ep: endpoint {

remote-endpoint=<&csi1_ep>;

};

};

};

pinctrl_csi1: csi1grp {
fsl,pins = <
MX6UL_PAD_CSI_MCLK__CSI_MCLK 0x00b0
MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK 0xb0b1
MX6UL_PAD_CSI_VSYNC__CSI_VSYNC 0xb0b1
MX6UL_PAD_CSI_HSYNC__CSI_HSYNC 0xb0b1
MX6UL_PAD_CSI_DATA00__CSI_DATA02 0xb0b1
MX6UL_PAD_CSI_DATA01__CSI_DATA03 0xb0b1
MX6UL_PAD_CSI_DATA02__CSI_DATA04 0xb0b1
MX6UL_PAD_CSI_DATA03__CSI_DATA05 0xb0b1
MX6UL_PAD_CSI_DATA04__CSI_DATA06 0xb0b1
MX6UL_PAD_CSI_DATA05__CSI_DATA07 0xb0b1
MX6UL_PAD_CSI_DATA06__CSI_DATA08 0xb0b1
MX6UL_PAD_CSI_DATA07__CSI_DATA09 0xb0b1

MX6UL_PAD_LCD_DATA00__I2C3_SDA 0x40 /*RESET*/
MX6UL_PAD_LCD_DATA08__GPIO3_IO13 0x40 /*POWER DOWN*/
>;
};

 

In attachments (1.jpg, 2.jpg and 3.jpg) is the kernel configuration.

 

I have the device /dev/video0. 

When I execute v4l2-ctl --all I have:

###########################################

root@alcad:~# v4l2-ctl --all
Driver Info (not using libv4l2):
Driver name : mx6s-csi
Card type : i.MX6S_CSI
Bus info : platform:21c4000.csi
Driver version: 4.1.15
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Priority: 0
Video input : 0 (Camera: ok)
Format Video Capture:
Width/Height : 0/0
Pixel Format : ''
Field : Any
Bytes per Line: 0
Size Image : 0
Colorspace : Unknown (00000000)
Flags :
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 0, Height 0
Default : Left 0, Top 0, Width 0, Height 0
Pixel Aspect: 1/1
Crop: Left 0, Top 0, Width 0, Height 0

 

 

##################################

root@alcad:~# ffmpeg -f video4linux2 -i /dev/video0 -vframes 1 test.jpeg
ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.3.0 (GCC)
configuration: --disable-stripping --enable-pic --enable-shared --enable-pthreads --cross-prefix=arm-poky-linux-gnueabi- --ld='arm-poky-linux-gnueabi-gcc -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/imx6ull14x14evk' --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/alcad/imx6ull/miprimerbsp/tmp/work/cortexa7hf-neon-poky-linux-gnueabi/ffmpeg/3.0-r0=/usr/src/debug/ffmpeg/3.0-r0 -fdebug-prefix-map=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/i686-linux= -fdebug-prefix-map=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/imx6ull14x14evk= -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/imx6ull14x14evk' --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed' --sysroot=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/imx6ull14x14evk --enable-hardcoded-tables --libdir=/usr/lib --shlibdir=/usr/lib --datadir=/usr/share/ffmpeg --enable-avcodec --enable-avdevice --enable-avfilter -unknown pixelformat:'YU12'
-enable-avformat --disable-avresample --enable-bzlib --disable-liunknown pixelformat:'YU12'
bfaac --enable-gpl --disable-libgunknown pixelformat:'YV12'
sm --disable-indev=jack --disableunknown pixelformat:'422P'
-libvorbis --enable-lzma --disablunknown pixelformat:'411P'
e-libmp3lame --disable-openssl --unknown pixelformat:'YUV9'
enable-postproc --disable-libschrunknown pixelformat:'YVU9'
oedinger --disable-libspeex --enaunknown pixelformat:'RGBO'
ble-swresample --enable-swscale -unknown pixelformat:'RGBQ'
-enable-libtheora --disable-vaapiunknown pixelformat:'RGBP'
--disable-libvpx --disable-x11grunknown pixelformat:'RGBR'
ab --enable-libx264 --disable-outunknown pixelformat:'BGR3'
dev=xv
libavutil 55. 17.1unknown pixelformat:'RGB3'
03 / 55. 17.103
libavcodec unknown pixelformat:'BGR4'
57. 24.102 / 57. 24.102
libavunknown pixelformat:'RGB4'
format 57. 25.100 / 57. 25.100unknown pixelformat:'GREY'

libavdevice 57. 0.101 / 5unknown pixelformat:'Y16 '
7. 0.101
libavfilter 6. 3unknown pixelformat:'NV12'
1.100 / 6. 31.100
libswscale unknown pixelformat:'MJPG'
4. 0.100 / 4. 0.100
liunknown pixelformat:'JPEG'
bswresample 2. 0.101 / 2. 0.unknown pixelformat:'H264'
101
libpostproc 54. 0.100 unknown pixelformat:'MPG4'
/ 54. 0.100
unknown pixelformat:'CPIA'
unknown pixelformat:'GBRG'
unknown pixelformat:'GRBG'
unknown pixelformat:'RGGB'
[video4linux2,v4l2 @ 0x1e9d1d0] Cannot find a proper format for codec 'none' (id 0), pixel format 'none' (id -1)
Assertion *codec_id != AV_CODEC_ID_NONE failed at src/libavdevice/v4l2.c:809
Aborted

 

##################################

root@alcad:~# gst-launch-1.0 v4l2src num-buffers=1 ! jpegenc ! filesink location=test.jpg
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data flow error.
Additional debug info:
../../../../gstreamer-1.8.1/libs/gst/base/gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 0:00:00.001434334
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

 

 

##################################

root@alcad:~# v4l2-ctl --device /dev/video0 --set-fmt-video=width=1024,height=768,pixelformat=UYVY
VIDIOC_S_FMT: failed: No such device

 

I tried many configurations, but I cannot take a simple image.

 

What I need to configure the ADV7280 or ADV7180 in IMX6ULL (kit)?

 

How I can test if CSI communication is ok?

 

Thanks in advance,

Ricardo

0 Kudos
Reply
2 Replies

1,422 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos
Reply

1,382 Views
crcn
Contributor I

Hi Igor,

Thanks for your reply, but I don't have success with my problem.

I believe that I'm closer but something is missing

When the kernel startup up I have this:

IR XMP protocol handler initialized
-------adv7180_probe: enter adv7180_probe
DBG sensor data is at 80c01720
set io voltage ok
set core voltage ok
set analog voltage ok
set pll voltage ok
---adv7180_probe: rst_gpio: 69
adv7180_probe:adv7180 probe i2c address is 0x21
adv7180_read: read reg 0x11, val: 0x42
adv7180_probe:Analog Device adv7660 detected!
In adv7180_hard_reset
adv7180_write_reg: reg 0x0F val: 0xA0
adv7180_write_reg: reg 0x0F val: 0x00
adv7180_write_reg: reg 0x0E val: 0x80
adv7180_write_reg: reg 0x9C val: 0x00
adv7180_write_reg: reg 0x9C val: 0xFF
adv7180_write_reg: reg 0x0E val: 0x00
adv7180_write_reg: reg 0x03 val: 0x0C
adv7180_write_reg: reg 0x04 val: 0x07
adv7180_write_reg: reg 0x1D val: 0x40
adv7180_write_reg: reg 0x6B val: 0x01
adv7180_write_reg: reg 0x00 val: 0x00
adv7180_write_reg: reg 0x07 val: 0xFF
adv7180_write_reg: reg 0x52 val: 0xCD
adv7180_write_reg: reg 0x80 val: 0x51
adv7180_write_reg: reg 0x81 val: 0x51
adv7180_write_reg: reg 0x82 val: 0x68
adv7180_write_reg: reg 0xFD val: 0x84
adv7280_write_reg_with_client: reg 0xA3 val: 0x00
adv7280_write_reg_with_client: reg 0x5B val: 0x00
adv7280_write_reg_with_client: reg 0x55 val: 0x80
CRCN
adv7180_write_reg: reg 0x00 val: 0x00
adv7180_write_reg: reg 0x02 val: 0x00
---adv7180_probe: before subdev_init
---adv7180_probe: after subdev_init
CSI: Registered sensor subdevice: adv7180 1-0021
---adv7180_probe: finish probe


In adv7180_get_std
adv7180_read: read reg 0x10, val: 0x4F

 

But when I try to capture a photo or get some informations I have:

root@alcad:~# v4l2-ctl -d0 --all
Driver Info (not using libv4l2):In adv7180:ioctl_g_parm

Driver name : mx6s-csi
Car type is V4L2_BUF_TYPE_VIDEO_CAPTURE
d type : i.MX6S_CSI
Bus info : platform:21c4000.csi
Driver version: 4.1.15
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Priority: 0
Video input : 0 (Camera: ok)
Format Video Capture:
Width/Height : 720/480
Pixel Format : ''
Field : Interlaced
Bytes per Line: 0
Size Image : 691200
Colorspace : Unknown (00000000)
Flags :
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 0, Height 0
Default : Left 0, Top 0, Width 0, Height 0
Pixel Aspect: 1/1
Crop: Left 0, Top 0, Width 0, Height 0
Streaming Parameters Video Capture:
Frames per second: 25.000 (25/1)
Read buffers : 0
root@alcad:~#
root@alcad:~#
root@alcad:~#
root@alcad:~# v4l2-ctl --stream-mmap --stream-count=1 --stream-to=file.raw
timeout when wait for SOF
------------[ cut here ]------------
WARNING: CPU: 0 PID: 365 at drivers/media/v4l2-core/videobuf2-core.c:1805 vb2_start_streaming+0xe4/0x1bc()
Modules linked in:
CPU: 0 PID: 365 Comm: v4l2-ctl Not tainted 4.1.15 #37
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
[<80015a78>] (unwind_backtrace) from [<80012650>] (show_stack+0x10/0x14)
[<80012650>] (show_stack) from [<807eec60>] (dump_stack+0x84/0xc4)
[<807eec60>] (dump_stack) from [<8002cf58>] (warn_slowpath_common+0x80/0xb0)
[<8002cf58>] (warn_slowpath_common) from [<8002d024>] (warn_slowpath_null+0x1c/0x24)
[<8002d024>] (warn_slowpath_null) from [<80524158>] (vb2_start_streaming+0xe4/0x1bc)
[<80524158>] (vb2_start_streaming) from [<80527b40>] (vb2_internal_streamon+0x10c/0x158)
[<80527b40>] (vb2_internal_streamon) from [<8053c4fc>] (mx6s_vidioc_streamon+0x3c/0xb0)
[<8053c4fc>] (mx6s_vidioc_streamon) from [<80512fa0>] (__video_do_ioctl+0x2b0/0x324)
[<80512fa0>] (__video_do_ioctl) from [<80512a1c>] (video_usercopy+0x1b8/0x480)
[<80512a1c>] (video_usercopy) from [<8050efc4>] (v4l2_ioctl+0x118/0x150)
[<8050efc4>] (v4l2_ioctl) from [<800f236c>] (do_vfs_ioctl+0x3e8/0x608)
[<800f236c>] (do_vfs_ioctl) from [<800f25c0>] (SyS_ioctl+0x34/0x5c)
[<800f25c0>] (SyS_ioctl) from [<8000f3c0>] (ret_fast_syscall+0x0/0x3c)
---[ end trace 6f6d544bc8bf1f2b ]---
VIDIOC_STREAMON: failed: Timer expired

 

root@alcad:~# ffmpeg -f video4linux2 -i /dev/video0 -vframes 1 test.jpeg
ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.3.0 (GCC)
configuration: --disable-stripping --enable-pic --enable-shared --enable-pthreads --cross-prefix=arm-poky-linux-gnueabi- --ld='arm-poky-linux-gnueabi-gcc -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/imx6ull14x14evk' --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/alcad/imx6ull/miprimerbsp/tmp/work/cortexa7hf-neon-poky-linux-gnueabi/ffmpeg/3.0-r0=/usr/src/debug/ffmpeg/3.0-r0 -fdebug-prefix-map=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/i686-linux= -fdebug-prefix-map=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/imx6ull14x14evk= -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/imx6ull14x14evk' --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed' --sysroot=/home/alcad/imx6ull/miprimerbsp/tmp/sysroots/imx6ull14x14evk --enable-hardcoded-tables --libdir=/usr/lib --shlibdir=/usr/lib --datadir=/usr/share/ffmpeg --enable-avcodec --enable-avdevice --enable-avfilter -unknown pixelformat:'YU12'
-enable-avformat --disable-avresamx6s-csi 21c4000.csi: Fourcc format (0x32315559) invalid.
mple --enable-bzlib --disable-libfaac --enable-gpl --disable-libgunknown pixelformat:'YU12'
sm --disable-indev=jack --disablemx6s-csi 21c4000.csi: Fourcc format (0x32315559) invalid.
-libvorbis --enable-lzma --disablunknown pixelformat:'YV12'
e-libmp3lame --disable-openssl --mx6s-csi 21c4000.csi: Fourcc format (0x32315659) invalid.
enable-postproc --disable-libschrunknown pixelformat:'422P'
oedinger --disable-libspeex --enamx6s-csi 21c4000.csi: Fourcc format (0x50323234) invalid.
ble-swresample --enable-swscale - -enable-libtheora --disable-vaapi
--disable-libvpx --disable-x11grab --enable-libx264 --disable-out
dev=xv
libavutil 55. 17.1
03 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
format 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
timeout when wait for SOF
------------[ cut here ]------------
WARNING: CPU: 0 PID: 365 at drivers/media/v4l2-core/videobuf2-core.c:1805 vb2_start_streaming+0xe4/0x1bc()
Modules linked in:
CPU: 0 PID: 365 Comm: ffmpeg Not tainted 4.1.15 #37
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
[<80015a78>] (unwind_backtrace) from [<80012650>] (show_stack+0x10/0x14)
[<80012650>] (show_stack) from [<807eec60>] (dump_stack+0x84/0xc4)
[<807eec60>] (dump_stack) from [<8002cf58>] (warn_slowpath_common+0x80/0xb0)
[<8002cf58>] (warn_slowpath_common) from [<8002d024>] (warn_slowpath_null+0x1c/0x24)
[<8002d024>] (warn_slowpath_null) from [<80524158>] (vb2_start_streaming+0xe4/0x1bc)
[<80524158>] (vb2_start_streaming) from [<80527b40>] (vb2_internal_streamon+0x10c/0x158)
[<80527b40>] (vb2_internal_streamon) from [<8053c4fc>] (mx6s_vidioc_streamon+0x3c/0xb0)
[<8053c4fc>] (mx6s_vidioc_streamon) from [<80512fa0>] (__video_do_ioctl+0x2b0/0x324)
[<80512fa0>] (__video_do_ioctl) from [<80512a1c>] (video_usercopy+0x1b8/0x480)
[<80512a1c>] (video_usercopy) from [<8050efc4>] (v4l2_ioctl+0x118/0x150)
[<8050efc4>] (v4l2_ioctl) from [<800f236c>] (do_vfs_ioctl+0x3e8/0x608)
[<800f236c>] (do_vfs_ioctl) from [<800f25c0>] (SyS_ioctl+0x34/0x5c)
[<800f25c0>] (SyS_ioctl) from [<8000f3c0>] (ret_fast_syscall+0x0/0x3c)
---[ end trace d6cda814da50cd34 ]---
[video4linux2,v4l2 @ 0x16f01d0] ioctl(VIDIOC_STREAMON): Timer expired
/dev/video0: Timer expired
root@alcad:~#

 

Anyone can help me?

Thanks.

0 Kudos
Reply