mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 05:31:32 +00:00
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
2 changed files with 40 additions and 0 deletions
|
@ -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
|
* 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,
|
int dm_i2c_probe(struct udevice *bus, uint chip_addr, uint chip_flags,
|
||||||
struct udevice **devp);
|
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
|
* dm_i2c_set_bus_speed() - set the speed of a bus
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue