|
@@ -3327,14 +3327,23 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|
|
case WM8958:
|
|
|
snd_soc_add_controls(codec, wm8958_snd_controls,
|
|
|
ARRAY_SIZE(wm8958_snd_controls));
|
|
|
- snd_soc_dapm_new_controls(dapm, wm8994_lateclk_widgets,
|
|
|
- ARRAY_SIZE(wm8994_lateclk_widgets));
|
|
|
- snd_soc_dapm_new_controls(dapm, wm8994_adc_widgets,
|
|
|
- ARRAY_SIZE(wm8994_adc_widgets));
|
|
|
- snd_soc_dapm_new_controls(dapm, wm8994_dac_widgets,
|
|
|
- ARRAY_SIZE(wm8994_dac_widgets));
|
|
|
snd_soc_dapm_new_controls(dapm, wm8958_dapm_widgets,
|
|
|
ARRAY_SIZE(wm8958_dapm_widgets));
|
|
|
+ if (wm8994->revision < 1) {
|
|
|
+ snd_soc_dapm_new_controls(dapm, wm8994_lateclk_revd_widgets,
|
|
|
+ ARRAY_SIZE(wm8994_lateclk_revd_widgets));
|
|
|
+ snd_soc_dapm_new_controls(dapm, wm8994_adc_revd_widgets,
|
|
|
+ ARRAY_SIZE(wm8994_adc_revd_widgets));
|
|
|
+ snd_soc_dapm_new_controls(dapm, wm8994_dac_revd_widgets,
|
|
|
+ ARRAY_SIZE(wm8994_dac_revd_widgets));
|
|
|
+ } else {
|
|
|
+ snd_soc_dapm_new_controls(dapm, wm8994_lateclk_widgets,
|
|
|
+ ARRAY_SIZE(wm8994_lateclk_widgets));
|
|
|
+ snd_soc_dapm_new_controls(dapm, wm8994_adc_widgets,
|
|
|
+ ARRAY_SIZE(wm8994_adc_widgets));
|
|
|
+ snd_soc_dapm_new_controls(dapm, wm8994_dac_widgets,
|
|
|
+ ARRAY_SIZE(wm8994_dac_widgets));
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -3358,10 +3367,17 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|
|
}
|
|
|
break;
|
|
|
case WM8958:
|
|
|
- snd_soc_dapm_add_routes(dapm, wm8994_lateclk_intercon,
|
|
|
- ARRAY_SIZE(wm8994_lateclk_intercon));
|
|
|
- snd_soc_dapm_add_routes(dapm, wm8958_intercon,
|
|
|
- ARRAY_SIZE(wm8958_intercon));
|
|
|
+ if (wm8994->revision < 1) {
|
|
|
+ snd_soc_dapm_add_routes(dapm, wm8994_revd_intercon,
|
|
|
+ ARRAY_SIZE(wm8994_revd_intercon));
|
|
|
+ snd_soc_dapm_add_routes(dapm, wm8994_lateclk_revd_intercon,
|
|
|
+ ARRAY_SIZE(wm8994_lateclk_revd_intercon));
|
|
|
+ } else {
|
|
|
+ snd_soc_dapm_add_routes(dapm, wm8994_lateclk_intercon,
|
|
|
+ ARRAY_SIZE(wm8994_lateclk_intercon));
|
|
|
+ snd_soc_dapm_add_routes(dapm, wm8958_intercon,
|
|
|
+ ARRAY_SIZE(wm8958_intercon));
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
|