ASoC: Intel: sof_rt5682: Add support for max98360a speaker amp
authorMalik_Hsu <malik_hsu@wistron.corp-partner.google.com>
Fri, 1 Oct 2021 15:03:16 +0000 (23:03 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 1 Oct 2021 18:35:00 +0000 (19:35 +0100)
Add a board config adl_mx98360a_rt5682 to support alc5682 headset
codec and max98360a speaker amplifier. Follow Intel BT offload design
by connecting alc5682 to SSP0 and max98360a to SSP1.

Signed-off-by: Malik_Hsu <malik_hsu@wistron.corp-partner.google.com>
Signed-off-by: Brent Lu <brent.lu@intel.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20211001150316.414141-1-brent.lu@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_rt5682.c
sound/soc/intel/common/soc-acpi-intel-adl-match.c

index ad42d4c7ade5f6da0132a375153f5fc6a577b9a2..613662eedd0d8a73720454413dbc710768e9a146 100644 (file)
@@ -1076,6 +1076,17 @@ static const struct platform_device_id board_ids[] = {
                                        SOF_MAX98360A_SPEAKER_AMP_PRESENT |
                                        SOF_RT5682_SSP_AMP(1)),
        },
+       {
+               .name = "adl_mx98360_rt5682",
+               .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN |
+                                       SOF_RT5682_SSP_CODEC(0) |
+                                       SOF_SPEAKER_AMP_PRESENT |
+                                       SOF_MAX98360A_SPEAKER_AMP_PRESENT |
+                                       SOF_RT5682_SSP_AMP(1) |
+                                       SOF_RT5682_NUM_HDMIDEV(4) |
+                                       SOF_BT_OFFLOAD_SSP(2) |
+                                       SOF_SSP_BT_OFFLOAD_PRESENT),
+       },
        { }
 };
 MODULE_DEVICE_TABLE(platform, board_ids);
index e4ff280eac23ec5fde894e41472b1c311cc7e316..f5b21a95d2220dc43346a2d28bc611e638b7656d 100644 (file)
@@ -280,6 +280,11 @@ static const struct snd_soc_acpi_codecs adl_max98357a_amp = {
        .codecs = {"MX98357A"}
 };
 
+static const struct snd_soc_acpi_codecs adl_max98360a_amp = {
+       .num_codecs = 1,
+       .codecs = {"MX98360A"}
+};
+
 struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = {
        {
                .id = "10EC5682",
@@ -297,6 +302,14 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = {
                .sof_fw_filename = "sof-adl.ri",
                .sof_tplg_filename = "sof-adl-max98357a-rt5682.tplg",
        },
+       {
+               .id = "10EC5682",
+               .drv_name = "adl_mx98360_rt5682",
+               .machine_quirk = snd_soc_acpi_codec_list,
+               .quirk_data = &adl_max98360a_amp,
+               .sof_fw_filename = "sof-adl.ri",
+               .sof_tplg_filename = "sof-adl-max98360a-rt5682.tplg",
+       },
        {},
 };
 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines);