Title: [6490] trunk/drivers/i2c/busses/i2c-bfin-twi.c: Related to [#5146] Develop Linux driver for ADXL345/346 Three-Axis
- Revision
- 6490
- Author
- hennerich
- Date
- 2009-05-27 04:24:10 -0500 (Wed, 27 May 2009)
Log Message
Related to [#5146] Develop Linux driver for ADXL345/346 Three-Axis
Digital Accelerometers
Implement I2C_FUNC_SMBUS_I2C_BLOCK functionality.
This will allow to use
I2C Block Read: i2c_smbus_read_i2c_block_data()
S Addr Wr [A] Comm [A]
S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P
I2C Block Read (2 Comm bytes)
S Addr Wr [A] Comm1 [A] Comm2 [A]
S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P
Modified Paths
Diff
Modified: trunk/drivers/i2c/busses/i2c-bfin-twi.c (6489 => 6490)
--- trunk/drivers/i2c/busses/i2c-bfin-twi.c 2009-05-27 09:22:20 UTC (rev 6489)
+++ trunk/drivers/i2c/busses/i2c-bfin-twi.c 2009-05-27 09:24:10 UTC (rev 6490)
@@ -449,6 +449,16 @@
}
iface->transPtr = data->block;
break;
+ case I2C_SMBUS_I2C_BLOCK_DATA:
+ if (read_write == I2C_SMBUS_READ) {
+ iface->readNum = data->block[0];
+ iface->cur_mode = TWI_I2C_MODE_COMBINED;
+ } else {
+ iface->writeNum = data->block[0];
+ iface->cur_mode = TWI_I2C_MODE_STANDARDSUB;
+ }
+ iface->transPtr = data->block;
+ break;
default:
return -1;
}
@@ -572,7 +582,7 @@
return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE |
I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA |
I2C_FUNC_SMBUS_BLOCK_DATA | I2C_FUNC_SMBUS_PROC_CALL |
- I2C_FUNC_I2C;
+ I2C_FUNC_I2C | I2C_FUNC_SMBUS_I2C_BLOCK;
}
static struct i2c_algorithm bfin_twi_algorithm = {
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits