diff options
Diffstat (limited to 'drivers/mfd/core.c')
-rw-r--r-- | drivers/mfd/core.c | 26 |
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; +} |