
On Thu, Dec 04, 2014 at 08:41:19PM +0800, Zidan Wang wrote:
When we want to use wm8960 codec, we should enable its MCLK in machine driver. It's reasonable for wm8960 codec driver to manage its own MCLK to save power.
If platform data is not supplied, we will get MCLK from device tree and check the return code to handle probe deferral.
Enable runtime power management, and auto enable/disable MCLK in pm_runtime resume and suspend. When wm8960 codec is being used, it will triger resume() to enable MCLK. When codec is not being used, it will triger suspend() to disable MCLK.
Signed-off-by: Zidan Wang b50113@freescale.com
include/sound/wm8960.h | 1 + sound/soc/codecs/wm8960.c | 56 ++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 3 deletions(-)
diff --git a/include/sound/wm8960.h b/include/sound/wm8960.h index e8ce8ee..d7e84ed 100644 --- a/include/sound/wm8960.h +++ b/include/sound/wm8960.h @@ -16,6 +16,7 @@ #define WM8960_DRES_MAX 3
struct wm8960_data {
- struct clk *mclk;
Is this really pdata? Would the pdata entry to locate the clock not be a string holding the clock name that you call clk_get on, rather than a clk pointer itself? Probably this should go in wm8960_priv instead.
Thanks, Charles