i2c: designware_i2c: Correct the selection of speed mode
diff mbox series

Message ID 20200213132452.1.I9fa6b7a8f7c3b13b4206f4d7c73aac809400afd5@changeid
State Awaiting Upstream
Delegated to: Heiko Schocher
Headers show
Series
  • i2c: designware_i2c: Correct the selection of speed mode
Related show

Commit Message

Simon Glass Feb. 13, 2020, 8:24 p.m. UTC
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 <sjg@chromium.org>
Fixes: d96440d1e3 ("i2c: designware_i2c: Add support for fast-plus speed")
---

 drivers/i2c/designware_i2c.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Heiko Schocher Feb. 18, 2020, 7:21 a.m. UTC | #1
Hello Simon,

Am 13.02.2020 um 21:24 schrieb Simon Glass:
> 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 <sjg@chromium.org>
> Fixes: d96440d1e3 ("i2c: designware_i2c: Add support for fast-plus speed")
> ---
> 
>   drivers/i2c/designware_i2c.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)

Reviewed-by: Heiko Schocher <hs@denx.de>

I started travis build, and if successful, I send pull request to Tom
soon, thanks for detecting this.

bye,
Heiko
Heiko Schocher Feb. 18, 2020, 11:50 a.m. UTC | #2
Hello Simon,

Am 13.02.2020 um 21:24 schrieb Simon Glass:
> 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 <sjg@chromium.org>
> Fixes: d96440d1e3 ("i2c: designware_i2c: Add support for fast-plus speed")
> ---
> 
>   drivers/i2c/designware_i2c.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)

Applied to u-boot-i2c master

Thanks!

bye,
Heiko

Patch
diff mbox series

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;