This series of patches includes support, tests and fixes for adding PCA9552 and PCA9554 I2C devices to the powernv10 chip.
The PCA9552 device is used for PCIe slot hotplug power control and monitoring, while the PCA9554 device is used for presence detection of IBM CableCard devices. Both devices are required by the Power Hypervisor Firmware on the Power10 Ranier platform. Changes from previous version: - Made several changes to commit 9/9 to address comments from Cédric. - Added new PnvI2cCtlr struct to commit 9/9 for convenience in passing parameters. Glenn Miles (9): misc/pca9552: Fix inverted input status misc/pca9552: Let external devices set pca9552 inputs ppc/pnv: New powernv10-rainier machine type ppc/pnv: Add pca9552 to powernv10-rainier for PCIe hotplug power control ppc/pnv: Wire up pca9552 GPIO pins for PCIe hotplug power control ppc/pnv: Use resettable interface to reset child I2C buses misc: Add a pca9554 GPIO device model ppc/pnv: Add a pca9554 I2C device to powernv10-rainier ppc/pnv: Test pnv i2c master and connected devices MAINTAINERS | 10 +- hw/misc/Kconfig | 4 + hw/misc/meson.build | 1 + hw/misc/pca9552.c | 58 +++- hw/misc/pca9554.c | 328 +++++++++++++++++++++ hw/ppc/Kconfig | 2 + hw/ppc/pnv.c | 67 ++++- hw/ppc/pnv_i2c.c | 146 +--------- include/hw/i2c/pnv_i2c_regs.h | 143 ++++++++++ include/hw/misc/pca9552.h | 3 +- include/hw/misc/pca9554.h | 36 +++ include/hw/misc/pca9554_regs.h | 19 ++ include/hw/ppc/pnv.h | 1 + tests/qtest/meson.build | 1 + tests/qtest/pca9552-test.c | 6 +- tests/qtest/pnv-host-i2c-test.c | 491 ++++++++++++++++++++++++++++++++ tests/qtest/pnv-xscom-test.c | 61 +--- tests/qtest/pnv-xscom.h | 80 ++++++ 18 files changed, 1251 insertions(+), 206 deletions(-) create mode 100644 hw/misc/pca9554.c create mode 100644 include/hw/i2c/pnv_i2c_regs.h create mode 100644 include/hw/misc/pca9554.h create mode 100644 include/hw/misc/pca9554_regs.h create mode 100644 tests/qtest/pnv-host-i2c-test.c create mode 100644 tests/qtest/pnv-xscom.h -- 2.31.1