You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
ASoC: Intel: add sof-nau8825 machine driver
The machine driver is a generic machine driver for SOF with nau8825 codec w or w/o speaker additionally. Depending on the SOC HDMI, DMIC, Bluetooth offload support are added dynamically. Only add information related to SOF since the machine driver was only tested with SOF. There are currently 4 i2s machine variants of ADL. This supports the headphone NUA8825(SSP0) alone or with smart or dumb speakers. Board 2,3,4 use SSP2 for Bluetooth offload support except board 1. Board 1 : NAU8825 + RT1019P(SSP2) Board 2 : NAU8825 + MAX98373(SSP1) Board 3 : NAU8825 + MAX98360A(SSP1) Board 4 : NAU8825 Signed-off-by: David Lin <CTLIN0@nuvoton.com> Co-developed-by: Mac Chiang <mac.chiang@intel.com> Signed-off-by: Mac Chiang <mac.chiang@intel.com> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20211109133808.8729-1-mac.chiang@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
@@ -527,6 +527,25 @@ config SND_SOC_INTEL_SOF_ES8336_MACH
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_INTEL_SOF_NAU8825_MACH
|
||||
tristate "SOF with nau8825 codec in I2S Mode"
|
||||
depends on I2C && ACPI && GPIOLIB
|
||||
depends on ((SND_HDA_CODEC_HDMI && SND_SOC_SOF_HDA_AUDIO_CODEC) &&\
|
||||
(MFD_INTEL_LPSS || COMPILE_TEST))
|
||||
select SND_SOC_NAU8825
|
||||
select SND_SOC_RT1015P
|
||||
select SND_SOC_MAX98373_I2C
|
||||
select SND_SOC_MAX98357A
|
||||
select SND_SOC_DMIC
|
||||
select SND_SOC_HDAC_HDMI
|
||||
select SND_SOC_INTEL_HDA_DSP_COMMON
|
||||
select SND_SOC_INTEL_SOF_MAXIM_COMMON
|
||||
help
|
||||
This adds support for ASoC machine driver for SOF platforms
|
||||
with nau8825 codec.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
endif ## SND_SOC_SOF_HDA_LINK || SND_SOC_SOF_BAYTRAIL
|
||||
|
||||
if (SND_SOC_SOF_COMETLAKE && SND_SOC_SOF_HDA_LINK)
|
||||
|
||||
@@ -22,6 +22,7 @@ snd-soc-sst-byt-cht-nocodec-objs := bytcht_nocodec.o
|
||||
snd-soc-sof_rt5682-objs := sof_rt5682.o sof_realtek_common.o
|
||||
snd-soc-sof_cs42l42-objs := sof_cs42l42.o
|
||||
snd-soc-sof_es8336-objs := sof_es8336.o
|
||||
snd-soc-sof_nau8825-objs := sof_nau8825.o sof_realtek_common.o
|
||||
snd-soc-cml_rt1011_rt5682-objs := cml_rt1011_rt5682.o
|
||||
snd-soc-kbl_da7219_max98357a-objs := kbl_da7219_max98357a.o
|
||||
snd-soc-kbl_da7219_max98927-objs := kbl_da7219_max98927.o
|
||||
@@ -44,6 +45,7 @@ snd-soc-sof-sdw-objs += sof_sdw.o \
|
||||
obj-$(CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH) += snd-soc-sof_rt5682.o
|
||||
obj-$(CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH) += snd-soc-sof_cs42l42.o
|
||||
obj-$(CONFIG_SND_SOC_INTEL_SOF_ES8336_MACH) += snd-soc-sof_es8336.o
|
||||
obj-$(CONFIG_SND_SOC_INTEL_SOF_NAU8825_MACH) += snd-soc-sof_nau8825.o
|
||||
obj-$(CONFIG_SND_SOC_INTEL_HASWELL_MACH) += snd-soc-sst-haswell.o
|
||||
obj-$(CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON) += snd-soc-sst-bxt-da7219_max98357a.o
|
||||
obj-$(CONFIG_SND_SOC_INTEL_BXT_RT298_MACH) += snd-soc-sst-bxt-rt298.o
|
||||
|
||||
651
sound/soc/intel/boards/sof_nau8825.c
Normal file
651
sound/soc/intel/boards/sof_nau8825.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -374,6 +374,11 @@ static const struct snd_soc_acpi_codecs adl_rt5682_rt5682s_hp = {
|
||||
.codecs = {"10EC5682", "RTL5682"},
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_codecs adl_rt1019p_amp = {
|
||||
.num_codecs = 1,
|
||||
.codecs = {"RTL1019"}
|
||||
};
|
||||
|
||||
struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = {
|
||||
{
|
||||
.comp_ids = &adl_rt5682_rt5682s_hp,
|
||||
@@ -399,6 +404,36 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = {
|
||||
.sof_fw_filename = "sof-adl.ri",
|
||||
.sof_tplg_filename = "sof-adl-max98360a-rt5682.tplg",
|
||||
},
|
||||
{
|
||||
.id = "10508825",
|
||||
.drv_name = "adl_rt1019p_nau8825",
|
||||
.machine_quirk = snd_soc_acpi_codec_list,
|
||||
.quirk_data = &adl_rt1019p_amp,
|
||||
.sof_fw_filename = "sof-adl.ri",
|
||||
.sof_tplg_filename = "sof-adl-rt1019-nau8825.tplg",
|
||||
},
|
||||
{
|
||||
.id = "10508825",
|
||||
.drv_name = "adl_max98373_nau8825",
|
||||
.machine_quirk = snd_soc_acpi_codec_list,
|
||||
.quirk_data = &adl_max98373_amp,
|
||||
.sof_fw_filename = "sof-adl.ri",
|
||||
.sof_tplg_filename = "sof-adl-max98373-nau8825.tplg",
|
||||
},
|
||||
{
|
||||
.id = "10508825",
|
||||
.drv_name = "adl_mx98360a_nau8825",
|
||||
.machine_quirk = snd_soc_acpi_codec_list,
|
||||
.quirk_data = &adl_max98360a_amp,
|
||||
.sof_fw_filename = "sof-adl.ri",
|
||||
.sof_tplg_filename = "sof-adl-mx98360a-nau8825.tplg",
|
||||
},
|
||||
{
|
||||
.id = "10508825",
|
||||
.drv_name = "sof_nau8825",
|
||||
.sof_fw_filename = "sof-adl.ri",
|
||||
.sof_tplg_filename = "sof-adl-nau8825.tplg",
|
||||
},
|
||||
{},
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines);
|
||||
|
||||
Reference in New Issue
Block a user