]> git.sur5r.net Git - u-boot/blobdiff - drivers/core/device.c
serial: serial_stm32: Rename status register flags
[u-boot] / drivers / core / device.c
index 5463d1ffa508df95fb65f24f058ecbceb8387989..940a153c5830aadd57367da88314cbf11e390d02 100644 (file)
 
 #include <common.h>
 #include <asm/io.h>
+#include <clk.h>
 #include <fdtdec.h>
 #include <fdt_support.h>
 #include <malloc.h>
 #include <dm/device.h>
 #include <dm/device-internal.h>
 #include <dm/lists.h>
+#include <dm/of_access.h>
 #include <dm/pinctrl.h>
 #include <dm/platdata.h>
 #include <dm/read.h>
@@ -161,7 +163,7 @@ static int device_bind_common(struct udevice *parent, const struct driver *drv,
        }
 
        if (parent)
-               dm_dbg("Bound device %s to %s\n", dev->name, parent->name);
+               pr_debug("Bound device %s to %s\n", dev->name, parent->name);
        if (devp)
                *devp = dev;
 
@@ -254,6 +256,7 @@ static void *alloc_priv(int size, uint flags)
        void *priv;
 
        if (flags & DM_FLAG_ALLOC_PRIV_DMA) {
+               size = ROUND(size, ARCH_DMA_MINALIGN);
                priv = memalign(ARCH_DMA_MINALIGN, size);
                if (priv) {
                        memset(priv, '\0', size);
@@ -389,6 +392,11 @@ int device_probe(struct udevice *dev)
                        goto fail;
        }
 
+       /* Process 'assigned-{clocks/clock-parents/clock-rates}' properties */
+       ret = clk_set_defaults(dev);
+       if (ret)
+               goto fail;
+
        if (drv->probe) {
                ret = drv->probe(dev);
                if (ret) {
@@ -702,8 +710,12 @@ int device_set_name(struct udevice *dev, const char *name)
 bool device_is_compatible(struct udevice *dev, const char *compat)
 {
        const void *fdt = gd->fdt_blob;
+       ofnode node = dev_ofnode(dev);
 
-       return !fdt_node_check_compatible(fdt, dev_of_offset(dev), compat);
+       if (ofnode_is_np(node))
+               return of_device_is_compatible(ofnode_to_np(node), compat, NULL, NULL);
+       else
+               return !fdt_node_check_compatible(fdt, ofnode_to_offset(node), compat);
 }
 
 bool of_machine_is_compatible(const char *compat)