
On Thu, 2019-05-09 at 08:20 +0200, Anatolij Gustschin wrote:
On Wed, 8 May 2019 23:30:01 +0000 Trent Piepho tpiepho@impinj.com wrote: ...
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c index 69fbc8b690..9d7a94ff9d 100644 --- a/board/wandboard/wandboard.c +++ b/board/wandboard/wandboard.c @@ -46,6 +46,15 @@ DECLARE_GLOBAL_DATA_PTR; #define ETH_PHY_AR8035_POWER IMX_GPIO_NR(7, 13) #define REV_DETECTION IMX_GPIO_NR(2, 28)
+/* Speed defined in Kconfig is only applicable when not using DM_I2C. */ +#ifdef CONFIG_DM_I2C +#define I2C1_SPEED_NON_DM 0 +#define I2C2_SPEED_NON_DM 0 +#else +#define I2C1_SPEED_NON_DM CONFIG_SYS_MXC_I2C1_SPEED +#define I2C2_SPEED_NON_DM CONFIG_SYS_MXC_I2C2_SPEED
Shouldn't we change this to
#ifdef CONFIG_DM_I2C #define I2C2_SPEED_NON_DM 0 #define I2C3_SPEED_NON_DM 0 #else #define I2C2_SPEED_NON_DM CONFIG_SYS_MXC_I2C2_SPEED #define I2C3_SPEED_NON_DM CONFIG_SYS_MXC_I2C3_SPEED #endif ... setup_i2c(1, I2C2_SPEED_NON_DM, 0x7f, &mx6q_i2c2_pad_info); setup_i2c(2, I2C3_SPEED_NON_DM, 0x7f, &mx6q_i2c3_pad_info); ?
Because the first argument to setup_i2c() is the bus number which starts counting from 0, but the CONFIG_SYS_MXC_I2C* start counting from 1. This doesn't affect the actual configuration since the speed value is currently the same for all buses. But it is more accurate.
Seems like it should have been, but the existing code uses I2C1_SPEED and I2C2_SPEED. Probably a bug. But if I change it here, then it will affect existing config files, which were done when the bug existed.
Also I see it calls setup_i2c(1, ...) twice, which seems like another bug.