From bcdd4efc1b6b8b98f30e127115f4bc7bbcd6f7ce Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Fri, 10 Oct 2008 15:58:13 +0100 Subject: mfd: Add initialisation callback for WM8350 Some functions of the WM8350 require board-specific initialisation on startup. Provide a callback to the WM8350 driver in platform data for platforms to use to configure the chip. Use of a callback allows platforms to control the ordering of initialisation which can be important. Signed-off-by: Mark Brown Acked-by: Samuel Ortiz Signed-off-by: Liam Girdwood --- drivers/mfd/wm8350-core.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'drivers/mfd/wm8350-core.c') diff --git a/drivers/mfd/wm8350-core.c b/drivers/mfd/wm8350-core.c index c7552c0b779..071834ba695 100644 --- a/drivers/mfd/wm8350-core.c +++ b/drivers/mfd/wm8350-core.c @@ -388,7 +388,8 @@ out: } EXPORT_SYMBOL_GPL(wm8350_create_cache); -int wm8350_device_init(struct wm8350 *wm8350) +int wm8350_device_init(struct wm8350 *wm8350, + struct wm8350_platform_data *pdata) { int ret = -EINVAL; u16 id1, id2, mask, mode; @@ -439,6 +440,15 @@ int wm8350_device_init(struct wm8350 *wm8350) return ret; } + if (pdata->init) { + ret = pdata->init(wm8350); + if (ret != 0) { + dev_err(wm8350->dev, "Platform init() failed: %d\n", + ret); + goto err; + } + } + return 0; err: -- cgit v1.2.3