aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/drivers/core/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'roms/u-boot/drivers/core/util.c')
-rw-r--r--roms/u-boot/drivers/core/util.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/roms/u-boot/drivers/core/util.c b/roms/u-boot/drivers/core/util.c
new file mode 100644
index 000000000..91e93b0cf
--- /dev/null
+++ b/roms/u-boot/drivers/core/util.c
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2013 Google, Inc
+ */
+
+#include <common.h>
+#include <dm/device.h>
+#include <dm/ofnode.h>
+#include <dm/read.h>
+#include <dm/util.h>
+#include <linux/libfdt.h>
+#include <vsprintf.h>
+
+#if CONFIG_IS_ENABLED(DM_WARN)
+void dm_warn(const char *fmt, ...)
+{
+ va_list args;
+
+ va_start(args, fmt);
+ vprintf(fmt, args);
+ va_end(args);
+}
+#endif
+
+int list_count_items(struct list_head *head)
+{
+ struct list_head *node;
+ int count = 0;
+
+ list_for_each(node, head)
+ count++;
+
+ return count;
+}
+
+#if !CONFIG_IS_ENABLED(OF_PLATDATA)
+int pci_get_devfn(struct udevice *dev)
+{
+ struct fdt_pci_addr addr;
+ int ret;
+
+ /* Extract the devfn from fdt_pci_addr */
+ ret = ofnode_read_pci_addr(dev_ofnode(dev), FDT_PCI_SPACE_CONFIG,
+ "reg", &addr);
+ if (ret) {
+ if (ret != -ENOENT)
+ return -EINVAL;
+ }
+
+ return addr.phys_hi & 0xff00;
+}
+#endif