diff mbox

hwmon: adt7411: set bit 3 in CFG1 register

Message ID 1468939406-25461-1-git-send-email-michael@walle.cc (mailing list archive)
State Accepted
Headers show

Commit Message

Michael Walle July 19, 2016, 2:43 p.m. UTC
According to the datasheet you should only write 1 to this bit. If it is
not set, at least AIN3 will return bad values on newer silicon revisions.

Fixes: d84ca5b345c2 ("hwmon: Add driver for ADT7411 voltage and temperature sensor")
Signed-off-by: Michael Walle <michael@walle.cc>
---

This is v2 of the previous patch "hwmon: adt7411: add rev5 workaround".

Changes since v1:
 - use adt7411_modify_bit once with a bitmask
 - change wording of the commit message and the comment. Just mention
   that the datasheet requires to set this bit on writes.

 drivers/hwmon/adt7411.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Guenter Roeck July 20, 2016, 1:55 a.m. UTC | #1
On 07/19/2016 07:43 AM, Michael Walle wrote:
> According to the datasheet you should only write 1 to this bit. If it is
> not set, at least AIN3 will return bad values on newer silicon revisions.
>
> Fixes: d84ca5b345c2 ("hwmon: Add driver for ADT7411 voltage and temperature sensor")
> Signed-off-by: Michael Walle <michael@walle.cc>

Applied.

Thanks,
Guenter

> ---
>
> This is v2 of the previous patch "hwmon: adt7411: add rev5 workaround".
>
> Changes since v1:
>   - use adt7411_modify_bit once with a bitmask
>   - change wording of the commit message and the comment. Just mention
>     that the datasheet requires to set this bit on writes.
>
>   drivers/hwmon/adt7411.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/adt7411.c b/drivers/hwmon/adt7411.c
> index 827c037..a7f8869 100644
> --- a/drivers/hwmon/adt7411.c
> +++ b/drivers/hwmon/adt7411.c
> @@ -30,6 +30,7 @@
>
>   #define ADT7411_REG_CFG1			0x18
>   #define ADT7411_CFG1_START_MONITOR		(1 << 0)
> +#define ADT7411_CFG1_RESERVED_BIT3		(1 << 3)
>
>   #define ADT7411_REG_CFG2			0x19
>   #define ADT7411_CFG2_DISABLE_AVG		(1 << 5)
> @@ -296,8 +297,10 @@ static int adt7411_probe(struct i2c_client *client,
>   	mutex_init(&data->device_lock);
>   	mutex_init(&data->update_lock);
>
> +	/* According to the datasheet, we must only write 1 to bit 3 */
>   	ret = adt7411_modify_bit(client, ADT7411_REG_CFG1,
> -				 ADT7411_CFG1_START_MONITOR, 1);
> +				 ADT7411_CFG1_RESERVED_BIT3
> +				 | ADT7411_CFG1_START_MONITOR, 1);
>   	if (ret < 0)
>   		return ret;
>
>

--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/hwmon/adt7411.c b/drivers/hwmon/adt7411.c
index 827c037..a7f8869 100644
--- a/drivers/hwmon/adt7411.c
+++ b/drivers/hwmon/adt7411.c
@@ -30,6 +30,7 @@ 
 
 #define ADT7411_REG_CFG1			0x18
 #define ADT7411_CFG1_START_MONITOR		(1 << 0)
+#define ADT7411_CFG1_RESERVED_BIT3		(1 << 3)
 
 #define ADT7411_REG_CFG2			0x19
 #define ADT7411_CFG2_DISABLE_AVG		(1 << 5)
@@ -296,8 +297,10 @@  static int adt7411_probe(struct i2c_client *client,
 	mutex_init(&data->device_lock);
 	mutex_init(&data->update_lock);
 
+	/* According to the datasheet, we must only write 1 to bit 3 */
 	ret = adt7411_modify_bit(client, ADT7411_REG_CFG1,
-				 ADT7411_CFG1_START_MONITOR, 1);
+				 ADT7411_CFG1_RESERVED_BIT3
+				 | ADT7411_CFG1_START_MONITOR, 1);
 	if (ret < 0)
 		return ret;