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.

SN65DSI86: I2C over aux

Part Number: SN65DSI86

Hello TI:

I want to use DSI86 to implement  aux with IIC to read/write  vcom of panel.

The TCOM vender release some document for me.

ex:

1.WriteDPCD(DPCD0048B,0x90);

2.WriteDPCD(DPCD0048E,0x9F);

3.IICWrite(0x9E,0x0F);

4.IICWrite(0x46,0x0A,0x5c);

Now , I think DSI86 reg setting is as follows:

1. aux_cmd=0x08, aux_addr[19:0]=0x0048B, aux_length[6:0]=0x01,Data0=0x90;

2.aux_cmd=0x08, aux_addr[19:0]=0x0048E, aux_length[6:0]=0x01,Data0=0x9F;

3.aux_cmd=0x04 or 0x00?   , aux_addr[19:0]=?  , aux_length[6:0]=? ,Data0=?

4.aux_cmd=0x04 or 0x00?   , aux_addr[19:0]=?  , aux_length[6:0]=? ,Data0=?

My question is I don't know how to set the reg to implement I2C-Over-Aux?

And if the setting of No1 & No2 is right?

  • Hi,

    Please refer to section 8.4.5.3 I2C-Over-AUX. Two methods available for I2C-Over-Aux: Direct Method (also known as Clock stretching) and Indirect Method (CFR Read/Write).

    Below is an example reading 16-bytes from sink’s DPCD registers 0x00000.

    <aardvark>


    <configure i2c="1" spi="1" gpio="0" tpower="1" pullups="0" />
    <i2c_bitrate khz="100" />


    ======Clear Status Registers for AUX Request======

    <i2c_write addr="0x2D" count="1" radix="16">F4 FF</i2c_write> />
    ======Send AUX Request for 16 bytes from DPCD 0x00000 ======
    ===========DPCD Address is 0x00000 ======
    <i2c_write addr="0x2D" count="1" radix="16">74 00 </i2c_write> />
    <i2c_write addr="0x2D" count="1" radix="16">75 00 </i2c_write> />
    <i2c_write addr="0x2D" count="1" radix="16">76 00 </i2c_write> />
    ===========Number of Bytes to Read is 16 ======
    <i2c_write addr="0x2D" count="1" radix="16">77 10 </i2c_write> />
    ===========Send AUX Read Request ======
    <i2c_write addr="0x2D" count="1" radix="16">78 91 </i2c_write> <sleep ms="20" />
    ======Read Status of AUX Request======
    ======Make sure SEND_INT is set and no errors======
    <i2c_write addr="0x2D" count="0" radix="16">F4</i2c_write> />
    <i2c_read addr="0x2D" count="1" radix="16">00</i2c_read> />
    ======Clear Status Registers for AUX Request======
    <i2c_write addr="0x2D" count="1" radix="16">F4 FF</i2c_write> />
    ======Read 16 bytes from AUX_RDATA======
    <i2c_write addr="0x2D" count="0" radix="16">79</i2c_write> />
    <i2c_read addr="0x2D" count="16" radix="16">00</i2c_read> />

    </aardvark>

    Thanks

    David