Hello, Because the designware IP was not able to handle the SDA hold time before version 1.11a, MSCC has its own implementation. Add support for it and then add i2c on ocelot boards. I would expect patches 1 to 5 to go through the i2c tree. Pathces 6-7 can go through the mips tree now that the bindings have been reviewed. Changes in v5: - rebased on v4.19-rc1 - collected review, test and ack tags - renamed the bindings documentation patch Changes in v4: - collected review and ack tags - split bindings to a separate patch Changes in v3: - collected review tags - fixed build warnings on 64bit machines Changes in v2: - removed first patch as a similar one is in i2c-next - rebase on top of i2c-next - Added two patches to implement ideas from Andy Alexandre Belloni (7): i2c: designware: use generic table matching i2c: designware: move #ifdef CONFIG_OF to the top i2c: designware: allow IP specific sda_hold_time dt-bindings: i2c: designware: document MSCC Ocelot bindings i2c: designware: add MSCC Ocelot support MIPS: dts: mscc: Add i2c on ocelot MIPS: dts: mscc: enable i2c on ocelot_pcb123 .../bindings/i2c/i2c-designware.txt | 7 ++- arch/mips/boot/dts/mscc/ocelot.dtsi | 19 ++++++ arch/mips/boot/dts/mscc/ocelot_pcb123.dts | 6 ++ drivers/i2c/busses/i2c-designware-common.c | 2 + drivers/i2c/busses/i2c-designware-core.h | 4 ++ drivers/i2c/busses/i2c-designware-platdrv.c | 63 +++++++++++++++---- 6 files changed, 87 insertions(+), 14 deletions(-) -- 2.19.0.rc1