From b428b24214c2d4140b2e066a8dc250f55bcd55e4 Mon Sep 17 00:00:00 2001 From: Phani Kumar Uppalapati Date: Wed, 24 Aug 2016 11:57:52 -0700 Subject: [PATCH] drivers: mfd: Add 1.6MHz clk support for wcd934x codec Add DMIC (Digital Microphone) 1.6MHz clock rate support for wcd934x audio codec. Change-Id: I601074304c7061a58e89a9e460e14225a6c1b335 Signed-off-by: Phani Kumar Uppalapati --- drivers/mfd/wcd9xxx-utils.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/mfd/wcd9xxx-utils.c b/drivers/mfd/wcd9xxx-utils.c index 38286831a02c..fab594992df3 100644 --- a/drivers/mfd/wcd9xxx-utils.c +++ b/drivers/mfd/wcd9xxx-utils.c @@ -265,8 +265,17 @@ static u32 wcd9xxx_validate_dmic_sample_rate(struct device *dev, __func__, div_factor, mclk_rate); break; case 6: - /* DIV 6 is valid only for 12.288 MCLK */ - if (mclk_rate != WCD9XXX_MCLK_CLK_12P288MHZ) + /* + * DIV 6 is valid for both 9.6MHz and 12.288MHz + * MCLK on Tavil. Older codecs support DIV6 only + * for 12.288MHz MCLK. + */ + if ((mclk_rate == WCD9XXX_MCLK_CLK_9P6HZ) && + (of_device_is_compatible(dev->of_node, + "qcom,tavil-slim-pgd"))) + dev_dbg(dev, "%s: DMIC_DIV = %u, mclk_rate = %u\n", + __func__, div_factor, mclk_rate); + else if (mclk_rate != WCD9XXX_MCLK_CLK_12P288MHZ) goto undefined_rate; break; default: