|
@@ -173,6 +173,26 @@ struct cs4271_private {
|
|
|
bool enable_soft_reset;
|
|
|
};
|
|
|
|
|
|
+static const struct snd_soc_dapm_widget cs4271_dapm_widgets[] = {
|
|
|
+SND_SOC_DAPM_INPUT("AINA"),
|
|
|
+SND_SOC_DAPM_INPUT("AINB"),
|
|
|
+
|
|
|
+SND_SOC_DAPM_OUTPUT("AOUTA+"),
|
|
|
+SND_SOC_DAPM_OUTPUT("AOUTA-"),
|
|
|
+SND_SOC_DAPM_OUTPUT("AOUTB+"),
|
|
|
+SND_SOC_DAPM_OUTPUT("AOUTB-"),
|
|
|
+};
|
|
|
+
|
|
|
+static const struct snd_soc_dapm_route cs4271_dapm_routes[] = {
|
|
|
+ { "Capture", NULL, "AINA" },
|
|
|
+ { "Capture", NULL, "AINB" },
|
|
|
+
|
|
|
+ { "AOUTA+", NULL, "Playback" },
|
|
|
+ { "AOUTA-", NULL, "Playback" },
|
|
|
+ { "AOUTB+", NULL, "Playback" },
|
|
|
+ { "AOUTB-", NULL, "Playback" },
|
|
|
+};
|
|
|
+
|
|
|
/*
|
|
|
* @freq is the desired MCLK rate
|
|
|
* MCLK rate should (c) be the sample rate, multiplied by one of the
|
|
@@ -576,8 +596,7 @@ static int cs4271_probe(struct snd_soc_codec *codec)
|
|
|
CS4271_MODE2_MUTECAEQUB,
|
|
|
CS4271_MODE2_MUTECAEQUB);
|
|
|
|
|
|
- return snd_soc_add_codec_controls(codec, cs4271_snd_controls,
|
|
|
- ARRAY_SIZE(cs4271_snd_controls));
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static int cs4271_remove(struct snd_soc_codec *codec)
|
|
@@ -596,6 +615,13 @@ static struct snd_soc_codec_driver soc_codec_dev_cs4271 = {
|
|
|
.remove = cs4271_remove,
|
|
|
.suspend = cs4271_soc_suspend,
|
|
|
.resume = cs4271_soc_resume,
|
|
|
+
|
|
|
+ .controls = cs4271_snd_controls,
|
|
|
+ .num_controls = ARRAY_SIZE(cs4271_snd_controls),
|
|
|
+ .dapm_widgets = cs4271_dapm_widgets,
|
|
|
+ .num_dapm_widgets = ARRAY_SIZE(cs4271_dapm_widgets),
|
|
|
+ .dapm_routes = cs4271_dapm_routes,
|
|
|
+ .num_dapm_routes = ARRAY_SIZE(cs4271_dapm_routes),
|
|
|
};
|
|
|
|
|
|
#if defined(CONFIG_SPI_MASTER)
|