Register(CSR) access through I2C is sucessful.
but I want to access through DSI interface(MIPI-DSI)
How can i do that?
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.
Register(CSR) access through I2C is sucessful.
but I want to access through DSI interface(MIPI-DSI)
How can i do that?
Hi,
Please reference to section 8.4.4.3. The Generic Request datatypes are used for reading and writing to DSIx6 CFR space as well as for providing DisplayPort secondary data packets.
Thanks
David
I read "8.4.4.3.2 Generic Short Write 2-Parameters Request" and write CFR register, but not work.
SOT
ID = 0x23
ADDR = 0xA
DATA = 0x5
ECC
EOT
but can't write 0xA register.
Hi,
Are you using Channel A lane 0 for the DSI86 register read/write operation?
Whose DSI source are you using? I would refer to the DSI source user guide for DSI operation.
Instead a write operation, can you do a Generic Read Request 2-Parameters Request of DSI86 register 0x00 and see if you are able to read back the correct data?
Thanks
David
I'm using "Channel A lane 0".
and read operation is also not work(time out)
I'm not using REFCLK.
Could this be the cause of the problem?
Hi,
You do not need REFCLK to access the DSI86 registers through the DSI interface. Since the REFCLK is not used, what DSI clock frequency are you using? One of the following DSI A clock frequencies can be used: 384 MHz, 416 MHz, 460.8 MHz, 468 MHz, or 486 MHz when REFCLK is not present.
Thanks
David
I'm using 416Mhz DSI A clock.
and When I set the register with i2c without using refclock(using 416Mhz DSI A clock), the LCD screen appeared normally.
What is the "DSII2CSlaveAddressList"?
Did you mean "DATA TYPE"?(as below)
Read : 0x24(Generic Read Request 2 parameters)
WRITE : 0x23(Generic Short Write Request 2 parameters)
Hi,
No, I would refer to your DSI user guide, but you need to specify the DSI slave address and number of the slave devices on the DSI bus.
Thanks
David
Did you mean "DSI slave address" is "MIPI virtual channel"? I'm using channel 0 for DSI interface.
Can you provide sample code?
Hi,
I am using Qualcomm as an example here. The command structure may be different depending on the MIPI source you are using.
<DSII2CSlaveAddressList units='int'>0x39 0x3C</DSII2CSlaveAddressList>
<DSII2CI2CNumOfSlaves units='int'>0x2</DSII2CI2CNumOfSlaves>
<DSII2CFrequency units='int'>0x190</DSII2CFrequency>
<DSII2CGSBIPort units='int'>0x4</DSII2CGSBIPort>
<DisplayPlatformID>0x3</DisplayPlatformID>
<PanelID>0x2D0</PanelID>
<I2CInitSequence>
39 41 10
ff 05
39 d6 48
ff 05
3c 03 89
39 16 20
39 9a e0
39 ba 70
39 de 82
39 e4 c0
39 e5 80
3c 15 d0
3c 17 d0
3c 24 20
3c 57 11
39 af 06
39 40 80
39 4c 04
39 49 02
39 0d 40
3c 1c 30
39 17 02
3c 16 00
3c 27 CB
3c 28 67
3c 29 20
3c 2a 02
3c 2b 80
3c 2c 06
3c 2d e0
3c 2e 0d
3c 2f c0
3c 30 2e
3c 31 e0
3c 32 00
3c 33 50
3c 34 00
3c 35 50
3c 36 01
3c 37 40
3c 27 CB
3c 27 8B
ff 05
Thanks
David
Hi,
The first column is the DSI command, the second column is the device register address, and the third column is the read/write data.
This is just an example, not the actual DSI86 programmed value.
Please refer to your DSI source datasheet on how to specify the DSI86 I2C address.
Thanks
David