This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: Linux/AM5728: ADV7611 video issue

Part Number: AM5728

I am exactly at the same HW/SW situation and trying to implement the last post of VEFONE in the thread:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/637596/linux-am5728-adv7611-video-issue?ReplyFilter=Answers&ReplySortBy=Answers&ReplySortOrder=Descending

After doing everything exactly as VEFONE provided Ireceive 4(!) video devices (video1-video4) and not one video1.
And no capture happens. But I think that these 4 devices instead of 1 is the cause.


vip 48970000.vip: VPDMA firmware loaded
vip 48990000.vip: VPDMA firmware loaded
vin3a: Port A: Using subdev adv7611 1-004c for capture
vpe 489d0000.vpe: Device registered as /dev/video0
vin3a-0: device registered as video1
vin3a-0: device registered as video2
vin3a-0: device registered as video3
vin3a-0: device registered as video4


What can be the problem?
Thanks a lot for any help.

  • Hi Leon,

    In the other thread, the customer was trying this on EVM.

    Could you confirm if you are also running the test on EVM?

    Regards,

    Stanley

  • Hi Stanley, nice to meet you...:-) and thank you for reply.
    As you probably know the evaluation board has no ADV7611 installed/mounted.
    So, we are working on our board, which is very very very close to the EVM. Just ADV7611 replaced the camera.
    We did the corresponding PinMux changes reflecting the change in pins and checked that this should me correct.
    But as per my understanding, we are still not in the area - the 4 video inputs registered on each vin3a possible port are the question of correct device tree configuration, is it?
    As we repeated exactly the settings from Vefone post (which he declared working perfect) , we are confused for how to continue.
    Thanks again.

  • Please, note the output of 4l2-ctl -d /dev/videoX --all is almost the same for all 4:

    <15:52:04.908> root@am57xx-evm:~# v4l2-ctl -d /dev/video1 --all
    <15:52:07.287> [ 47.504723] adv7611 1-004c: adv7611_get_fmt Line = 219
    <15:52:07.521> [ 47.509895] adv7611 1-004c: adv7611_set_fmt Line = 250
    <15:52:07.521> [ 47.515058] adv7611 1-004c: adv7611_get_fmt Line = 219
    <15:52:07.527> Driver Info:
    <15:52:07.527> Driver name : vip
    <15:52:07.534> Card type : vip
    <15:52:07.534> Bus info : platform:vip2:vin3a:stream0
    <15:52:07.534> Driver version : 4.19.94
    <15:52:07.537> Capabilities : 0x85200001
    <15:52:07.537> Video Capture
    <15:52:07.537> Read/Write
    <15:52:07.541> Streaming
    <15:52:07.541> Extended Pix Format
    <15:52:07.541> Device Capabilities
    <15:52:07.541> Device Caps : 0x05200001
    <15:52:07.543> Video Capture
    <15:52:07.543> Read/Write
    <15:52:07.543> Streaming
    <15:52:07.543> Extended Pix Format
    <15:52:07.546> Priority: 2
    <15:52:07.546> Video input : 0 (camera 1: ok)
    <15:52:07.546> Video Standard = 0x00ffb0ff
    <15:52:07.549> PAL-B/B1/G/H/I/D/D1/K
    <15:52:07.549> NTSC-M/M-JP/M-KR
    <15:52:07.549> SECAM-B/D/G/H/K/K1/L/Lc
    <15:52:07.549> Format Video Capture:
    <15:52:07.552> Width/Height : 1920/1080
    <15:52:07.552> Pixel Format : 'UYVY' (UYVY 4:2:2)
    <15:52:07.554> Field : None
    <15:52:07.554> Bytes per Line : 3840
    <15:52:07.554> Size Image : 4147200
    <15:52:07.555> Colorspace : SMPTE 170M
    <15:52:07.555> Transfer Function : Default (maps to Rec. 709)
    <15:52:07.555> YCbCr/HSV Encoding: Default (maps to ITU-R 601)
    <15:52:07.555> Quantization : Default (maps to Limited Range)
    <15:52:07.555> Flags :
    <15:52:07.555> Crop Capability Video Capture:
    <15:52:07.555> Bounds : Left 0, Top 0, Width 1920, Height 1080
    <15:52:07.555> Default : Left 0, Top 0, Width 1920, Height 1080
    <15:52:07.559> Pixel Aspect: 1/1
    <15:52:07.559> Crop Capability Video Output:
    <15:52:07.561> Bounds : Left 0, Top 0, Width 1920, Height 1080
    <15:52:07.561> Default : Left 0, Top 0, Width 1920, Height 1080
    <15:52:07.563> Pixel Aspect: 1/1
    <15:52:07.563> Selection Video Capture: crop, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.564> Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.566> Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.567> Selection Video Capture: compose, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.570> Selection Video Capture: compose_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.571> Selection Video Capture: compose_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.572> Selection Video Output: crop, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.574> Selection Video Output: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.575> Selection Video Output: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.576> Selection Video Output: compose, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.577> Selection Video Output: compose_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.578> Selection Video Output: compose_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:07.580> Streaming Parameters Video Capture:
    <15:52:07.581> Capabilities : timeperframe
    <15:52:07.581> Frames per second: 30.000 (30/1)
    <15:52:07.582> Read buffers : 4
    <15:52:07.582> root@am57xx-evm:~# v4l2-ctl -d /dev/video2 --all
    <15:52:18.293> [ 58.514940] adv7611 1-004c: adv7611_get_fmt Line = 219
    <15:52:18.532> [ 58.520113] adv7611 1-004c: adv7611_set_fmt Line = 250
    <15:52:18.535> [ 58.525276] adv7611 1-004c: adv7611_get_fmt Line = 219
    <15:52:18.535> Driver Info:
    <15:52:18.535> Driver name : vip
    <15:52:18.535> Card type : vip
    <15:52:18.535> Bus info : platform:vip2:vin3a:stream0
    <15:52:18.535> Driver version : 4.19.94
    <15:52:18.535> Capabilities : 0x85200001
    <15:52:18.545> Video Capture
    <15:52:18.545> Read/Write
    <15:52:18.545> Streaming
    <15:52:18.545> Extended Pix Format
    <15:52:18.553> Device Capabilities
    <15:52:18.553> Device Caps : 0x05200001
    <15:52:18.553> Video Capture
    <15:52:18.556> Read/Write
    <15:52:18.556> Streaming
    <15:52:18.556> Extended Pix Format
    <15:52:18.556> Priority: 2
    <15:52:18.556> Video input : 0 (camera 2: ok)
    <15:52:18.559> Video Standard = 0x00ffb0ff
    <15:52:18.559> PAL-B/B1/G/H/I/D/D1/K
    <15:52:18.559> NTSC-M/M-JP/M-KR
    <15:52:18.561> SECAM-B/D/G/H/K/K1/L/Lc
    <15:52:18.561> Format Video Capture:
    <15:52:18.561> Width/Height : 1920/1080
    <15:52:18.564> Pixel Format : 'UYVY' (UYVY 4:2:2)
    <15:52:18.564> Field : None
    <15:52:18.566> Bytes per Line : 3840
    <15:52:18.566> Size Image : 4147200
    <15:52:18.566> Colorspace : SMPTE 170M
    <15:52:18.569> Transfer Function : Default (maps to Rec. 709)
    <15:52:18.569> YCbCr/HSV Encoding: Default (maps to ITU-R 601)
    <15:52:18.571> Quantization : Default (maps to Limited Range)
    <15:52:18.573> Flags :
    <15:52:18.573> Crop Capability Video Capture:
    <15:52:18.573> Bounds : Left 0, Top 0, Width 1920, Height 1080
    <15:52:18.574> Default : Left 0, Top 0, Width 1920, Height 1080
    <15:52:18.575> Pixel Aspect: 1/1
    <15:52:18.575> Crop Capability Video Output:
    <15:52:18.575> Bounds : Left 0, Top 0, Width 1920, Height 1080
    <15:52:18.577> Default : Left 0, Top 0, Width 1920, Height 1080
    <15:52:18.578> Pixel Aspect: 1/1
    <15:52:18.578> Selection Video Capture: crop, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.579> Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.580> Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.581> Selection Video Capture: compose, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.583> Selection Video Capture: compose_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.583> Selection Video Capture: compose_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.585> Selection Video Output: crop, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.586> Selection Video Output: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.587> Selection Video Output: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.589> Selection Video Output: compose, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.590> Selection Video Output: compose_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.591> Selection Video Output: compose_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:52:18.591> Streaming Parameters Video Capture:
    <15:52:18.591> Capabilities : timeperframe
    <15:52:18.592> Frames per second: 30.000 (30/1)
    <15:52:18.592> Read buffers : 4
    =====================
    <15:54:42.628> root@am57xx-evm:~# v4l2-ctl -d /dev/vide42 --all
    <15:55:19.592> Cannot open device /dev/vide42, exiting.
    <15:55:19.624> root@am57xx-evm:~# v4l2-ctl -d /dev/video4 --all
    <15:55:24.115> [ 244.095546] adv7611 1-004c: adv7611_get_fmt Line = 219
    <15:55:24.115> [ 244.100719] adv7611 1-004c: adv7611_set_fmt Line = 250
    <15:55:24.123> [ 244.105881] adv7611 1-004c: adv7611_get_fmt Line = 219
    <15:55:24.126> Driver Info:
    <15:55:24.126> Driver name : vip
    <15:55:24.126> Card type : vip
    <15:55:24.131> Bus info : platform:vip2:vin3a:stream0
    <15:55:24.131> Driver version : 4.19.94
    <15:55:24.131> Capabilities : 0x85200001
    <15:55:24.134> Video Capture
    <15:55:24.134> Read/Write
    <15:55:24.134> Streaming
    <15:55:24.134> Extended Pix Format
    <15:55:24.136> Device Capabilities
    <15:55:24.136> Device Caps : 0x05200001
    <15:55:24.136> Video Capture
    <15:55:24.137> Read/Write
    <15:55:24.137> Streaming
    <15:55:24.137> Extended Pix Format
    <15:55:24.137> Priority: 2
    <15:55:24.137> Video input : 0 (camera 4: ok)
    <15:55:24.137> Video Standard = 0x00ffb0ff
    <15:55:24.137> PAL-B/B1/G/H/I/D/D1/K
    <15:55:24.137> NTSC-M/M-JP/M-KR
    <15:55:24.143> SECAM-B/D/G/H/K/K1/L/Lc
    <15:55:24.143> Format Video Capture:
    <15:55:24.143> Width/Height : 1920/1080
    <15:55:24.146> Pixel Format : 'UYVY' (UYVY 4:2:2)
    <15:55:24.146> Field : None
    <15:55:24.148> Bytes per Line : 3840
    <15:55:24.148> Size Image : 4147200
    <15:55:24.148> Colorspace : SMPTE 170M
    <15:55:24.149> Transfer Function : Default (maps to Rec. 709)
    <15:55:24.149> YCbCr/HSV Encoding: Default (maps to ITU-R 601)
    <15:55:24.153> Quantization : Default (maps to Limited Range)
    <15:55:24.155> Flags :
    <15:55:24.155> Crop Capability Video Capture:
    <15:55:24.155> Bounds : Left 0, Top 0, Width 1920, Height 1080
    <15:55:24.157> Default : Left 0, Top 0, Width 1920, Height 1080
    <15:55:24.158> Pixel Aspect: 1/1
    <15:55:24.158> Crop Capability Video Output:
    <15:55:24.158> Bounds : Left 0, Top 0, Width 1920, Height 1080
    <15:55:24.161> Default : Left 0, Top 0, Width 1920, Height 1080
    <15:55:24.162> Pixel Aspect: 1/1
    <15:55:24.162> Selection Video Capture: crop, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.164> Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.166> Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.166> Selection Video Capture: compose, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.168> Selection Video Capture: compose_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.169> Selection Video Capture: compose_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.171> Selection Video Output: crop, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.172> Selection Video Output: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.175> Selection Video Output: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.177> Selection Video Output: compose, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.178> Selection Video Output: compose_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.180> Selection Video Output: compose_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
    <15:55:24.181> Streaming Parameters Video Capture:
    <15:55:24.181> Capabilities : timeperframe
    <15:55:24.183> Frames per second: 30.000 (30/1)
    <15:55:24.183> Read buffers : 4
    ====================================
    The question is why it thinks that it has 4 cameras on the same platform:vip2:vin3a:stream0?

    Thank you

  • Hello, Josua, thank you.
    Yes, we have studied all these docs.
    Here are our DT corresponding fragments (exactly as  Vefone has set them):

                  vip@0x48990000 {                 
                           compatible = "ti,vip2";  
                           reg = <0x48990000 0x114 0x48995500 0xd8 0x48995700 0x18 0x48995800 0x80 0x48995a00 0xd8 0x48995c00 0x18 0x48995d00 0x80 0x4899d000 0x400>;
                           reg-names = "vip", "parser0", "csc0", "sc0", "parser1", "csc1", "sc1", "vpdma";
                           ti,hwmods = "vip2";      
                           interrupts = <0x0 0x160 0x4 0x0 0x189 0x4>;
                           syscon-pol = <0x9 0x534>;
                           #address-cells = <0x1>;
                           #size-cells = <0x0>;
                           status = "okay";
                           phandle = <0x1f3>;       
                           channels = <0>;  
                              
                           ports {
                                   #address-cells = <0x1>;
                                   #size-cells = <0x0>;
                                            
                                   vin3a: port@0 {
                                           status = "okay";
                                           reg = <0x0>;
                                           phandle = <0x1f4>;
                                           endpoint {
                                                   phandle = <0x21a>;
                                                   slave-mode;
                                                   remote-endpoint = <0x21b>;
                                           };       
                                   };
    };

    ====================

                                                   
                           adv7611_0@4c {           
                             status = "okay";       
                             compatible = "adi,adv7611";
                             reg = <0x4c>;          
                             #address-cells = <1>;
                             #size-cells = <0>;     
                             default-input = <0>;
                             //reset-gpios = <0xa9 0x11 0x1>;
                             //hpd-gpios = <0xa9 0x11 0x1>;
                             port@0 {               
                                     reg = <0>;     
                                     endpoint {     
                                           phandle = <0x21b>;
                                           remote-endpoint = <0x21a>;
                                           pixel-mux;
                                           bus-width= <16>;
                                           channels = <0>;
                                     };             
                             };                     
                           };                      
    ========================

    We tried all possible adaptations of DT without success - always there are 4 devices. With/without "channels = <0>" although we saw in this thread that this "channels" clause is about sync mode.:
    e2e.ti.com/.../am5728-adv7611-is-registered-as-capture-device-but-can-t-capture

    Also, considering this thread:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/574362/linux-am5728-vip-minimum-sub-device-driver
    Is this true that VIP driver does NOT support the 16-bit parallel bus with embedded sync?
    This worked fine in DM8148. Is  it removed now?
    This also contradicts with Vefone statement that it works for him and in general, with ability to accept 1080p60 - the clock will be too fast!

  • Hello Leon,

    I am consulting internally and will get back to you whenever I get  some useful information.

    -Josue

  • Hi Leon,

    Wanted to let you know we are still looking into your issue. 

    I checked the default DTS files and include files and to make sure there was no default nodes declared elsewhere for vip.

    I assume you did this already.

    Regards,

    -Josue

  • Hi, Josue.

    Please, stop wasting your time for now - we managed to receive something from our ADV7611. It is not the normal video yet, but at least something is received by yavta and we have some starting point to work from.

    We manually forced the v4l2-fwnode.c file to see only 1 channel (this was recommended in one of the e2e threads) for now and it allowed us to move a bit forward.

    Regards
    Leon

  • Thank you Leon, Glad to know this is working for you for now. Would you please link the thread that where you found this recommendation?