[PATCH 3/3] tmp105: Lower 4 bit of limit registers are always 0

Guenter Roeck posted 3 patches 1 year, 5 months ago
There is a newer version of this series
[PATCH 3/3] tmp105: Lower 4 bit of limit registers are always 0
Posted by Guenter Roeck 1 year, 5 months ago
Per datasheet, "HIGH AND LOW LIMIT REGISTERS", the lower 4 bit
of the limit registers are unused and always report 0.
The lower 4 bit should not be used for temperature comparisons,
so mask the unused bits before storing the limits.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 hw/sensor/tmp105.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/sensor/tmp105.c b/hw/sensor/tmp105.c
index 22728798f7..5fd30f8d50 100644
--- a/hw/sensor/tmp105.c
+++ b/hw/sensor/tmp105.c
@@ -166,7 +166,7 @@ static void tmp105_write(TMP105State *s)
     case TMP105_REG_T_HIGH:
         if (s->len >= 3)
             s->limit[s->pointer & 1] = (int16_t)
-                    ((((uint16_t) s->buf[0]) << 8) | s->buf[1]);
+                    ((((uint16_t) s->buf[0]) << 8) | (s->buf[1] & 0xf0));
         tmp105_alarm_update(s);
         break;
     }
-- 
2.45.2