mirror of https://gitee.com/openkylin/linux.git
ASoC: Intel: soc-acpi: add support for SDCA boards
The description and board layout is similar to previous ones for CometLake and TigerLake, except for a bump to SoundWire 1.2 and updates to part numbers to reflect the SDCA (SoundWire Device Class for Audio) hardware support. Note that one of the RT1316 amplifiers uses a non-zero UniqueID which is not required and will be ignored. Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Jaska Uimonen <jaska.uimonen@intel.com> Reviewed-by: Rander Wang <rander.wang@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200821195603.215535-6-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
6cb8bd60ba
commit
44751fc5f0
|
@ -150,6 +150,38 @@ static const struct snd_soc_acpi_adr_device rt715_3_adr[] = {
|
|||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {
|
||||
{
|
||||
.adr = 0x000030025D071101,
|
||||
.num_endpoints = 1,
|
||||
.endpoints = &single_endpoint,
|
||||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = {
|
||||
{
|
||||
.adr = 0x000131025D131601, /* unique ID is set for some reason */
|
||||
.num_endpoints = 1,
|
||||
.endpoints = &spk_l_endpoint,
|
||||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {
|
||||
{
|
||||
.adr = 0x000230025D131601,
|
||||
.num_endpoints = 1,
|
||||
.endpoints = &spk_r_endpoint,
|
||||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_adr_device rt714_3_adr[] = {
|
||||
{
|
||||
.adr = 0x000330025D071401,
|
||||
.num_endpoints = 1,
|
||||
.endpoints = &single_endpoint,
|
||||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_link_adr cml_3_in_1_default[] = {
|
||||
{
|
||||
.mask = BIT(0),
|
||||
|
@ -193,6 +225,30 @@ static const struct snd_soc_acpi_link_adr cml_3_in_1_mono_amp[] = {
|
|||
{}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_link_adr cml_3_in_1_sdca[] = {
|
||||
{
|
||||
.mask = BIT(0),
|
||||
.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
|
||||
.adr_d = rt711_sdca_0_adr,
|
||||
},
|
||||
{
|
||||
.mask = BIT(1),
|
||||
.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
|
||||
.adr_d = rt1316_1_group1_adr,
|
||||
},
|
||||
{
|
||||
.mask = BIT(2),
|
||||
.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
|
||||
.adr_d = rt1316_2_group1_adr,
|
||||
},
|
||||
{
|
||||
.mask = BIT(3),
|
||||
.num_adr = ARRAY_SIZE(rt714_3_adr),
|
||||
.adr_d = rt714_3_adr,
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
struct snd_soc_acpi_mach snd_soc_acpi_intel_cml_sdw_machines[] = {
|
||||
{
|
||||
.link_mask = 0xF, /* 4 active links required */
|
||||
|
@ -201,6 +257,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cml_sdw_machines[] = {
|
|||
.sof_fw_filename = "sof-cml.ri",
|
||||
.sof_tplg_filename = "sof-cml-rt711-rt1308-rt715.tplg",
|
||||
},
|
||||
{
|
||||
.link_mask = 0xF, /* 4 active links required */
|
||||
.links = cml_3_in_1_sdca,
|
||||
.drv_name = "sof_sdw",
|
||||
.sof_fw_filename = "sof-cml.ri",
|
||||
.sof_tplg_filename = "sof-cml-rt711-rt1316-rt714.tplg",
|
||||
},
|
||||
{
|
||||
/*
|
||||
* link_mask should be 0xB, but all links are enabled by BIOS.
|
||||
|
|
|
@ -109,6 +109,38 @@ static const struct snd_soc_acpi_adr_device rt5682_0_adr[] = {
|
|||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {
|
||||
{
|
||||
.adr = 0x000030025D071101,
|
||||
.num_endpoints = 1,
|
||||
.endpoints = &single_endpoint,
|
||||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = {
|
||||
{
|
||||
.adr = 0x000131025D131601, /* unique ID is set for some reason */
|
||||
.num_endpoints = 1,
|
||||
.endpoints = &spk_l_endpoint,
|
||||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {
|
||||
{
|
||||
.adr = 0x000230025D131601,
|
||||
.num_endpoints = 1,
|
||||
.endpoints = &spk_r_endpoint,
|
||||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_adr_device rt714_3_adr[] = {
|
||||
{
|
||||
.adr = 0x000330025D071401,
|
||||
.num_endpoints = 1,
|
||||
.endpoints = &single_endpoint,
|
||||
}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_link_adr tgl_i2s_rt1308[] = {
|
||||
{
|
||||
.mask = BIT(0),
|
||||
|
@ -189,6 +221,30 @@ static const struct snd_soc_acpi_link_adr tgl_3_in_1_mono_amp[] = {
|
|||
{}
|
||||
};
|
||||
|
||||
static const struct snd_soc_acpi_link_adr tgl_3_in_1_sdca[] = {
|
||||
{
|
||||
.mask = BIT(0),
|
||||
.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
|
||||
.adr_d = rt711_sdca_0_adr,
|
||||
},
|
||||
{
|
||||
.mask = BIT(1),
|
||||
.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
|
||||
.adr_d = rt1316_1_group1_adr,
|
||||
},
|
||||
{
|
||||
.mask = BIT(2),
|
||||
.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
|
||||
.adr_d = rt1316_2_group1_adr,
|
||||
},
|
||||
{
|
||||
.mask = BIT(3),
|
||||
.num_adr = ARRAY_SIZE(rt714_3_adr),
|
||||
.adr_d = rt714_3_adr,
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
static struct snd_soc_acpi_codecs tgl_max98373_amp = {
|
||||
.num_codecs = 1,
|
||||
.codecs = {"MX98373"}
|
||||
|
@ -244,6 +300,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_sdw_machines[] = {
|
|||
.sof_fw_filename = "sof-tgl.ri",
|
||||
.sof_tplg_filename = "sof-tgl-rt711-rt1308-mono-rt715.tplg",
|
||||
},
|
||||
{
|
||||
.link_mask = 0xF, /* 4 active links required */
|
||||
.links = tgl_3_in_1_sdca,
|
||||
.drv_name = "sof_sdw",
|
||||
.sof_fw_filename = "sof-tgl.ri",
|
||||
.sof_tplg_filename = "sof-tgl-rt711-rt1316-rt714.tplg",
|
||||
},
|
||||
{
|
||||
.link_mask = 0x3, /* rt711 on link 0 and 2 rt1308s on link 1 */
|
||||
.links = tgl_rvp,
|
||||
|
|
Loading…
Reference in New Issue