diff options
author | Kirill Marinushkin <kmarinushkin@birdec.tech> | 2018-11-12 10:08:33 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-11-14 03:59:33 +0300 |
commit | 9d4b17efa51f3bb0918021090c09b0013039df00 (patch) | |
tree | ecdbc5cfaf96ae74a9b29fdf335e38eabdff2d30 | |
parent | 496fa3ba0a66c0192be86a45f44f94827ab8bcb6 (diff) | |
download | linux-9d4b17efa51f3bb0918021090c09b0013039df00.tar.xz |
ASoC: pcm3060: Add DT property for single-ended output
DAC output may be differential (default) or single-ended.
Signed-off-by: Kirill Marinushkin <kmarinushkin@birdec.tech>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | sound/soc/codecs/pcm3060.c | 14 | ||||
-rw-r--r-- | sound/soc/codecs/pcm3060.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/sound/soc/codecs/pcm3060.c b/sound/soc/codecs/pcm3060.c index 494d9d662be8..5f479aa61097 100644 --- a/sound/soc/codecs/pcm3060.c +++ b/sound/soc/codecs/pcm3060.c @@ -274,9 +274,23 @@ EXPORT_SYMBOL(pcm3060_regmap); /* device */ +static void pcm3060_parse_dt(const struct device_node *np, + struct pcm3060_priv *priv) +{ + priv->out_se = of_property_read_bool(np, "ti,out-single-ended"); +} + int pcm3060_probe(struct device *dev) { int rc; + struct pcm3060_priv *priv = dev_get_drvdata(dev); + + if (dev->of_node) + pcm3060_parse_dt(dev->of_node, priv); + + if (priv->out_se) + regmap_update_bits(priv->regmap, PCM3060_REG64, + PCM3060_REG_SE, PCM3060_REG_SE); rc = devm_snd_soc_register_component(dev, &pcm3060_soc_comp_driver, pcm3060_dai, diff --git a/sound/soc/codecs/pcm3060.h b/sound/soc/codecs/pcm3060.h index fd89a68aa8a7..c895cf40ee10 100644 --- a/sound/soc/codecs/pcm3060.h +++ b/sound/soc/codecs/pcm3060.h @@ -25,6 +25,7 @@ struct pcm3060_priv_dai { struct pcm3060_priv { struct regmap *regmap; struct pcm3060_priv_dai dai[PCM3060_DAI_IDS_NUM]; + u8 out_se: 1; }; int pcm3060_probe(struct device *dev); |