aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2008-10-10 10:58:16 -0400
committerLiam Girdwood <lrg@slimlogic.co.uk>2008-10-13 16:51:56 -0400
commit9201d38b97c7de1b8e6e40449745acf456cff437 (patch)
tree66e9ff8078e4cf7ea7cc8df047fc356b29fb8bf3
parentda09155ac8d3f04c299b3d82a6ab0df8d03da632 (diff)
mfd: Add WM8350 subdevice registration helper
Most of the subdevices for the WM8350 code are registered in the same fashion so factor out the code to do the initial registration. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Samuel Ortiz <sameo@openedhand.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
-rw-r--r--drivers/mfd/wm8350-core.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/mfd/wm8350-core.c b/drivers/mfd/wm8350-core.c
index 9a1a0b2b581e..cd1f76efed4e 100644
--- a/drivers/mfd/wm8350-core.c
+++ b/drivers/mfd/wm8350-core.c
@@ -1130,6 +1130,32 @@ out:
1130} 1130}
1131EXPORT_SYMBOL_GPL(wm8350_create_cache); 1131EXPORT_SYMBOL_GPL(wm8350_create_cache);
1132 1132
1133/*
1134 * Register a client device. This is non-fatal since there is no need to
1135 * fail the entire device init due to a single platform device failing.
1136 */
1137static void wm8350_client_dev_register(struct wm8350 *wm8350,
1138 const char *name,
1139 struct platform_device **pdev)
1140{
1141 int ret;
1142
1143 *pdev = platform_device_alloc(name, -1);
1144 if (pdev == NULL) {
1145 dev_err(wm8350->dev, "Failed to allocate %s\n", name);
1146 return;
1147 }
1148
1149 (*pdev)->dev.parent = wm8350->dev;
1150 platform_set_drvdata(*pdev, wm8350);
1151 ret = platform_device_add(*pdev);
1152 if (ret != 0) {
1153 dev_err(wm8350->dev, "Failed to register %s: %d\n", name, ret);
1154 platform_device_put(*pdev);
1155 *pdev = NULL;
1156 }
1157}
1158
1133int wm8350_device_init(struct wm8350 *wm8350, int irq, 1159int wm8350_device_init(struct wm8350 *wm8350, int irq,
1134 struct wm8350_platform_data *pdata) 1160 struct wm8350_platform_data *pdata)
1135{ 1161{