dm: i2c: Add functions to read and write a register
Add driver model versions of the legacy functions to read and write a single byte register. These are a useful shortcut in many cases. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Heiko Schocher <hs@denx.de>
This commit is contained in:
parent
1bde67b1f4
commit
ba3864f803
@ -186,6 +186,25 @@ int dm_i2c_write(struct udevice *dev, uint offset, const uint8_t *buffer,
|
||||
}
|
||||
}
|
||||
|
||||
int dm_i2c_reg_read(struct udevice *dev, uint offset)
|
||||
{
|
||||
uint8_t val;
|
||||
int ret;
|
||||
|
||||
ret = dm_i2c_read(dev, offset, &val, 1);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
int dm_i2c_reg_write(struct udevice *dev, uint offset, uint value)
|
||||
{
|
||||
uint8_t val = value;
|
||||
|
||||
return dm_i2c_write(dev, offset, &val, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* i2c_probe_chip() - probe for a chip on a bus
|
||||
*
|
||||
|
@ -123,6 +123,27 @@ int dm_i2c_write(struct udevice *dev, uint offset, const uint8_t *buffer,
|
||||
int dm_i2c_probe(struct udevice *bus, uint chip_addr, uint chip_flags,
|
||||
struct udevice **devp);
|
||||
|
||||
/**
|
||||
* dm_i2c_reg_read() - Read a value from an I2C register
|
||||
*
|
||||
* This reads a single value from the given address in an I2C chip
|
||||
*
|
||||
* @addr: Address to read from
|
||||
* @return value read, or -ve on error
|
||||
*/
|
||||
int dm_i2c_reg_read(struct udevice *dev, uint offset);
|
||||
|
||||
/**
|
||||
* dm_i2c_reg_write() - Write a value to an I2C register
|
||||
*
|
||||
* This writes a single value to the given address in an I2C chip
|
||||
*
|
||||
* @addr: Address to write to
|
||||
* @val: Value to write (normally a byte)
|
||||
* @return 0 on success, -ve on error
|
||||
*/
|
||||
int dm_i2c_reg_write(struct udevice *dev, uint offset, unsigned int val);
|
||||
|
||||
/**
|
||||
* dm_i2c_set_bus_speed() - set the speed of a bus
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user