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
>