On 6/9/24 17:49, Philippe Mathieu-Daudé wrote:
> From: Guenter Roeck <linux@roeck-us.net>
>
> 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>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> 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 f5101af919..9d7b911f59 100644
> --- a/hw/sensor/tmp105.c
> +++ b/hw/sensor/tmp105.c
> @@ -171,7 +171,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, false);
> break;