v9->v10: * fixed style issues that were checked out by checkpatch.pl. * In Patch 3 in wmt_i2c_write() function, deleted the log when received nack. * In Patch 4 in viai2c_irq_xfer() function, return 1 for I2C_SMBUS_QUICK access. * In Patch 6 in zxi2c_get_bus_speed() function, adjusted the log when firmware gives inappropriate parameters. Link: https://lore.kernel.org/all/20240306212413.1850236-1-andi.shyti@xxxxxxxxxx/ v8->v9: * In Patch 1 in probe() do not return at the i2c_add_adapter(), but call clk_disable_unprepare() in case of failure. * In Patch 2 fix the conflict when i2c-wmt.c is removed. * In Patch 2 in wmt_i2c_probe() function, call clk_disable_unprepare() in case of failure. While at it, add a comment to explain the reason. * When renaming i2c_dev to i2c, change also the reference in clk_disable_unprepare(). Link: https://lore.kernel.org/all/20240306212413.1850236-1-andi.shyti@xxxxxxxxxx/ v7->v8: * move per-msg handling to interrupt context * add private struct viai2c_zhaoxin to handle zhaoxin specific things * fixed some other formatting issues Link: https://lore.kernel.org/all/cover.1704440251.git.hanshu-oc@xxxxxxxxxxx/ v6->v7: * adjust the patch sequence * put those renaming related patches in 1 patch file * rename i2c-*-plt.c to i2c-viai2c-*.c * Some other adjustments suggested by Andi For more details, see the comment in each patch please. Link: https://lore.kernel.org/all/cover.1703830854.git.hanshu-oc@xxxxxxxxxxx/ v5->v6: * fix build warnning reported by kernel test robot. Link: https://lore.kernel.org/all/202312291225.cWVt6YF9-lkp@xxxxxxxxx/ Link: https://lore.kernel.org/all/cover.1703733126.git.hanshu-oc@xxxxxxxxxxx/ v4->v5: * fix 1 build error. Link: https://lore.kernel.org/all/ZYx0VPVmyQhtG+B9@shikoro/1-a.txt Link: https://lore.kernel.org/all/cover.1703647471.git.hanshu-oc@xxxxxxxxxxx/ v3->v4: * Some adjustments as suggested by Wolfram. * rebase patch on top of for-next branch. Link: https://lore.kernel.org/all/cover.1698889581.git.hanshu-oc@xxxxxxxxxxx/ v2->v3: * Split the number of patches from 2 to 12. Make it easier to review. Link: https://lore.kernel.org/all/cover.1691999569.git.hanshu-oc@xxxxxxxxxxx/ v1->v2: * Fixed some bugs I found myself. Link: https://lore.kernel.org/all/cover.1691030850.git.hanshu-oc@xxxxxxxxxxx/ Old version: This patch has already gone through a round of reviews. The difference from the first round is that it reuses the i2c-wmt driver. Link: https://lore.kernel.org/all/20230614094858.317652-1-hanshu-oc@xxxxxxxxxxx/ Signed-off-by: Hans Hu <hanshu-oc@xxxxxxxxxxx> Hans Hu (6): i2c: wmt: create wmt_i2c_init for general init i2c: wmt: split out common files i2c: wmt: rename something i2c: wmt: fix a bug when thread blocked i2c: wmt: add platform type VIAI2C_PLAT_WMT i2c: add zhaoxin i2c controller driver MAINTAINERS | 10 +- drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 3 + drivers/i2c/busses/i2c-viai2c-common.c | 256 ++++++++++++++ drivers/i2c/busses/i2c-viai2c-common.h | 85 +++++ drivers/i2c/busses/i2c-viai2c-wmt.c | 148 +++++++++ drivers/i2c/busses/i2c-viai2c-zhaoxin.c | 298 +++++++++++++++++ drivers/i2c/busses/i2c-wmt.c | 421 ------------------------ 8 files changed, 809 insertions(+), 422 deletions(-) create mode 100644 drivers/i2c/busses/i2c-viai2c-common.c create mode 100644 drivers/i2c/busses/i2c-viai2c-common.h create mode 100644 drivers/i2c/busses/i2c-viai2c-wmt.c create mode 100644 drivers/i2c/busses/i2c-viai2c-zhaoxin.c delete mode 100644 drivers/i2c/busses/i2c-wmt.c -- 2.34.1