From 2e10e74df72ff0f8ea65eb1ee6e39ed8278a91bf Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Sat, 25 Jul 2015 15:54:59 +0200 Subject: rtc: rx8025: fix transfer mode The datasheet specifies that transfer mode must be 0 for write and either 0x4 (simplified read) or 0 (standard read). 0x8 is not specified, use standard mode. Signed-off-by: Alexandre Belloni diff --git a/drivers/rtc/rtc-rx8025.c b/drivers/rtc/rtc-rx8025.c index 3612362..7715586 100644 --- a/drivers/rtc/rtc-rx8025.c +++ b/drivers/rtc/rtc-rx8025.c @@ -77,7 +77,7 @@ struct rx8025_data { static int rx8025_read_reg(struct i2c_client *client, int number, u8 *value) { - int ret = i2c_smbus_read_byte_data(client, (number << 4) | 0x08); + int ret = i2c_smbus_read_byte_data(client, number << 4); if (ret < 0) { dev_err(&client->dev, "Unable to read register #%d\n", number); @@ -91,7 +91,7 @@ static int rx8025_read_reg(struct i2c_client *client, int number, u8 *value) static int rx8025_read_regs(struct i2c_client *client, int number, u8 length, u8 *values) { - int ret = i2c_smbus_read_i2c_block_data(client, (number << 4) | 0x08, + int ret = i2c_smbus_read_i2c_block_data(client, number << 4, length, values); if (ret != length) { @@ -117,7 +117,7 @@ static int rx8025_write_reg(struct i2c_client *client, int number, u8 value) static int rx8025_write_regs(struct i2c_client *client, int number, u8 length, u8 *values) { - int ret = i2c_smbus_write_i2c_block_data(client, (number << 4) | 0x08, + int ret = i2c_smbus_write_i2c_block_data(client, number << 4, length, values); if (ret) -- cgit v0.10.2