ASoC: arizona: Connect ASRCs to both clock domains
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Thu, 11 Aug 2016 13:42:55 +0000 (14:42 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 11 Aug 2016 14:01:28 +0000 (15:01 +0100)
The two clock domains are enabled based on each input and output of the
chip being connected to its respective clock domain. The ASRC however
can bridge the two domains and as such can function as an input/output
to either domain. The hardware also requires that both clocks are
enabled before the ASRC is. Ensure these constraints by linking the
ASRCs to both SYSCLK and ASYNCCLK.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs47l24.c
sound/soc/codecs/wm5102.c
sound/soc/codecs/wm5110.c
sound/soc/codecs/wm8998.c

index 954a4f5d3338c5c96b137296e16e10042e67795f..f8d8139b2d4213008c20b8543691d61b2124c54a 100644 (file)
@@ -746,6 +746,16 @@ static const struct snd_soc_dapm_route cs47l24_dapm_routes[] = {
        { "IN2L", NULL, "SYSCLK" },
        { "IN2R", NULL, "SYSCLK" },
 
+       { "ASRC1L", NULL, "SYSCLK" },
+       { "ASRC1R", NULL, "SYSCLK" },
+       { "ASRC2L", NULL, "SYSCLK" },
+       { "ASRC2R", NULL, "SYSCLK" },
+
+       { "ASRC1L", NULL, "ASYNCCLK" },
+       { "ASRC1R", NULL, "ASYNCCLK" },
+       { "ASRC2L", NULL, "ASYNCCLK" },
+       { "ASRC2R", NULL, "ASYNCCLK" },
+
        { "MICBIAS1", NULL, "MICVDD" },
        { "MICBIAS2", NULL, "MICVDD" },
 
index 846deed6af417c7fcca17f35960679acb1ac4013..16a1c5b46243a1c2be6d20856ddce7bd34a3fe7e 100644 (file)
@@ -1521,6 +1521,16 @@ static const struct snd_soc_dapm_route wm5102_dapm_routes[] = {
        { "IN3L", NULL, "SYSCLK" },
        { "IN3R", NULL, "SYSCLK" },
 
+       { "ASRC1L", NULL, "SYSCLK" },
+       { "ASRC1R", NULL, "SYSCLK" },
+       { "ASRC2L", NULL, "SYSCLK" },
+       { "ASRC2R", NULL, "SYSCLK" },
+
+       { "ASRC1L", NULL, "ASYNCCLK" },
+       { "ASRC1R", NULL, "ASYNCCLK" },
+       { "ASRC2L", NULL, "ASYNCCLK" },
+       { "ASRC2R", NULL, "ASYNCCLK" },
+
        { "MICBIAS1", NULL, "MICVDD" },
        { "MICBIAS2", NULL, "MICVDD" },
        { "MICBIAS3", NULL, "MICVDD" },
index 156547026a40e86506b01b7d56c1d84c73239227..673dc598c2342a6040ce6395856f15a1a2fc3920 100644 (file)
@@ -1745,6 +1745,16 @@ static const struct snd_soc_dapm_route wm5110_dapm_routes[] = {
        { "IN4L", NULL, "SYSCLK" },
        { "IN4R", NULL, "SYSCLK" },
 
+       { "ASRC1L", NULL, "SYSCLK" },
+       { "ASRC1R", NULL, "SYSCLK" },
+       { "ASRC2L", NULL, "SYSCLK" },
+       { "ASRC2R", NULL, "SYSCLK" },
+
+       { "ASRC1L", NULL, "ASYNCCLK" },
+       { "ASRC1R", NULL, "ASYNCCLK" },
+       { "ASRC2L", NULL, "ASYNCCLK" },
+       { "ASRC2R", NULL, "ASYNCCLK" },
+
        { "MICBIAS1", NULL, "MICVDD" },
        { "MICBIAS2", NULL, "MICVDD" },
        { "MICBIAS3", NULL, "MICVDD" },
index 3a5c896a2d138f3fd9c7294786e5663373c10231..6ba7dbf8b9cc158aacfac6ce009dbc73108ac2b5 100644 (file)
@@ -966,6 +966,16 @@ static const struct snd_soc_dapm_route wm8998_dapm_routes[] = {
        { "IN2A", NULL, "SYSCLK" },
        { "IN2B", NULL, "SYSCLK" },
 
+       { "ASRC1L", NULL, "SYSCLK" },
+       { "ASRC1R", NULL, "SYSCLK" },
+       { "ASRC2L", NULL, "SYSCLK" },
+       { "ASRC2R", NULL, "SYSCLK" },
+
+       { "ASRC1L", NULL, "ASYNCCLK" },
+       { "ASRC1R", NULL, "ASYNCCLK" },
+       { "ASRC2L", NULL, "ASYNCCLK" },
+       { "ASRC2R", NULL, "ASYNCCLK" },
+
        { "SPD1", NULL, "SYSCLK" },
        { "SPD1", NULL, "SPD1TX1" },
        { "SPD1", NULL, "SPD1TX2" },