hwmon: (lm75) Add support for TMP75B
authorIker Perez del Palomar Sustatxa <iker.perez@codethink.co.uk>
Fri, 3 May 2019 16:15:00 +0000 (17:15 +0100)
committerGuenter Roeck <linux@roeck-us.net>
Fri, 3 May 2019 20:16:18 +0000 (13:16 -0700)
The TMP75B has a different control register, supports 12-bit
resolution and the default conversion rate is 37 Hz.

Signed-off-by: Iker Perez del Palomar Sustatxa <iker.perez@codethink.co.uk>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/hwmon/lm75.rst
drivers/hwmon/lm75.c

index 6fd4d2d..ba8acbd 100644 (file)
@@ -93,9 +93,9 @@ Supported chips:
 
               https://www.st.com/resource/en/datasheet/stlm75.pdf
 
-  * Texas Instruments TMP100, TMP101, TMP105, TMP112, TMP75, TMP75C, TMP175, TMP275
+  * Texas Instruments TMP100, TMP101, TMP105, TMP112, TMP75, TMP75B, TMP75C, TMP175, TMP275
 
-    Prefixes: 'tmp100', 'tmp101', 'tmp105', 'tmp112', 'tmp175', 'tmp75', 'tmp75c', 'tmp275'
+    Prefixes: 'tmp100', 'tmp101', 'tmp105', 'tmp112', 'tmp175', 'tmp75', 'tmp75b', 'tmp75c', 'tmp275'
 
     Addresses scanned: none
 
@@ -111,6 +111,8 @@ Supported chips:
 
               http://www.ti.com/product/tmp75
 
+              http://www.ti.com/product/tmp75b
+
               http://www.ti.com/product/tmp75c
 
               http://www.ti.com/product/tmp175
index f307743..423a382 100644 (file)
@@ -59,6 +59,7 @@ enum lm75_type {              /* keep sorted in alphabetical order */
        tmp175,
        tmp275,
        tmp75,
+       tmp75b,
        tmp75c,
 };
 
@@ -354,6 +355,11 @@ lm75_probe(struct i2c_client *client, const struct i2c_device_id *id)
                data->resolution = 12;
                data->sample_time = MSEC_PER_SEC / 2;
                break;
+       case tmp75b:  /* not one-shot mode, Conversion rate 37Hz */
+               clr_mask |= 1 << 15 | 0x3 << 13;
+               data->resolution = 12;
+               data->sample_time = MSEC_PER_SEC / 37;
+               break;
        case tmp75c:
                clr_mask |= 1 << 5;             /* not one-shot mode */
                data->resolution = 12;
@@ -414,6 +420,7 @@ static const struct i2c_device_id lm75_ids[] = {
        { "tmp175", tmp175, },
        { "tmp275", tmp275, },
        { "tmp75", tmp75, },
+       { "tmp75b", tmp75b, },
        { "tmp75c", tmp75c, },
        { /* LIST END */ }
 };
@@ -512,6 +519,10 @@ static const struct of_device_id __maybe_unused lm75_of_match[] = {
                .compatible = "ti,tmp75",
                .data = (void *)tmp75
        },
+       {
+               .compatible = "ti,tmp75b",
+               .data = (void *)tmp75b
+       },
        {
                .compatible = "ti,tmp75c",
                .data = (void *)tmp75c