mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 23:34:05 +08:00
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>
This commit is contained in:
parent
da09155ac8
commit
9201d38b97
@ -1130,6 +1130,32 @@ out:
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wm8350_create_cache);
|
||||
|
||||
/*
|
||||
* Register a client device. This is non-fatal since there is no need to
|
||||
* fail the entire device init due to a single platform device failing.
|
||||
*/
|
||||
static void wm8350_client_dev_register(struct wm8350 *wm8350,
|
||||
const char *name,
|
||||
struct platform_device **pdev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
*pdev = platform_device_alloc(name, -1);
|
||||
if (pdev == NULL) {
|
||||
dev_err(wm8350->dev, "Failed to allocate %s\n", name);
|
||||
return;
|
||||
}
|
||||
|
||||
(*pdev)->dev.parent = wm8350->dev;
|
||||
platform_set_drvdata(*pdev, wm8350);
|
||||
ret = platform_device_add(*pdev);
|
||||
if (ret != 0) {
|
||||
dev_err(wm8350->dev, "Failed to register %s: %d\n", name, ret);
|
||||
platform_device_put(*pdev);
|
||||
*pdev = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
int wm8350_device_init(struct wm8350 *wm8350, int irq,
|
||||
struct wm8350_platform_data *pdata)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user