Hello everyone.. I'm trying to get my beagle bone to communicate over I2C with the new Maxbotix I2CXL line of sonar sensors http://www.maxbotix.com/documents/I2CXL-MaxSonar-EZ_Datasheet.pdf According to the data sheet I need to write a single byte of 0x51 to the sensor to tell it to send out the sonar pulse and then wait up to 60ms (i.e. until the pulse comes back). At that point I need to read two bytes from the device, without sending a register address. This appears very similar to the i2c_smbus_read_byte() call, except that I need to read two bytes, not just one. It appears that all the calls that read more than one byte require that I pass in a register address. When I use i2ctools I get this: (0x70 is the I2C address of the sensor, and 0x51 is the sonar range command) $ i2cset -y 3 0x70 0x51 $ i2cget -y 3 0x70 0x00 so it looks like I'm getting the MSB but according to the data sheet the sonar sends a second byte representing the LSB. Does the i2c driver support this directly? Do I need to modify the driver or can I use i2c_smbus_xfer to accomplish the task? I have not been able to understand the API to i2c_smbus_xfer from reviewing the source code. Thanks, -- Sameer Parekh Falkor Systems, Inc. -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html