device/i2c_bus: Add i2c_dev_read_at16()

i2c_dev_read_at16() sends a 16-bit offset to the I2C chip (for larger
EEPROM parts), then reads bytes up to a given length into a buffer.

Change-Id: I7516f3e5d9aca362c2b340aa5627d91510c09412
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/29478
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
This commit is contained in:
Nico Huber
2017-11-01 13:15:33 +01:00
committed by Patrick Georgi
parent 9529530766
commit 9734af6697
2 changed files with 45 additions and 0 deletions

View File

@@ -89,4 +89,12 @@ int i2c_dev_readb_at(struct device *, uint8_t off);
*/
int i2c_dev_writeb_at(struct device *, uint8_t off, uint8_t val);
/*
* Sends the 16-bit register offset `off` and reads `len` bytes into `buf`.
*
* Returns the number of bytes read on success, negative `enum cb_err`
* value on error.
*/
int i2c_dev_read_at16(struct device *, uint8_t *buf, size_t len, uint16_t off);
#endif /* _DEVICE_I2C_BUS_H_ */