AM625: SK-AM625 : CSI2/DHY ADV7282 Confirmation regrading the data received at-least till DPhy

Part Number: AM625

Tool/software:

Unable to receive data in ADV7282AM

Device Config

Board :  SK-AM625-EVM 

Image : SDK9.0 with the TI provided SD card image

Sensor : ADV7282AM(Not Working)/ IMX219(working).

Lane config: ADV7282AM → 1 lane, IMX219 → 2 lanes

Issue : Evaluating the register  0x30101048 

ADV7282AM : the register 0x30101048 value is 0x00222206 (or)  0x00222306 (Sometimes) ref:

IMX219 :  the register 0x30101048 value is 0x00223307 (Mostly)

Configured DTB with one data lane IMX219 the result is r 0x30101048 value is 0x00222307 (Mostly)

Checked the Clk and data in Oscilloscope Image Attached below

 Osc.zip

The CSI and DPHY register value single shot:


--- CSI2 Aggregator Config ---
0x0070E000: 0x66A02A01
0x0070E008: 0x00000000
0x0070E00C: 0x00000008
0x0070E010: 0x00000000
0x0070E03C: 0x00000000
0x0070E040: 0x00000000
0x0070E080: 0x00000000
0x0070E0C0: 0x00000000
0x0070E13C: 0x00000000
0x0070E140: 0x00000000
0x0070E180: 0x00000000
0x0070E1C0: 0x00000000
0x0070E200: 0x00000000
0x0070E204: 0x00000000
0x0070E208: 0x00000000
0x0070E20C: 0x00000000

--- CSI2 Internal Config ---
0x30100000: 0x6690A200
0x30100010: 0x00000000
0x30100014: 0x00000000
0x30100100: 0x00000000
0x30100104: 0x00000000
0x30100300: 0x00000000
0x30100304: 0x00000000
0x30100500: 0x00000000
0x30100504: 0x00000000
0x30100700: 0x00000000
0x30100704: 0x00000000
0x30100A80: 0x00000000
0x30100A84: 0x00000000

--- CSI2 Config ---
0x30101000: 0x8C63164C
0x30101004: 0x00000000
0x30101008: 0x43210100
0x30101010: 0x00000000
0x30101018: 0x00000000
0x3010101C: 0x00000000
0x30101020: 0x00000000
0x30101024: 0x00000000
0x30101028: 0x00000120
0x3010102C: 0x00000000
0x30101040: 0x00011011
0x30101048: 0x00222206
0x3010104C: 0x00000000
0x30101050: 0x00000000
0x30101060: 0x10000000
0x30101074: 0x00000000
0x30101080: 0x00000000

--- CSI2 Stream Config (with offsets) ---
Stream0 0x30101100: 0x00000001
Stream0 0x30101104: 0x80000111
Stream0 0x30101108: 0x00000000
Stream0 0x3010110c: 0x00000100
Stream0 0x30101110: 0x00000000
Stream0 0x30101114: 0x00000000
Stream0 0x30101118: 0x00000000
Stream0 0x3010111c: 0x00000000
Stream0 0x30101120: 0x00000000
Stream0 0x30101124: 0x00000000
Stream0 0x30101128: 0x00000000
Stream1 0x30101200: 0x00000000
Stream1 0x30101204: 0x80000011
Stream1 0x30101208: 0x00000000
Stream1 0x3010120c: 0x00000100
Stream1 0x30101210: 0x00000000
Stream1 0x30101214: 0x00000000
Stream1 0x30101218: 0x00000000
Stream1 0x3010121c: 0x00000000
Stream1 0x30101220: 0x00000000
Stream1 0x30101224: 0x00000000
Stream1 0x30101228: 0x00000000
Stream2 0x30101300: 0x00000001
Stream2 0x30101304: 0x80000111
Stream2 0x30101308: 0x00000000
Stream2 0x3010130c: 0x00000100
Stream2 0x30101310: 0x00000000
Stream2 0x30101314: 0x00000000
Stream2 0x30101318: 0x00000000
Stream2 0x3010131c: 0x00000000
Stream2 0x30101320: 0x00000000
Stream2 0x30101324: 0x00000000
Stream2 0x30101328: 0x00000000
Stream3 0x30101400: 0x00000001
Stream3 0x30101404: 0x80000111
Stream3 0x30101408: 0x00000000
Stream3 0x3010140c: 0x00000100
Stream3 0x30101410: 0x00000000
Stream3 0x30101414: 0x00000000
Stream3 0x30101418: 0x00000000
Stream3 0x3010141c: 0x00000000
Stream3 0x30101420: 0x00000000
Stream3 0x30101424: 0x00000000
Stream3 0x30101428: 0x00000000

--- CSI2 ASF ---
0x30101900: 0x00000000
0x30101904: 0x00000000
0x30101908: 0x0000007F
0x3010190C: 0x00000000
0x30101910: 0x0000007F
0x30101920: 0x00000000
0x30101924: 0x00000000
0x30101928: 0x00000000
0x30101930: 0x00000000
0x30101934: 0x00000001
0x30101938: 0x00000000
0x30101940: 0x00003FFF
0x30101944: 0x00000000
0x30101FFC: 0x50220200

--- DPHY ---
0x30110020: 0x00000429
0x30110040: 0x00800000
0x3011004C: 0x00000000
0x30110050: 0x00000000
0x30110B00: 0x000001EF
0x30110B04: 0x00000000
0x30110B08: 0xAAAAAAAA
0x30110B0C: 0x000000AA
0x30111000: 0x40800000

