ASoC: Intel: maxim-common: support max98357a
Move max98357a code to this common module so it could be shared between multiple SOF machine drivers. Signed-off-by: Brent Lu <brent.lu@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20210505163705.305616-12-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
81cd42e517
commit
a21515b5aa
@ -133,5 +133,65 @@ void max_98373_set_codec_conf(struct snd_soc_card *card)
|
||||
}
|
||||
EXPORT_SYMBOL_NS(max_98373_set_codec_conf, SND_SOC_INTEL_SOF_MAXIM_COMMON);
|
||||
|
||||
/*
|
||||
* Maxim MAX98357A
|
||||
*/
|
||||
static const struct snd_kcontrol_new max_98357a_kcontrols[] = {
|
||||
SOC_DAPM_PIN_SWITCH("Spk"),
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_widget max_98357a_dapm_widgets[] = {
|
||||
SND_SOC_DAPM_SPK("Spk", NULL),
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_route max_98357a_dapm_routes[] = {
|
||||
/* speaker */
|
||||
{"Spk", NULL, "Speaker"},
|
||||
};
|
||||
|
||||
static struct snd_soc_dai_link_component max_98357a_components[] = {
|
||||
{
|
||||
.name = MAX_98357A_DEV0_NAME,
|
||||
.dai_name = MAX_98357A_CODEC_DAI,
|
||||
}
|
||||
};
|
||||
|
||||
static int max_98357a_init(struct snd_soc_pcm_runtime *rtd)
|
||||
{
|
||||
struct snd_soc_card *card = rtd->card;
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_dapm_new_controls(&card->dapm, max_98357a_dapm_widgets,
|
||||
ARRAY_SIZE(max_98357a_dapm_widgets));
|
||||
if (ret) {
|
||||
dev_err(rtd->dev, "unable to add dapm controls, ret %d\n", ret);
|
||||
/* Don't need to add routes if widget addition failed */
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = snd_soc_add_card_controls(card, max_98357a_kcontrols,
|
||||
ARRAY_SIZE(max_98357a_kcontrols));
|
||||
if (ret) {
|
||||
dev_err(rtd->dev, "unable to add card controls, ret %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = snd_soc_dapm_add_routes(&card->dapm, max_98357a_dapm_routes,
|
||||
ARRAY_SIZE(max_98357a_dapm_routes));
|
||||
|
||||
if (ret)
|
||||
dev_err(rtd->dev, "unable to add dapm routes, ret %d\n", ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void max_98357a_dai_link(struct snd_soc_dai_link *link)
|
||||
{
|
||||
link->codecs = max_98357a_components;
|
||||
link->num_codecs = ARRAY_SIZE(max_98357a_components);
|
||||
link->init = max_98357a_init;
|
||||
}
|
||||
EXPORT_SYMBOL_NS(max_98357a_dai_link, SND_SOC_INTEL_SOF_MAXIM_COMMON);
|
||||
|
||||
MODULE_DESCRIPTION("ASoC Intel SOF Maxim helpers");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -24,4 +24,12 @@ int max_98373_spk_codec_init(struct snd_soc_pcm_runtime *rtd);
|
||||
void max_98373_set_codec_conf(struct snd_soc_card *card);
|
||||
int max_98373_trigger(struct snd_pcm_substream *substream, int cmd);
|
||||
|
||||
/*
|
||||
* Maxim MAX98357A
|
||||
*/
|
||||
#define MAX_98357A_CODEC_DAI "HiFi"
|
||||
#define MAX_98357A_DEV0_NAME "MX98357A:00"
|
||||
|
||||
void max_98357a_dai_link(struct snd_soc_dai_link *link);
|
||||
|
||||
#endif /* __SOF_MAXIM_COMMON_H */
|
||||
|
Loading…
Reference in New Issue
Block a user