#define W83795_REG_I2C_ADDR 0xfc
#define W83795_REG_CONFIG 0x01
#define W83795_REG_CONFIG_CONFIG48 0x04
+#define W83795_REG_CONFIG_START 0x01
/* Multi-Function Pin Ctrl Registers */
#define W83795_REG_VOLT_CTRL1 0x02
static void w83795_init_client(struct i2c_client *client)
{
+ u8 config;
+
if (reset)
w83795_write(client, W83795_REG_CONFIG, 0x80);
- /* Start monitoring */
- w83795_write(client, W83795_REG_CONFIG,
- w83795_read(client, W83795_REG_CONFIG) | 0x01);
+ /* Start monitoring if needed */
+ config = w83795_read(client, W83795_REG_CONFIG);
+ if (!(config & W83795_REG_CONFIG_START)) {
+ dev_info(&client->dev, "Enabling monitoring operations\n");
+ w83795_write(client, W83795_REG_CONFIG,
+ config | W83795_REG_CONFIG_START);
+ }
}
static int w83795_get_device_id(struct i2c_client *client)