Xilinx Embedded Software (embeddedsw) Development
![]() - Changed the offset from type u8 to u16. - In order to accomodate offsets greater than 255, a segment pointer is used. - The I2C read funciton is now able to access blocks other than the block 0 and 1 at a given address. E.g., EDID extension blocks may now be accessed by reading from I2C address 0x50 (raw=0xA0/0xA1) and writing the appropriate segment pointer and offset. - Input offset=0. - EDID block 0: I2C read on offset=0 and segptr=0. - Input offset=128. - EDID block 1: I2C read on offset=128 and segptr=0. - Input offset=256. - EDID block 2: I2C read on offset=0 and segptr=1. - Input offset=384. - EDID block 3: I2C read on offset=128 and segptr=1. - etc. - Writing to the I2C address 0x30 (raw=0x60/0x61) sets the segment pointer. - Writing to an I2C address sets the offset that will be read from that address. E.g., a read of the EDID, starting at offset 128 would be done by writing 128 to 0x50, then reading from 0x50. - Offsets that cross a 256-byte boundary requiring increment of the segment pointer is also handled. E.g. A 16 byte read on input offset 500 results in the the returned 16 byte array having the first 11 bytes from segptr=1 (bytes 244-255) and the last 5 bytes from segptr=2 (bytes 0-4). Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com> |
||
---|---|---|
lib | ||
XilinxProcessorIPLib/drivers |