There is no standard for the configuration register bits of LM75-like
chips. We shouldn't blindly clear bits setting the resolution as they
are either unused or used for something else on some of the supported
chips.
So, switch to per-chip configuration initialization. This will allow
for better tuning later, for example using more resolution bits when
available.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Guenter Roeck <linux@roeck-us.net>
         * Then tweak to be more precise when appropriate.
         */
        set_mask = 0;
-       clr_mask = (1 << 0)                     /* continuous conversions */
-               | (1 << 6) | (1 << 5);          /* 9-bit mode */
+       clr_mask = LM75_SHUTDOWN;               /* continuous conversions */
+
+       switch (id->driver_data) {
+       case adt75:
+               clr_mask |= 1 << 5;             /* not one-shot mode */
+               break;
+       case ds1775:
+       case ds75:
+       case stds75:
+               clr_mask |= 3 << 5;             /* 9-bit mode */
+               break;
+       case mcp980x:
+       case tmp100:
+       case tmp101:
+       case tmp105:
+       case tmp175:
+       case tmp275:
+       case tmp75:
+               clr_mask |= 3 << 5;             /* 9-bit mode */
+               clr_mask |= 1 << 7;             /* not one-shot mode */
+               break;
+       }
 
        /* configure as specified */
        status = lm75_read_value(client, LM75_REG_CONF);