diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2014-02-12 12:20:57 -0500 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-03-18 14:38:05 -0400 |
commit | cece5656901f09db13fbb569ff04f627ec2e0ab6 (patch) | |
tree | 76f593747e31eec40fc5c3175f836837cb876fba /sound | |
parent | 64895739835c431fbc62dfabbe2267fff552a2f2 (diff) |
ASoC: add S/PDIF support to Armada 370 DB ASoC driver
The Armada 370 DB board not only has analog audio input/output, but
also S/PDIF input/output. This commit adds support for S/PDIF in the
ASoC machine driver of the Armada 370 DB platform, and adjusts the
Device Tree bindings documentation accordingly.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/kirkwood/Kconfig | 1 | ||||
-rw-r--r-- | sound/soc/kirkwood/armada-370-db.c | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/sound/soc/kirkwood/Kconfig b/sound/soc/kirkwood/Kconfig index 2dc3ecf34801..49f8437665de 100644 --- a/sound/soc/kirkwood/Kconfig +++ b/sound/soc/kirkwood/Kconfig | |||
@@ -10,6 +10,7 @@ config SND_KIRKWOOD_SOC_ARMADA370_DB | |||
10 | tristate "SoC Audio support for Armada 370 DB" | 10 | tristate "SoC Audio support for Armada 370 DB" |
11 | depends on SND_KIRKWOOD_SOC && (ARCH_MVEBU || COMPILE_TEST) && I2C | 11 | depends on SND_KIRKWOOD_SOC && (ARCH_MVEBU || COMPILE_TEST) && I2C |
12 | select SND_SOC_CS42L51 | 12 | select SND_SOC_CS42L51 |
13 | select SND_SOC_SPDIF | ||
13 | help | 14 | help |
14 | Say Y if you want to add support for SoC audio on | 15 | Say Y if you want to add support for SoC audio on |
15 | the Armada 370 Development Board. | 16 | the Armada 370 Development Board. |
diff --git a/sound/soc/kirkwood/armada-370-db.c b/sound/soc/kirkwood/armada-370-db.c index 977639b3ffde..c44333849259 100644 --- a/sound/soc/kirkwood/armada-370-db.c +++ b/sound/soc/kirkwood/armada-370-db.c | |||
@@ -67,6 +67,20 @@ static struct snd_soc_dai_link a370db_dai[] = { | |||
67 | .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS, | 67 | .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS, |
68 | .ops = &a370db_ops, | 68 | .ops = &a370db_ops, |
69 | }, | 69 | }, |
70 | { | ||
71 | .name = "S/PDIF out", | ||
72 | .stream_name = "spdif-out", | ||
73 | .cpu_dai_name = "spdif", | ||
74 | .codec_dai_name = "dit-hifi", | ||
75 | .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS, | ||
76 | }, | ||
77 | { | ||
78 | .name = "S/PDIF in", | ||
79 | .stream_name = "spdif-in", | ||
80 | .cpu_dai_name = "spdif", | ||
81 | .codec_dai_name = "dir-hifi", | ||
82 | .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS, | ||
83 | }, | ||
70 | }; | 84 | }; |
71 | 85 | ||
72 | static struct snd_soc_card a370db = { | 86 | static struct snd_soc_card a370db = { |
@@ -95,6 +109,20 @@ static int a370db_probe(struct platform_device *pdev) | |||
95 | of_parse_phandle(pdev->dev.of_node, | 109 | of_parse_phandle(pdev->dev.of_node, |
96 | "marvell,audio-codec", 0); | 110 | "marvell,audio-codec", 0); |
97 | 111 | ||
112 | a370db_dai[1].cpu_of_node = a370db_dai[0].cpu_of_node; | ||
113 | a370db_dai[1].platform_of_node = a370db_dai[0].cpu_of_node; | ||
114 | |||
115 | a370db_dai[1].codec_of_node = | ||
116 | of_parse_phandle(pdev->dev.of_node, | ||
117 | "marvell,audio-codec", 1); | ||
118 | |||
119 | a370db_dai[2].cpu_of_node = a370db_dai[0].cpu_of_node; | ||
120 | a370db_dai[2].platform_of_node = a370db_dai[0].cpu_of_node; | ||
121 | |||
122 | a370db_dai[2].codec_of_node = | ||
123 | of_parse_phandle(pdev->dev.of_node, | ||
124 | "marvell,audio-codec", 2); | ||
125 | |||
98 | return devm_snd_soc_register_card(card->dev, card); | 126 | return devm_snd_soc_register_card(card->dev, card); |
99 | } | 127 | } |
100 | 128 | ||