diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2008-10-10 10:58:16 -0400 |
---|---|---|
committer | Liam Girdwood <lrg@slimlogic.co.uk> | 2008-10-13 16:51:56 -0400 |
commit | 9201d38b97c7de1b8e6e40449745acf456cff437 (patch) | |
tree | 66e9ff8078e4cf7ea7cc8df047fc356b29fb8bf3 /drivers/mfd/wm8350-core.c | |
parent | da09155ac8d3f04c299b3d82a6ab0df8d03da632 (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>
Diffstat (limited to 'drivers/mfd/wm8350-core.c')
-rw-r--r-- | drivers/mfd/wm8350-core.c | 26 |
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 | } |
1131 | EXPORT_SYMBOL_GPL(wm8350_create_cache); | 1131 | EXPORT_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 | */ | ||
1137 | static 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 | |||
1133 | int wm8350_device_init(struct wm8350 *wm8350, int irq, | 1159 | int wm8350_device_init(struct wm8350 *wm8350, int irq, |
1134 | struct wm8350_platform_data *pdata) | 1160 | struct wm8350_platform_data *pdata) |
1135 | { | 1161 | { |