hw/sensor: Add IC_DEVICE_ID to ISL voltage regulators

This commit adds a passthrough for PMBUS_IC_DEVICE_ID to allow Renesas
voltage regulators to return the integrated circuit device ID if they
would like to.

The behavior is very device specific, so it hasn't been added to the
general PMBUS model. Additionally, if the device ID hasn't been set,
then the voltage regulator will respond with the error byte value.  The
guest error message will change slightly for IC_DEVICE_ID with this
commit.

Signed-off-by: Peter Delevoryas <pdel@fb.com>
Reviewed-by: Titus Rwantare <titusr@google.com>
Message-Id: <20220701000626.77395-3-me@pjd.dev>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
Peter Delevoryas 2022-07-14 16:24:38 +02:00 committed by Cédric Le Goater
parent d272d1410c
commit e51ae82571
2 changed files with 17 additions and 0 deletions

View file

@ -15,6 +15,18 @@
static uint8_t isl_pmbus_vr_read_byte(PMBusDevice *pmdev)
{
ISLState *s = ISL69260(pmdev);
switch (pmdev->code) {
case PMBUS_IC_DEVICE_ID:
if (!s->ic_device_id_len) {
break;
}
pmbus_send(pmdev, s->ic_device_id, s->ic_device_id_len);
pmbus_idle(pmdev);
return 0;
}
qemu_log_mask(LOG_GUEST_ERROR,
"%s: reading from unsupported register: 0x%02x\n",
__func__, pmdev->code);