Merge git://git.denx.de/u-boot-fsl-qoriq
[oweals/u-boot.git] / drivers / i2c / i2c-gpio.c
index ed899d47770ca5f00ff2cecebb1fe8b0f8071a20..4e8fa214739a4bee0faa963bac3717f5090a9aae 100644 (file)
@@ -41,18 +41,19 @@ static int i2c_gpio_sda_get(struct gpio_desc *sda)
 
 static void i2c_gpio_sda_set(struct gpio_desc *sda, int bit)
 {
-       if (bit) {
+       if (bit)
                dm_gpio_set_dir_flags(sda, GPIOD_IS_IN);
-       } else {
+       else
                dm_gpio_set_dir_flags(sda, GPIOD_IS_OUT);
-               dm_gpio_set_value(sda, 0);
-       }
 }
 
 static void i2c_gpio_scl_set(struct gpio_desc *scl, int bit)
 {
-       dm_gpio_set_dir_flags(scl, GPIOD_IS_OUT);
-       dm_gpio_set_value(scl, bit);
+       ulong flags = GPIOD_IS_OUT;
+
+       if (bit)
+               flags |= GPIOD_IS_OUT_ACTIVE;
+       dm_gpio_set_dir_flags(scl, flags);
 }
 
 static void i2c_gpio_write_bit(struct gpio_desc *scl, struct gpio_desc *sda,
@@ -308,7 +309,7 @@ static int i2c_gpio_ofdata_to_platdata(struct udevice *dev)
 {
        struct i2c_gpio_bus *bus = dev_get_priv(dev);
        const void *blob = gd->fdt_blob;
-       int node = dev->of_offset;
+       int node = dev_of_offset(dev);
        int ret;
 
        ret = gpio_request_list_by_name(dev, "gpios", bus->gpios,
@@ -321,7 +322,7 @@ static int i2c_gpio_ofdata_to_platdata(struct udevice *dev)
 
        return 0;
 error:
-       error("Can't get %s gpios! Error: %d", dev->name, ret);
+       pr_err("Can't get %s gpios! Error: %d", dev->name, ret);
        return ret;
 }