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.

I2C2 bus conflict with HDVICP F/W?

Hi EZSDK team,

A custom TI8148 board uses sii9022a on DVO2 to drive a DVI port. the sii9022a I2C is connected to I2C2 bus, but Linux gets 'omap_i2c omap_i2c.3: controller timed out' message and cannot access i2c correctly if HDVICP F/W (from EZSDK 5.03) is loaded. It works fine if HDVICP F/W is not loaded though.

Is there any conflict of I2C2 between A8 and M3? how to solve it?

BTY, the following code is added in board-ti8148evm.c to register I2C2:

static struct i2c_board_info __initdata ti814x_i2c_boardinfo1[] = {
            {
                        I2C_BOARD_INFO("sii9022a", 0x3b),
            },
};

omap_register_i2c_bus(3, 100, i, ARRAY_SIZE(ti814x_i2c_boardinfo1));

Thanks,
-Bin.

  • Hi,

    I2C0  is used by Linux A8 and I2C2 is used by media controller binary. That is how design is done in case you are using OpenMax. Now if you want to control sii9022a from A8 you should be connecting sii9022a to I2C0. I2C2 is used to control decoder/encoder drivers on media controller like TVPs and some filters on DACs.

    Regards,

    Hardik Shah

  • Hi,

    This conflict appears when M3 has already initialized i2c2 and A8 tries to initialize the same. If you want to initialize i2c from A8, you need to ensure it is not being done from m3. This may need m3 firmware rebuild.

    Regards,

    Yogesh.

     

     

  • HardikShah said:

    Hi,

    I2C0  is used by Linux A8 and I2C2 is used by media controller binary. That is how design is done in case you are using OpenMax. Now if you want to control sii9022a from A8 you should be connecting sii9022a to I2C0. I2C2 is used to control decoder/encoder drivers on media controller like TVPs and some filters on DACs.

    Regards,

    Hardik Shah

    Thanks for the quick response.

    Is I2C2 the only bus used by HDVICP F/W (until EZSDK 5.03)? Customer should be able to use any of I2C0, I2C1, or I2C3 on A8? (in many cases multiple I2C buses are needed on A8.)

    If it is for sure OMX is not used, is it possible to disable M3 controlling I2C2 and let A8 to use it in EZSDK 5.03?

    Thanks.

  • Hi,

    Answer to your questions.

    Bin Liu said:
    Is I2C2 the only bus used by HDVICP F/W (until EZSDK 5.03)? Customer should be able to use any of I2C0, I2C1, or I2C3 on A8? (in many cases multiple I2C buses are needed on A8.)

    I2C1 is used for hdmi_ddc channel so you cant use I2C1. For I2C3, SDA and SCL are muxed with other pins. You can look at the pin muxing and figure it out if you are not using those pins for anything else.

    Bin Liu said:
    If it is for sure OMX is not used, is it possible to disable M3 controlling I2C2 and let A8 to use it in EZSDK 5.03?

    If you are not using any of external encoders/decoders from EZSDK like TVPs and filters than you can use I2C from Linux. But this requires Media controller binaries to be regenerated with few changes.

    Further