forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 133
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ASoC: Intel: sof_nau8825: use common module
Use nuvoton-common module to support nau8318 and realtek-common module to support rt1019p. Signed-off-by: Brent Lu <[email protected]>
- Loading branch information
Showing
2 changed files
with
5 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,6 +23,7 @@ | |
#include "hda_dsp_common.h" | ||
#include "sof_realtek_common.h" | ||
#include "sof_maxim_common.h" | ||
#include "sof_nuvoton_common.h" | ||
#include "sof_ssp_common.h" | ||
|
||
#define NAME_SIZE 32 | ||
|
@@ -213,21 +214,13 @@ static const struct snd_kcontrol_new sof_controls[] = { | |
SOC_DAPM_PIN_SWITCH("Right Spk"), | ||
}; | ||
|
||
static const struct snd_kcontrol_new speaker_controls[] = { | ||
SOC_DAPM_PIN_SWITCH("Spk"), | ||
}; | ||
|
||
static const struct snd_soc_dapm_widget sof_widgets[] = { | ||
SND_SOC_DAPM_HP("Headphone Jack", NULL), | ||
SND_SOC_DAPM_MIC("Headset Mic", NULL), | ||
SND_SOC_DAPM_SPK("Left Spk", NULL), | ||
SND_SOC_DAPM_SPK("Right Spk", NULL), | ||
}; | ||
|
||
static const struct snd_soc_dapm_widget speaker_widgets[] = { | ||
SND_SOC_DAPM_SPK("Spk", NULL), | ||
}; | ||
|
||
static const struct snd_soc_dapm_widget dmic_widgets[] = { | ||
SND_SOC_DAPM_MIC("SoC DMIC", NULL), | ||
}; | ||
|
@@ -241,44 +234,11 @@ static const struct snd_soc_dapm_route sof_map[] = { | |
{ "MIC", NULL, "Headset Mic" }, | ||
}; | ||
|
||
static const struct snd_soc_dapm_route speaker_map[] = { | ||
/* speaker */ | ||
{ "Spk", NULL, "Speaker" }, | ||
}; | ||
|
||
static const struct snd_soc_dapm_route dmic_map[] = { | ||
/* digital mics */ | ||
{"DMic", NULL, "SoC DMIC"}, | ||
}; | ||
|
||
static int speaker_codec_init(struct snd_soc_pcm_runtime *rtd) | ||
{ | ||
struct snd_soc_card *card = rtd->card; | ||
int ret; | ||
|
||
ret = snd_soc_dapm_new_controls(&card->dapm, speaker_widgets, | ||
ARRAY_SIZE(speaker_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, speaker_controls, | ||
ARRAY_SIZE(speaker_controls)); | ||
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, speaker_map, | ||
ARRAY_SIZE(speaker_map)); | ||
|
||
if (ret) | ||
dev_err(rtd->dev, "Speaker map addition failed: %d\n", ret); | ||
return ret; | ||
} | ||
|
||
static int dmic_init(struct snd_soc_pcm_runtime *rtd) | ||
{ | ||
struct snd_soc_card *card = rtd->card; | ||
|
@@ -329,20 +289,6 @@ static struct snd_soc_dai_link_component dmic_component[] = { | |
} | ||
}; | ||
|
||
static struct snd_soc_dai_link_component rt1019p_component[] = { | ||
{ | ||
.name = "RTL1019:00", | ||
.dai_name = "HiFi", | ||
} | ||
}; | ||
|
||
static struct snd_soc_dai_link_component nau8318_components[] = { | ||
{ | ||
.name = "NVTN2012:00", | ||
.dai_name = "nau8315-hifi", | ||
} | ||
}; | ||
|
||
static struct snd_soc_dai_link * | ||
sof_card_dai_links_create(struct device *dev, enum sof_ssp_codec amp_type, | ||
int ssp_codec, int ssp_amp, int dmic_be_num, | ||
|
@@ -478,17 +424,13 @@ sof_card_dai_links_create(struct device *dev, enum sof_ssp_codec amp_type, | |
links[id].ops = &max_98373_ops; | ||
break; | ||
case CODEC_NAU8318: | ||
links[id].codecs = nau8318_components; | ||
links[id].num_codecs = ARRAY_SIZE(nau8318_components); | ||
links[id].init = speaker_codec_init; | ||
nau8318_set_dai_link(&links[id]); | ||
break; | ||
case CODEC_RT1015P: | ||
sof_rt1015p_dai_link(&links[id]); | ||
break; | ||
case CODEC_RT1019P: | ||
links[id].codecs = rt1019p_component; | ||
links[id].num_codecs = ARRAY_SIZE(rt1019p_component); | ||
links[id].init = speaker_codec_init; | ||
sof_rt1019p_dai_link(&links[id]); | ||
break; | ||
default: | ||
dev_err(dev, "invalid amp type %d\n", amp_type); | ||
|
@@ -715,5 +657,6 @@ MODULE_AUTHOR("Brent Lu <[email protected]>"); | |
MODULE_LICENSE("GPL"); | ||
MODULE_IMPORT_NS(SND_SOC_INTEL_HDA_DSP_COMMON); | ||
MODULE_IMPORT_NS(SND_SOC_INTEL_SOF_MAXIM_COMMON); | ||
MODULE_IMPORT_NS(SND_SOC_INTEL_SOF_NUVOTON_COMMON); | ||
MODULE_IMPORT_NS(SND_SOC_INTEL_SOF_REALTEK_COMMON); | ||
MODULE_IMPORT_NS(SND_SOC_INTEL_SOF_SSP_COMMON); |