hw/sensor/tmp105: Pass 'oneshot' argument to tmp105_alarm_update()
The next commit will clear the ONE_SHOT bit in the WRITE path (to keep the READ path trivial). As a preliminary step, pass the 'oneshot' value as argument to tmp105_alarm_update(). No logical change intended. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Message-Id: <20240906154911.86803-4-philmd@linaro.org>
This commit is contained in:
parent
94a4e18cec
commit
0339fa7910
@ -40,10 +40,10 @@ static void tmp105_interrupt_update(TMP105State *s)
|
|||||||
qemu_set_irq(s->pin, s->alarm ^ FIELD_EX8(~s->config, CONFIG, POLARITY));
|
qemu_set_irq(s->pin, s->alarm ^ FIELD_EX8(~s->config, CONFIG, POLARITY));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tmp105_alarm_update(TMP105State *s)
|
static void tmp105_alarm_update(TMP105State *s, bool one_shot)
|
||||||
{
|
{
|
||||||
if (FIELD_EX8(s->config, CONFIG, SHUTDOWN_MODE)) {
|
if (FIELD_EX8(s->config, CONFIG, SHUTDOWN_MODE)) {
|
||||||
if (FIELD_EX8(s->config, CONFIG, ONE_SHOT)) {
|
if (one_shot) {
|
||||||
s->config = FIELD_DP8(s->config, CONFIG, ONE_SHOT, 0);
|
s->config = FIELD_DP8(s->config, CONFIG, ONE_SHOT, 0);
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
@ -119,7 +119,7 @@ static void tmp105_set_temperature(Object *obj, Visitor *v, const char *name,
|
|||||||
|
|
||||||
s->temperature = (int16_t) (temp * 256 / 1000);
|
s->temperature = (int16_t) (temp * 256 / 1000);
|
||||||
|
|
||||||
tmp105_alarm_update(s);
|
tmp105_alarm_update(s, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const int tmp105_faultq[4] = { 1, 2, 4, 6 };
|
static const int tmp105_faultq[4] = { 1, 2, 4, 6 };
|
||||||
@ -168,7 +168,7 @@ static void tmp105_write(TMP105State *s)
|
|||||||
}
|
}
|
||||||
s->config = s->buf[0];
|
s->config = s->buf[0];
|
||||||
s->faults = tmp105_faultq[FIELD_EX8(s->config, CONFIG, FAULT_QUEUE)];
|
s->faults = tmp105_faultq[FIELD_EX8(s->config, CONFIG, FAULT_QUEUE)];
|
||||||
tmp105_alarm_update(s);
|
tmp105_alarm_update(s, FIELD_EX8(s->buf[0], CONFIG, ONE_SHOT));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TMP105_REG_T_LOW:
|
case TMP105_REG_T_LOW:
|
||||||
@ -177,7 +177,7 @@ static void tmp105_write(TMP105State *s)
|
|||||||
s->limit[s->pointer & 1] = (int16_t)
|
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]);
|
||||||
}
|
}
|
||||||
tmp105_alarm_update(s);
|
tmp105_alarm_update(s, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user