PMCI(Platform Management Control Interface) is a software-visible interface, connected to card BMC which provided telemetry and mailbox functionalities for Intel PAC FPGA card. Currently, intel-m10-bmc driver support Intel MAX10 BMC functions via SPI interface. To support multiple bus interfaces, splits the common code from intel-m10-bmc driver into intel-m10-bmc-core. On the other hand, it leverages the regmap APIs to support Intel specific Indirect Register Interface for register read/write on PMCI driver. This patchset adding a driver for the PMCI-base interface of Intel MAX10 BMC controller. patch 1: use ddata for local variables which directly interacts with dev_get_drvdata()/dev_set_drvdata(). patch 2: split the common code from intel-m10-bmc driver into intel-m10-bmc-core. patch 3: add a driver for PMCI. patch 4: introduce a new data structure m10bmc_csr for the different register definition of MAX10 CSRs. v2: - use regmap APIs to support Intel specific Indirect Register Interface on PMCI driver. - fix compile warning reported by lkp. - rebased on 5.19-rc2 Tianfei Zhang (4): mfd: intel-m10-bmc: rename the local variables mfd: intel-m10-bmc: split into core and spi mfd: intel-m10-bmc: add PMCI driver mfd: intel-m10-bmc: support multiple register layouts .../ABI/testing/sysfs-driver-intel-m10-bmc | 8 +- drivers/mfd/Kconfig | 34 +++- drivers/mfd/Makefile | 6 +- .../{intel-m10-bmc.c => intel-m10-bmc-core.c} | 148 ++++++-------- drivers/mfd/intel-m10-bmc-pmci.c | 190 ++++++++++++++++++ drivers/mfd/intel-m10-bmc-spi.c | 83 ++++++++ include/linux/mfd/intel-m10-bmc.h | 43 +++- 7 files changed, 413 insertions(+), 99 deletions(-) rename drivers/mfd/{intel-m10-bmc.c => intel-m10-bmc-core.c} (56%) create mode 100644 drivers/mfd/intel-m10-bmc-pmci.c create mode 100644 drivers/mfd/intel-m10-bmc-spi.c -- 2.26.2