Any other info or steps for debugging the CSI-2 RX and MIPI D-PHY peripherals would be appreciated at this point.

  • Hello,

    Can you check this CSI debugging FAQ and see if you may have missed anything?

    Thanks,

    Jianzhong Xu

  • Thanks for the response.

    I have completed most of the above steps.

    We are facing issues only with the ADV7282AM, are checking layer by layer.

    To verify each layer, we made following changed to validate  DPHY and CSI behavior between  IMX219 and ADV7282Am in various configuration :

    1. I2C: Shell script to configure I2C for various operating modes.

    2. V4L2: Dummy CSI-based camera input driver without I2C.

    3. CSI driver : logging all register setting and configuring link frequency
    4. DPhy driver: logging all register setting
    5. Changing number of data-lane enabled using DTB
    6. Checking the following register dynamically 
      1. 0x30101048 (VBUS2APB_VBUSP_APB_CSI2RX_DPHY_STATUS Register)
      2. 0x30111000 
      3. 0x30101020 VBUS2APB_VBUSP_APB_CSI2RX_INFO_IRQS

    Case Case 1 Case 2 Case 3 Case 4
    Sensor IMX 219 Imx219 Imx219 ADV7283AM
    Media-ctl format

    SBGGR10_1X10

    640x480

    SBGGR10_1X10

    640x480

    YUYV8_1X16

    720x480

    YUYV8_1X16

    720x480

    Data lane 2 1 1 1
    0x30101048

    0x00223307

    occasionally

    0x00222207 or

    0x00223306

    0x00222307

    occasionally

    0x00222207 or

    0x00222306

    0x00222307

    occasionally

    0x00222207 or

    0x00222306

    0x00222206

    occasionally

    0x00222306

    0x30111000 0x40800000 0x40800000 0x40800000 0xC0800000
    0x30101020 0x00000002 0x00000070 0x00000050 0x00000020
    Status Working 

    change is observed

    in reg 0x30101048

    change is observed

    in reg 0x30101048

    Not Working

    Based on the above, my observations are as follows:

    1. If data is being received at the CSI layer (regardless of format), the register 0x30101048 shows values like 0x00222307 or 0x00223307 for lane status.

    2. In the case of ADV7282AM, the D-PHY does not appear to receive any data.

    3. With the IMX219, changing the link frequency impacts only the FPS (frames per second), without affecting other parameter

    Any other info or steps for debugging the CSI-2 RX and MIPI D-PHY peripherals would be appreciated at this point 

  • With the IMX219, changing the link frequency impacts only the FPS (frames per second), without affecting other parameter

    How about ADV7282AM? What data rate is the sensor operating at and what data rate did you configure the D-PHY to run?

  • Checked various link frequency 297000000, 456000000, 216000000(Clock  CSI pins as observed in oscilloscope  ) 

    ADV7282AM Mode :  the video data is output in a progressive format at a nominal data rate of 432 Mbps (Ref:ADV7282AM datasheet )

    My understanding AM625 does not support interlaced format as it does not have ISP

    Any other info or steps for debugging the CSI-2 RX and MIPI D-PHY peripherals would be highly appreciated at this point 

  • the video data is output in a progressive format at a nominal data rate of 432 Mbps

    Please make sure ADV7282AM output is in MIPI CSI format.

    What data rate is the sensor operating at

    Sorry, I meant the lane speed not the data rate. Lane speed is higher than the actual data rate due to protocol and blanking overhead.

    You'll need to configure the D-PHY lane speed to match the lane speed of the sensor. For example, if sensor lane speed is 500Mbps, you'll need to set the link frequency to 250Mbps in sensor device tree overlay. D-PHY lane speed (bps) = 2 x link-frequency (Hz).

  • Yes, we am aware of it, that why we have use 297000000 as link frequency, ref (github.com/.../adv7282m-overlay.dts) base on raspberry pi also. Then also we are unable to read or observer any change in the register 

  • We checked ADV7282-m setup  with raspberry pi 3 b+ module(Linux version : Linux raspberrypi 6.12.25+rpt-rpi-v8). Its is working fine test pattern

     The driver use  the following configuration in for linux frequency

    static const s64 adv7180_link_freqs[] = {
        [INTERLACED_IDX] = 108000000,
        [I2P_IDX] = 216000000, //progressive
    };

    we have tested with link-frequency  216000000 also 

    Any other info or steps for debugging the CSI-2 RX and MIPI D-PHY peripherals would be appreciated at this point.

  • What's the content of bits [4:0] of register 0x30110B00 (PCS_TX_DIG_TBIT0)? This register contains the lane speed of the D-PHY.

  • Please find the register value below

    Memory mapped at address 0xffff90271000.
    Read at address  0x30110B00 (0xffff90271b00): 0x00000129

  • This value means [4:0] is 9, which means the lane speed is between 400Mbps and 480Mbps, according to the D-PHY driver: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/phy/cadence/cdns-dphy-rx.c?h=ti-linux-6.12.y#n71.

    Is your sensor ADV7282-m running at this lane speed? If your sensor is running at 216Mbps, this register should have a value of 4 at [4:0].

  • There is slight misunderstanding here,

    We are referring to link frequency at 216 MHZ or clock ,

    the lane speed is 2 * clock with is 432 

  • We have changed the EVM board, and Modified the driver w.rt to rpi code . With above change the device is working fine.

    Thanks for the support

  • Ok. Thanks for the update.