Post Go back to editing

How to check adv7604 i2c slave list

hi

Now I'm checking the adv6704 i2c slaine list on linux.
I performed the i2c probe procedure using the i2cdetect command, and the result is as follows.

root@vrd_trd:~# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- 22 -- 24 -- 26 -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- 38 -- -- -- 3c -- 3e --
40: 40 -- 42 -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --


The linux device driver is defined as follows.

static const struct adv76xx_register_map adv76xx_default_addresses[] = {
[ADV76XX_PAGE_IO] = { "main", 0x4c },
[ADV7604_PAGE_AVLINK] = { "avlink", 0x42 },
[ADV76XX_PAGE_CEC] = { "cec", 0x40 },
[ADV76XX_PAGE_INFOFRAME] = { "infoframe", 0x3e },
[ADV7604_PAGE_ESDP] = { "esdp", 0x38 },
[ADV7604_PAGE_DPP] = { "dpp", 0x3c },
[ADV76XX_PAGE_AFE] = { "afe", 0x26 },
[ADV76XX_PAGE_REP] = { "rep", 0x32 },
[ADV76XX_PAGE_EDID] = { "edid", 0x36 },
[ADV76XX_PAGE_HDMI] = { "hdmi", 0x34 },
[ADV76XX_PAGE_TEST] = { "test", 0x30 },
[ADV76XX_PAGE_CP] = { "cp", 0x22 },
[ADV7604_PAGE_VDP] = { "vdp", 0x24 },
};

I don't know why the slave devices don't all show up as defined.

On the Analog Devices technical support site, there are only setting methods depending on the operation mode, and there is no data on all register maps.
First of all I want to know why 0x4c of i2c slave is not resolved.
thank you.

  • Hi,

     Writes to devices addresses 40, 44, and 4C are writes to the ADV7604.  The other device address are to other chips on the evaluation board. (50, 54, 72).

      4C writes corresponds to AFE map.

      Please note some i2c drivers work with 7 bit addressing, if your software/tool is using 7-bit i2c address, In that case we need to right shift the 8 bit map address to one.
                              For example: 0x98 IO Map   –   8 bit address
                                                  0x98>>1 =0x4C – 7 bit address

      ADV7604 is under production and could you please contact FAE/ADI sales team for hardware/software manual.

      Please make sure with below expert comment regarding I2C activity checklist,

    1. make sure the power rails are good
    2. make sure the device is out of reset and the reset goes high after both power rails are stable.
    3. make sure SDA and SCL signals are going to the right pins.
    4. Verify the pull up resistors on SDA and SCL.
    5. Verify the SDA and SCK signals wiggle and are the right amplitude.
    6. Verify the I2C SDA master becomes an input or is tri-stated during the ACK bit so the 7611can pull SDA low.
    7. Verify you are using the correct device address.
    8. Verify the start command is correct. See Figures 66,67 in ADV7611 Reference Manual (UG-180) - Protocal for main i2c port
    9. Check to see if you can access anything else tied to the I2C bus, like eeprom.  Tie something to the bus to make sure the bus is working as expected.

    Thanks,

    Poornima