From patchwork Thu Feb 13 20:24:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 236317 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Thu, 13 Feb 2020 13:24:55 -0700 Subject: [PATCH] i2c: designware_i2c: Correct the selection of speed mode Message-ID: <20200213132452.1.I9fa6b7a8f7c3b13b4206f4d7c73aac809400afd5@changeid> Unfortunately a recent change adjusted the order of the checks here such that 400MHz now shows up as fast-plus speed (1Mbps). Fix it. Signed-off-by: Simon Glass Fixes: d96440d1e3 ("i2c: designware_i2c: Add support for fast-plus speed") Reviewed-by: Heiko Schocher --- drivers/i2c/designware_i2c.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/designware_i2c.c b/drivers/i2c/designware_i2c.c index e1d5aeb19d..0b5e70af59 100644 --- a/drivers/i2c/designware_i2c.c +++ b/drivers/i2c/designware_i2c.c @@ -212,9 +212,9 @@ static int calc_bus_speed(struct dw_i2c *priv, int speed, ulong bus_clk, if (speed >= I2C_SPEED_HIGH_RATE && (!scl_sda_cfg || scl_sda_cfg->has_high_speed)) i2c_spd = IC_SPEED_MODE_HIGH; - else if (speed >= I2C_SPEED_FAST_RATE) - i2c_spd = IC_SPEED_MODE_FAST_PLUS; else if (speed >= I2C_SPEED_FAST_PLUS_RATE) + i2c_spd = IC_SPEED_MODE_FAST_PLUS; + else if (speed >= I2C_SPEED_FAST_RATE) i2c_spd = IC_SPEED_MODE_FAST; else i2c_spd = IC_SPEED_MODE_STANDARD;