summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/pcm3060.c
diff options
context:
space:
mode:
authorKirill Marinushkin <kmarinushkin@birdec.tech>2018-11-12 08:08:33 +0100
committerMark Brown <broonie@kernel.org>2018-11-13 16:59:33 -0800
commit9d4b17efa51f3bb0918021090c09b0013039df00 (patch)
treeecdbc5cfaf96ae74a9b29fdf335e38eabdff2d30 /sound/soc/codecs/pcm3060.c
parent496fa3ba0a66c0192be86a45f44f94827ab8bcb6 (diff)
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>
Diffstat (limited to 'sound/soc/codecs/pcm3060.c')
-rw-r--r--sound/soc/codecs/pcm3060.c14
1 files changed, 14 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,