Hi Andi, As discussed earlier, the Zhaoxin i2c controller uses the same IP as Wonder Media. Therefore, some codes of i2c-wmt.c can be re-used by i2c-zhaoxin.c. As you suggested, I created two files, named i2c-viai2c-common.{c,h}. They contains the macro definition, function declaration and data structure used by i2c-zhaoxin.c and i2c-wmt.c. Hans Hu (2): i2c: separate i2c-viai2c-common from i2c-wmt i2c: add support for Zhaoxin I2C controller MAINTAINERS | 7 + drivers/i2c/busses/Kconfig | 15 + drivers/i2c/busses/Makefile | 2 + drivers/i2c/busses/i2c-viai2c-common.c | 239 +++++++++++++++ drivers/i2c/busses/i2c-viai2c-common.h | 76 +++++ drivers/i2c/busses/i2c-wmt.c | 402 ++----------------------- drivers/i2c/busses/i2c-zhaoxin.c | 275 +++++++++++++++++ 7 files changed, 645 insertions(+), 371 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-zhaoxin.c -- 2.34.1