Skip to content

Commit

Permalink
ASoC: cs42l51: fix mclk support
Browse files Browse the repository at this point in the history
The MCLK clock is made optional for cs42l51 codec.
However, ASoC DAPM clock supply widget, expects the clock to be defined
unconditionally.
Register MCLK DAPM conditionally in codec driver,
depending on clock presence in DT.

Fixes: 5e8d63a ("ASoC: cs42l51: add mclk support")
Signed-off-by: Olivier Moysan <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
  • Loading branch information
Olivier Moysan authored and broonie committed Oct 19, 2018
1 parent 7ece50c commit 318e741
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion sound/soc/codecs/cs42l51.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
* - master mode *NOT* supported
*/

#include <linux/clk.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <sound/core.h>
Expand All @@ -41,6 +42,7 @@ enum master_slave_mode {

struct cs42l51_private {
unsigned int mclk;
struct clk *mclk_handle;
unsigned int audio_mode; /* The mode (I2S or left-justified) */
enum master_slave_mode func;
};
Expand Down Expand Up @@ -492,9 +494,13 @@ static int cs42l51_component_probe(struct snd_soc_component *component)
{
int ret, reg;
struct snd_soc_dapm_context *dapm;
struct cs42l51_private *cs42l51;

cs42l51 = snd_soc_component_get_drvdata(component);
dapm = snd_soc_component_get_dapm(component);
snd_soc_dapm_new_controls(dapm, cs42l51_dapm_mclk_widgets, 1);

if (cs42l51->mclk_handle)
snd_soc_dapm_new_controls(dapm, cs42l51_dapm_mclk_widgets, 1);

/*
* DAC configuration
Expand Down Expand Up @@ -548,6 +554,13 @@ int cs42l51_probe(struct device *dev, struct regmap *regmap)

dev_set_drvdata(dev, cs42l51);

cs42l51->mclk_handle = devm_clk_get(dev, "MCLK");
if (IS_ERR(cs42l51->mclk_handle)) {
if (PTR_ERR(cs42l51->mclk_handle) != -ENOENT)
return PTR_ERR(cs42l51->mclk_handle);
cs42l51->mclk_handle = NULL;
}

/* Verify that we have a CS42L51 */
ret = regmap_read(regmap, CS42L51_CHIP_REV_ID, &val);
if (ret < 0) {
Expand Down

0 comments on commit 318e741

Please sign in to comment.