aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/sound/armada-370db-audio.txt9
-rw-r--r--sound/soc/kirkwood/Kconfig1
-rw-r--r--sound/soc/kirkwood/armada-370-db.c28
3 files changed, 35 insertions, 3 deletions
diff --git a/Documentation/devicetree/bindings/sound/armada-370db-audio.txt b/Documentation/devicetree/bindings/sound/armada-370db-audio.txt
index 3893b4d15a20..bf984d238620 100644
--- a/Documentation/devicetree/bindings/sound/armada-370db-audio.txt
+++ b/Documentation/devicetree/bindings/sound/armada-370db-audio.txt
@@ -11,14 +11,17 @@ Mandatory properties:
11 * marvell,audio-controller: a phandle that points to the audio 11 * marvell,audio-controller: a phandle that points to the audio
12 controller of the Armada 370 SoC. 12 controller of the Armada 370 SoC.
13 13
14 * marvell,audio-codec: a phandle that points to the analog audio 14 * marvell,audio-codec: a set of three phandles that points to:
15 codec connected to the Armada 370 SoC. 15
16 1/ the analog audio codec connected to the Armada 370 SoC
17 2/ the S/PDIF transceiver
18 3/ the S/PDIF receiver
16 19
17Example: 20Example:
18 21
19 sound { 22 sound {
20 compatible = "marvell,a370db-audio"; 23 compatible = "marvell,a370db-audio";
21 marvell,audio-controller = <&audio_controller>; 24 marvell,audio-controller = <&audio_controller>;
22 marvell,audio-codec = <&audio_codec>; 25 marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>;
23 status = "okay"; 26 status = "okay";
24 }; 27 };
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
72static struct snd_soc_card a370db = { 86static 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