diff mbox series

[5/9] ASoC: Intel: add multi-function SDW mockup codec match

Message ID 20250305135443.201884-6-yung-chuan.liao@linux.intel.com (mailing list archive)
State Accepted
Commit e1a0657c6d943528ef58671594ca7e5b17db5394
Headers show
Series ASoC: Intel: boards: updates for 6.15 | expand

Commit Message

Bard Liao March 5, 2025, 1:54 p.m. UTC
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>
---
 .../common/soc-acpi-intel-sdw-mockup-match.c  | 42 +++++++++++++++++++
 .../common/soc-acpi-intel-sdw-mockup-match.h  |  1 +
 2 files changed, 43 insertions(+)
diff mbox series

Patch

diff --git a/sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.c b/sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.c
index a3d33997736a..d122ce69fa4f 100644
--- a/sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.c
+++ b/sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.c
@@ -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,
+	},
+	{}
+};
diff --git a/sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.h b/sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.h
index c99eecd19e03..f7ed5beaca96 100644
--- a/sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.h
+++ b/sound/soc/intel/common/soc-acpi-intel-sdw-mockup-match.h
@@ -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