Signed-off-by: Titus Rwantare <titusr@google.com>
Reviewed-by: Hao Wu <wuhaotsh@google.com>
---
hw/sensor/isl_pmbus_vr.c | 50 ++++++++++++++++++++
include/hw/sensor/isl_pmbus_vr.h | 1 +
tests/qtest/isl_pmbus_vr-test.c | 78 ++++++++++++++++++++++++++++++--
3 files changed, 126 insertions(+), 3 deletions(-)
diff --git a/hw/sensor/isl_pmbus_vr.c b/hw/sensor/isl_pmbus_vr.c
index e260faeac3..df7c003ea6 100644
--- a/hw/sensor/isl_pmbus_vr.c
+++ b/hw/sensor/isl_pmbus_vr.c
@@ -89,6 +89,24 @@ static void isl_pmbus_vr_exit_reset(Object *obj)
}
}
+/* The raa228000 uses different direct mode coefficents from most isl devices */
+static void raa228000_exit_reset(Object *obj)
+{
+ isl_pmbus_vr_exit_reset(obj);
+
+ PMBusDevice *pmdev = PMBUS_DEVICE(obj);
/* test qmp access */
static void test_tx_rx(void *obj, void *data, QGuestAllocator *alloc)
{
@@ -384,9 +448,6 @@ static void isl_pmbus_vr_register_nodes(void)
qos_node_create_driver("isl69260", i2c_device_create);
qos_node_consumes("isl69260", "i2c-bus", &opts);
- qos_node_create_driver("raa229004", i2c_device_create);
- qos_node_consumes("raa229004", "i2c-bus", &opts);
-
qos_add_test("test_defaults", "isl69260", test_defaults, NULL);
qos_add_test("test_tx_rx", "isl69260", test_tx_rx, NULL);
qos_add_test("test_rw_regs", "isl69260", test_rw_regs, NULL);
@@ -394,9 +455,20 @@ static void isl_pmbus_vr_register_nodes(void)
qos_add_test("test_ro_regs", "isl69260", test_ro_regs, NULL);
qos_add_test("test_ov_faults", "isl69260", test_voltage_faults, NULL);
+ qos_node_create_driver("raa229004", i2c_device_create);
+ qos_node_consumes("raa229004", "i2c-bus", &opts);
+
qos_add_test("test_tx_rx", "raa229004", test_tx_rx, NULL);
qos_add_test("test_rw_regs", "raa229004", test_rw_regs, NULL);
qos_add_test("test_pages_rw", "raa229004", test_pages_rw, NULL);
qos_add_test("test_ov_faults", "raa229004", test_voltage_faults, NULL);