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:
parent
d272d1410c
commit
e51ae82571
@ -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);
|
||||
|
@ -12,12 +12,17 @@
|
||||
#include "hw/i2c/pmbus_device.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_ISL69259 "isl69259"
|
||||
#define TYPE_ISL69260 "isl69260"
|
||||
#define TYPE_RAA228000 "raa228000"
|
||||
#define TYPE_RAA229004 "raa229004"
|
||||
#define ISL_MAX_IC_DEVICE_ID_LEN 16
|
||||
|
||||
struct ISLState {
|
||||
PMBusDevice parent;
|
||||
|
||||
uint8_t ic_device_id[ISL_MAX_IC_DEVICE_ID_LEN];
|
||||
uint8_t ic_device_id_len;
|
||||
};
|
||||
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(ISLState, ISL69260)
|
||||
|
Loading…
Reference in New Issue
Block a user