Motivation here is to improve debug prints and while doing so to remove some duplication and separate timing parameter validation from actual register writes as this parameter validation and/or calculation is needed to do only during probe. Currently debug code prints SCL timing parameters whenever HW is reinitialized but doesn't print importand SDA hold time nor actual bus speed the controller is going to operate. v2: - SDA hold time configuration moved from "Separate timing parameter setting from HW initalization" patch to a new patch as well as i2c_dw_clk_rate() cleanup. - New patch replacing ___constant_swab32() with swab32(). - Added Andys review by tags to patches 1-2. Jarkko Nikula (8): i2c: designware: Remove needless variable from i2c_dw_init_slave() i2c: designware: Move register access detection to common code i2c: designware: Don't use internal ___constant_swab32 i2c: designware: Move SDA hold time configuration to common code i2c: designware: Call i2c_dw_clk_rate() only once in i2c_dw_init_master() i2c: designware: Separate timing parameter setting from HW initalization i2c: designware: Add debug print for SDA hold time value i2c: designware: Add debug print for bus speed drivers/i2c/busses/i2c-designware-common.c | 73 ++++++++ drivers/i2c/busses/i2c-designware-core.h | 2 + drivers/i2c/busses/i2c-designware-master.c | 185 ++++++++++++--------- drivers/i2c/busses/i2c-designware-slave.c | 44 +---- 4 files changed, 185 insertions(+), 119 deletions(-) -- 2.17.0