diff options
author | Tom Rini <trini@konsulko.com> | 2019-07-14 09:09:49 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-07-14 09:09:49 -0400 |
commit | a9a3a37f92b072a56693ad665ab4c5cc73028d16 (patch) | |
tree | d0a4e94e94d77ba06983abbe4b89d2c39a0c5d7f /drivers/i2c/stm32f7_i2c.c | |
parent | 6070ef409c1018860e8dd1f077297546d9d80115 (diff) | |
parent | 291f00bb3ea7e9f9acdddbe680991e76313732d6 (diff) |
Merge tag 'u-boot-stm32-20190712' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm
- syscon: add support for power off
- stm32mp1: add op-tee config
- stm32mp1: add specific commands: stboard and stm32key
- add stm32 mailbox driver
- solve many stm32 warnings when building with W=1
- update stm32 gpio driver
Diffstat (limited to 'drivers/i2c/stm32f7_i2c.c')
-rw-r--r-- | drivers/i2c/stm32f7_i2c.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/i2c/stm32f7_i2c.c b/drivers/i2c/stm32f7_i2c.c index 50c4fd0de2..2b18735fea 100644 --- a/drivers/i2c/stm32f7_i2c.c +++ b/drivers/i2c/stm32f7_i2c.c @@ -519,13 +519,13 @@ static int stm32_i2c_compute_solutions(struct stm32_i2c_setup *setup, /* Compute possible values for PRESC, SCLDEL and SDADEL */ for (p = 0; p < STM32_PRESC_MAX; p++) { for (l = 0; l < STM32_SCLDEL_MAX; l++) { - u32 scldel = (l + 1) * (p + 1) * i2cclk; + int scldel = (l + 1) * (p + 1) * i2cclk; if (scldel < scldel_min) continue; for (a = 0; a < STM32_SDADEL_MAX; a++) { - u32 sdadel = (a * (p + 1) + 1) * i2cclk; + int sdadel = (a * (p + 1) + 1) * i2cclk; if (((sdadel >= sdadel_min) && (sdadel <= sdadel_max)) && @@ -613,10 +613,12 @@ static int stm32_i2c_choose_solution(struct stm32_i2c_setup *setup, if ((tscl >= clk_min) && (tscl <= clk_max) && (tscl_h >= i2c_specs[setup->speed].h_min) && (i2cclk < tscl_h)) { - int clk_error = tscl - i2cbus; + u32 clk_error; - if (clk_error < 0) - clk_error = -clk_error; + if (tscl > i2cbus) + clk_error = tscl - i2cbus; + else + clk_error = i2cbus - tscl; if (clk_error < clk_error_prev) { clk_error_prev = clk_error; |