On Wed, May 19, 2021 at 09:49:57AM -0700, Titus Rwantare wrote: > Hello, > > This patch series adds an interface to start supporting PMBus devices in QEMU. > I’ve included two PMBus devices: MAX34451 and ADM1272. >
Ok, I've added this to my next tree. I moved the files to the sensor directory, too. -corey > PMBus is a variant of SMBus meant for digital management of power supplies. > PMBus adds to the SMBus standard by defining a number of constants and > commands > used by compliant devices. The specification for PMBus can be found at: > > https://pmbus.org/specification-archives/ > > Currently, the goal for these devices is to emulate basic functionality by > reading and writing registers. Timing, and some logical operation is not > implemented. This implementation supports nearly all available registers for > PMBus including: > - Voltage inputs and outputs > - Current inputs and outputs > - Temperature sensors > > Unimplimented registers get passed through to the device model, and device > models can opt out of using the standard registers with flags. The included > devices make use of these fields and illustrate how to interface with the > pmbus > class. > > Datasheets for sensors: > > https://datasheets.maximintegrated.com/en/ds/MAX34451.pdf > https://www.analog.com/media/en/technical-documentation/data-sheets/ADM1272.pdf > > Since v3: > - added VMState descriptions. Adding PMBusPage info to the vmsd has proven to > be tricky, it's a TODO for now. > > Since v2: > - bump for feedback > - removed commented out code > > Since v1: > - addressed Joel's comments > - split out tests into their own patches > > Thanks for reviewing, > > Titus Rwantare > > Titus Rwantare (5): > hw/i2c: add support for PMBus > hw/misc: add ADM1272 device > tests/qtest: add tests for ADM1272 device model > hw/misc: add MAX34451 device > tests/qtest: add tests for MAX34451 device model > > include/hw/i2c/pmbus_device.h | 517 +++++++++++ > hw/i2c/pmbus_device.c | 1612 +++++++++++++++++++++++++++++++++ > hw/misc/adm1272.c | 544 +++++++++++ > hw/misc/max34451.c | 775 ++++++++++++++++ > tests/qtest/adm1272-test.c | 445 +++++++++ > tests/qtest/max34451-test.c | 336 +++++++ > hw/arm/Kconfig | 3 + > hw/i2c/Kconfig | 4 + > hw/i2c/meson.build | 1 + > hw/misc/Kconfig | 8 + > hw/misc/meson.build | 2 + > tests/qtest/meson.build | 2 + > 12 files changed, 4249 insertions(+) > create mode 100644 include/hw/i2c/pmbus_device.h > create mode 100644 hw/i2c/pmbus_device.c > create mode 100644 hw/misc/adm1272.c > create mode 100644 hw/misc/max34451.c > create mode 100644 tests/qtest/adm1272-test.c > create mode 100644 tests/qtest/max34451-test.c > > -- > 2.31.1.751.gd2f1c929bd-goog >