summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/core.c')
-rw-r--r--drivers/mfd/core.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/mfd/core.c b/drivers/mfd/core.c
new file mode 100644
index 0000000000..0868bbb905
--- /dev/null
+++ b/drivers/mfd/core.c
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <linux/mfd/core.h>
+#include <driver.h>
+
+int mfd_add_devices(struct device *parent, const struct mfd_cell *cells,
+ int n_devs)
+{
+ struct device *dev;
+ int ret, i;
+
+ for (i = 0; i < n_devs; i++) {
+ dev = device_alloc(cells[i].name, DEVICE_ID_DYNAMIC);
+ dev->parent = parent;
+
+ ret = device_add_data(dev, &cells[i], sizeof(cells[i]));
+ if (ret)
+ return ret;
+
+ ret = platform_device_register(dev);
+ if (ret)
+ return ret;
+ }
+
+ return 0;
+}