On 10/03/12 21:49, Wolfram Sang wrote:
quoted
-static void isp1301_configure(void) +static u16 i2c_read16(u8
subaddr) +{ + u16 data; + + i2c_master_send(isp1301_i2c_client,
&subaddr, 1); + i2c_master_recv(isp1301_i2c_client, (u8 *) &data,
2); + + return data; +}
Won't i2c_smbus_read_word_data(isp1301_i2c_client, reg) do?
Yes, thank you for the hint! Replaced i2c_read16() with
i2c_smbus_read_word_data() calls.
And while we are at it: Could you also try replacing i2c_write()
with i2c_smbus_write_byte_data(isp1301_i2c_client, reg, val)?
Interestingly now, replacing i2c_write() calls with
i2c_smbus_write_byte_data() did _not_ work (hardware initialization
failure). I guess this is due to the differences between i2c and
smbus, and the hardware only handles the former correctly?
Roland