]> git.sur5r.net Git - u-boot/blobdiff - drivers/i2c/stm32f7_i2c.c
meson: use the clock driver
[u-boot] / drivers / i2c / stm32f7_i2c.c
index 346748d433142d6109bd390f1a32a850311bc353..36ec610c8ec696cdf01e2daf9ecf9afcacef6c3f 100644 (file)
@@ -1,7 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2017 STMicroelectronics
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -244,8 +243,6 @@ static struct stm32_i2c_setup stm32f7_setup = {
        .analog_filter = STM32_I2C_ANALOG_FILTER_ENABLE,
 };
 
-DECLARE_GLOBAL_DATA_PTR;
-
 static int stm32_i2c_check_device_busy(struct stm32_i2c_priv *i2c_priv)
 {
        struct stm32_i2c_regs *regs = i2c_priv->regs;
@@ -533,7 +530,7 @@ static int stm32_i2c_compute_solutions(struct stm32_i2c_setup *setup,
                                if (((sdadel >= sdadel_min) &&
                                     (sdadel <= sdadel_max)) &&
                                    (p != p_prev)) {
-                                       v = kmalloc(sizeof(*v), GFP_KERNEL);
+                                       v = calloc(1, sizeof(*v));
                                        if (!v)
                                                return -ENOMEM;
 
@@ -640,7 +637,7 @@ static int stm32_i2c_compute_timing(struct stm32_i2c_priv *i2c_priv,
                                      struct stm32_i2c_setup *setup,
                                      struct stm32_i2c_timings *output)
 {
-       struct stm32_i2c_timings *v, *_v, s;
+       struct stm32_i2c_timings *v, *_v;
        struct list_head solutions;
        int ret;
 
@@ -676,16 +673,10 @@ static int stm32_i2c_compute_timing(struct stm32_i2c_priv *i2c_priv,
        if (ret)
                goto exit;
 
-       ret = stm32_i2c_choose_solution(setup, &solutions, &s);
+       ret = stm32_i2c_choose_solution(setup, &solutions, output);
        if (ret)
                goto exit;
 
-       output->presc = s.presc;
-       output->scldel = s.scldel;
-       output->sdadel = s.sdadel;
-       output->scll = s.scll;
-       output->sclh = s.sclh;
-
        debug("%s: Presc: %i, scldel: %i, sdadel: %i, scll: %i, sclh: %i\n",
              __func__, output->presc,
              output->scldel, output->sdadel,
@@ -695,7 +686,7 @@ exit:
        /* Release list and memory */
        list_for_each_entry_safe(v, _v, &solutions, node) {
                list_del(&v->node);
-               kfree(v);
+               free(v);
        }
 
        return ret;