[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 09/14] hw/sensor: Add IC_DEVICE_ID to ISL voltage regulators
From: |
Peter Delevoryas |
Subject: |
[PATCH v3 09/14] hw/sensor: Add IC_DEVICE_ID to ISL voltage regulators |
Date: |
Wed, 29 Jun 2022 21:51:28 -0700 |
From: Peter Delevoryas <pdel@fb.com>
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>
---
hw/sensor/isl_pmbus_vr.c | 12 ++++++++++++
include/hw/sensor/isl_pmbus_vr.h | 5 +++++
2 files changed, 17 insertions(+)
diff --git a/hw/sensor/isl_pmbus_vr.c b/hw/sensor/isl_pmbus_vr.c
index e11e028884..799ea9d89e 100644
--- a/hw/sensor/isl_pmbus_vr.c
+++ b/hw/sensor/isl_pmbus_vr.c
@@ -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);
diff --git a/include/hw/sensor/isl_pmbus_vr.h b/include/hw/sensor/isl_pmbus_vr.h
index 3e47ff7e48..aa2c2767df 100644
--- a/include/hw/sensor/isl_pmbus_vr.h
+++ b/include/hw/sensor/isl_pmbus_vr.h
@@ -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)
--
2.37.0
- [PATCH v3 00/14] hw/i2c/aspeed: I2C slave mode DMA RX w/ new regs, Peter Delevoryas, 2022/06/30
- [PATCH v3 01/14] hw/i2c/aspeed: Fix R_I2CD_FUN_CTRL reference, Peter Delevoryas, 2022/06/30
- [PATCH v3 02/14] hw/i2c/aspeed: Fix DMA len write-enable bit handling, Peter Delevoryas, 2022/06/30
- [PATCH v3 03/14] hw/i2c/aspeed: Fix MASTER_EN missing error message, Peter Delevoryas, 2022/06/30
- [PATCH v3 04/14] hw/i2c: support multiple masters, Peter Delevoryas, 2022/06/30
- [PATCH v3 05/14] hw/i2c: add asynchronous send, Peter Delevoryas, 2022/06/30
- [PATCH v3 06/14] hw/i2c/aspeed: add slave device in old register mode, Peter Delevoryas, 2022/06/30
- [PATCH v3 07/14] hw/i2c/aspeed: Add new-registers DMA slave mode RX support, Peter Delevoryas, 2022/06/30
- [PATCH v3 08/14] hw/i2c/pmbus: Add idle state to return 0xff's, Peter Delevoryas, 2022/06/30
- [PATCH v3 09/14] hw/sensor: Add IC_DEVICE_ID to ISL voltage regulators,
Peter Delevoryas <=
- [PATCH v3 10/14] hw/sensor: Add Renesas ISL69259 device model, Peter Delevoryas, 2022/06/30
- [PATCH v3 11/14] hw/misc/aspeed: Add PECI controller, Peter Delevoryas, 2022/06/30
- [PATCH v3 12/14] hw/misc/aspeed: Add fby35-sb-cpld, Peter Delevoryas, 2022/06/30