All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] hw/i2c: PMBus updates and adm1266 fixes
@ 2026-07-29 23:13 Titus Rwantare
  2026-07-29 23:13 ` [PATCH 1/8] osdep: add DIV_ROUND_CLOSEST Titus Rwantare
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Titus Rwantare @ 2026-07-29 23:13 UTC (permalink / raw)
  To: peter.maydell
  Cc: qemu-arm, qemu-devel, kfting, imaginos32, wuhaotsh, philmd,
	fanjason, Titus Rwantare

This series adds various fixes to PMBus and SMBus support.

Since v1:
- Added the adm1266 patches that fix accessing the MFR_* registers
- Fixed vout_mode handling to avoid values overflowing/being truncated
  by the adm1266 implementation.
- Added fix for PMBus vout_mode bug where guests accesses would break
  due to the bitfields being packed in the wrong order.
- Updated VMState to work around breaking migration while still storing
  the increased SMBus data.

The maximum SMBus data length is increased to 257 bytes, (payload is 255 bytes) to support SMBus 3.0 block transfers. SMBus devices don’t have to report their specification version, and this change allows us to enable newer PMBus devices that are based on top of SMBus 3.0.

Additionally, this series:
  - Adds the `DIV_ROUND_CLOSEST` helper macro, lifted from the linux implementation, to match the rounding in linux drivers.
  - Adds PMBus helper functions to convert sensor values in milliunits to/from linear mode format (Linear16).

Jason Fan (1):
  hw/i2c: fix VOUT_MODE representation on little-endian machines

Titus Rwantare (7):
  osdep: add DIV_ROUND_CLOSEST
  hw/i2c: pmbus: add milliunits linear mode functions
  hw/i2c: smbus: increase MAX_DATA_LEN
  hw/sensor: update adm1266 block transfers
  hw/sensor: switch adm1266 to millivolts vout
  hw/sensor: adm1266: expose vout_mode over QMP
  hw/sensor: adm1266: set default VOUT mode

 hw/i2c/pmbus_device.c         |  39 +++++++
 hw/i2c/smbus_slave.c          |  27 ++++-
 hw/sensor/adm1266.c           | 176 +++++++++++++++++++++++-----
 include/hw/i2c/pmbus_device.h |  25 ++++
 include/hw/i2c/smbus_slave.h  |   2 +-
 include/qemu/osdep.h          |  13 +++
 tests/qtest/adm1266-test.c    | 210 ++++++++++++++++++++++++++++++++--
 7 files changed, 452 insertions(+), 40 deletions(-)

-- 
2.55.0.508.g3f0d502094-goog



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2026-07-30 12:40 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-29 23:13 [PATCH 0/8] hw/i2c: PMBus updates and adm1266 fixes Titus Rwantare
2026-07-29 23:13 ` [PATCH 1/8] osdep: add DIV_ROUND_CLOSEST Titus Rwantare
2026-07-30 12:28   ` Peter Maydell
2026-07-29 23:13 ` [PATCH 2/8] hw/i2c: pmbus: add milliunits linear mode functions Titus Rwantare
2026-07-29 23:13 ` [PATCH 3/8] hw/i2c: smbus: increase MAX_DATA_LEN Titus Rwantare
2026-07-30 12:29   ` Peter Maydell
2026-07-29 23:13 ` [PATCH 4/8] hw/sensor: update adm1266 block transfers Titus Rwantare
2026-07-29 23:13 ` [PATCH 5/8] hw/sensor: switch adm1266 to millivolts vout Titus Rwantare
2026-07-30 12:38   ` Peter Maydell
2026-07-29 23:13 ` [PATCH 6/8] hw/i2c: fix VOUT_MODE representation on little-endian machines Titus Rwantare
2026-07-30 12:39   ` Peter Maydell
2026-07-29 23:13 ` [PATCH 7/8] hw/sensor: adm1266: expose vout_mode over QMP Titus Rwantare
2026-07-29 23:13 ` [PATCH 8/8] hw/sensor: adm1266: set default VOUT mode Titus Rwantare

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.