diff options
author | Irina Tirdea <irina.tirdea@intel.com> | 2015-08-12 17:31:33 +0300 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2015-08-24 15:05:19 +0300 |
commit | 01eef96e37d77cd89156e5f51aab81a9d5c96539 (patch) | |
tree | b6d1c3a0107448bdf6371fbe5b7d610594045ee9 /include | |
parent | 3f9c37a0c9a59db97ca5712eca7838b842949047 (diff) | |
download | linux-01eef96e37d77cd89156e5f51aab81a9d5c96539.tar.xz |
i2c: core: Add support for best effort block read emulation
There are devices that need to handle block transactions
regardless of the capabilities exported by the adapter.
For performance reasons, they need to use i2c read blocks
if available, otherwise emulate the block transaction with word
or byte transactions.
Add support for a helper function that would read a data block
using the best transfer available: I2C_FUNC_SMBUS_READ_I2C_BLOCK,
I2C_FUNC_SMBUS_READ_WORD_DATA or I2C_FUNC_SMBUS_READ_BYTE_DATA.
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/i2c.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 5aea07137218..768063baafbf 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -121,6 +121,9 @@ extern s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client, extern s32 i2c_smbus_write_i2c_block_data(const struct i2c_client *client, u8 command, u8 length, const u8 *values); +extern s32 +i2c_smbus_read_i2c_block_data_or_emulated(const struct i2c_client *client, + u8 command, u8 length, u8 *values); #endif /* I2C */ /** |