]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: Intel: add multi-function SDW mockup codec match
authorBard Liao <yung-chuan.liao@linux.intel.com>
Wed, 5 Mar 2025 13:54:39 +0000 (21:54 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 5 Mar 2025 14:05:39 +0000 (14:05 +0000)
SoundWire multi function codecs are common used in recent platforms.
Add a multi function mockup codec to test without real codec.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20250305135443.201884-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.c
sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.h

index a3d33997736ab4e80c0e552c2b1303960b4b6874..d122ce69fa4f6a60a1cffe719d9c001c304089bd 100644 (file)
@@ -31,6 +31,30 @@ static const struct snd_soc_acpi_endpoint sdw_mockup_r_endpoint = {
        .group_id = 1,
 };
 
+static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints[] = {
+       /* Jack Endpoint */
+       {
+               .num = 0,
+               .aggregated = 0,
+               .group_position = 0,
+               .group_id = 0,
+       },
+       /* Amp Endpoint, work as spk_l_endpoint */
+       {
+               .num = 1,
+               .aggregated = 1,
+               .group_position = 0,
+               .group_id = 1,
+       },
+       /* DMIC Endpoint */
+       {
+               .num = 2,
+               .aggregated = 0,
+               .group_position = 0,
+               .group_id = 0,
+       },
+};
+
 static const struct snd_soc_acpi_adr_device sdw_mockup_headset_0_adr[] = {
        {
                .adr = 0x0000000105AA5500ull,
@@ -103,6 +127,15 @@ static const struct snd_soc_acpi_adr_device sdw_mockup_amp_2_group1_adr[] = {
        }
 };
 
+static const struct snd_soc_acpi_adr_device sdw_mockup_multi_function_adr[] = {
+       {
+               .adr = 0x0000000105AAAA01ull,
+               .num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints),
+               .endpoints = jack_amp_g1_dmic_endpoints,
+               .name_prefix = "sdw_mockup_mmulti-function"
+       }
+};
+
 const struct snd_soc_acpi_link_adr sdw_mockup_headset_1amp_mic[] = {
        {
                .mask = BIT(0),
@@ -164,3 +197,12 @@ const struct snd_soc_acpi_link_adr sdw_mockup_mic_headset_1amp[] = {
        },
        {}
 };
+
+const struct snd_soc_acpi_link_adr sdw_mockup_multi_func[] = {
+       {
+               .mask = BIT(0),
+               .num_adr = ARRAY_SIZE(sdw_mockup_multi_function_adr),
+               .adr_d = sdw_mockup_multi_function_adr,
+       },
+       {}
+};
index c99eecd19e0349c75e844128e566cecc6957ad6a..f7ed5beaca968cb6402986e4358a2883b283ccf8 100644 (file)
@@ -13,5 +13,6 @@
 extern const struct snd_soc_acpi_link_adr sdw_mockup_headset_1amp_mic[];
 extern const struct snd_soc_acpi_link_adr sdw_mockup_headset_2amps_mic[];
 extern const struct snd_soc_acpi_link_adr sdw_mockup_mic_headset_1amp[];
+extern const struct snd_soc_acpi_link_adr sdw_mockup_multi_func[];
 
 #endif