]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/i2c/i2c-uclass.c
common: Make sure arch-specific map_sysmem() is defined
[karo-tx-uboot.git] / drivers / i2c / i2c-uclass.c
index eafa457845df2371bff8a59ce8b20b7d2d32dd82..f2e95c0881a76d82436df7f3114e67a2d5632457 100644 (file)
@@ -230,6 +230,8 @@ static int i2c_bind_driver(struct udevice *bus, uint chip_addr, uint offset_len,
 
        snprintf(name, sizeof(name), "generic_%x", chip_addr);
        str = strdup(name);
+       if (!str)
+               return -ENOMEM;
        ret = device_bind_driver(bus, "i2c_generic_chip_drv", str, &dev);
        debug("%s:  device_bind_driver: ret=%d\n", __func__, ret);
        if (ret)
@@ -325,10 +327,10 @@ int dm_i2c_probe(struct udevice *bus, uint chip_addr, uint chip_flags,
        return ret;
 }
 
-int i2c_set_bus_speed(struct udevice *bus, unsigned int speed)
+int dm_i2c_set_bus_speed(struct udevice *bus, unsigned int speed)
 {
        struct dm_i2c_ops *ops = i2c_get_ops(bus);
-       struct dm_i2c_bus *i2c = bus->uclass_priv;
+       struct dm_i2c_bus *i2c = dev_get_uclass_priv(bus);
        int ret;
 
        /*
@@ -346,15 +348,10 @@ int i2c_set_bus_speed(struct udevice *bus, unsigned int speed)
        return 0;
 }
 
-/*
- * i2c_get_bus_speed:
- *
- *  Returns speed of selected I2C bus in Hz
- */
-int i2c_get_bus_speed(struct udevice *bus)
+int dm_i2c_get_bus_speed(struct udevice *bus)
 {
        struct dm_i2c_ops *ops = i2c_get_ops(bus);
-       struct dm_i2c_bus *i2c = bus->uclass_priv;
+       struct dm_i2c_bus *i2c = dev_get_uclass_priv(bus);
 
        if (!ops->get_bus_speed)
                return i2c->speed_hz;
@@ -435,12 +432,12 @@ int i2c_chip_ofdata_to_platdata(const void *blob, int node,
 
 static int i2c_post_probe(struct udevice *dev)
 {
-       struct dm_i2c_bus *i2c = dev->uclass_priv;
+       struct dm_i2c_bus *i2c = dev_get_uclass_priv(dev);
 
        i2c->speed_hz = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
                                     "clock-frequency", 100000);
 
-       return i2c_set_bus_speed(dev, i2c->speed_hz);
+       return dm_i2c_set_bus_speed(dev, i2c->speed_hz);
 }
 
 static int i2c_post_bind(struct udevice *dev)