// SPDX-License-Identifier: GPL-2.0-only // // soc-acpi-intel-sdw-mockup-match.c - tables and support for SoundWire // mockup device ACPI enumeration. // // Copyright (c) 2021, Intel Corporation. // #include #include #include "soc-acpi-intel-sdw-mockup-match.h" static const struct snd_soc_acpi_endpoint sdw_mockup_single_endpoint = { .num = 0, .aggregated = 0, .group_position = 0, .group_id = 0, }; static const struct snd_soc_acpi_endpoint sdw_mockup_l_endpoint = { .num = 0, .aggregated = 1, .group_position = 0, .group_id = 1, }; static const struct snd_soc_acpi_endpoint sdw_mockup_r_endpoint = { .num = 0, .aggregated = 1, .group_position = 1, .group_id = 1, }; static const struct snd_soc_acpi_adr_device sdw_mockup_headset_0_adr[] = { { .adr = 0x0000000105AA5500ull, .num_endpoints = 1, .endpoints = &sdw_mockup_single_endpoint, .name_prefix = "sdw_mockup_headset0" } }; static const struct snd_soc_acpi_adr_device sdw_mockup_headset_1_adr[] = { { .adr = 0x0001000105AA5500ull, .num_endpoints = 1, .endpoints = &sdw_mockup_single_endpoint, .name_prefix = "sdw_mockup_headset1" } }; static const struct snd_soc_acpi_adr_device sdw_mockup_amp_1_adr[] = { { .adr = 0x000100010555AA00ull, .num_endpoints = 1, .endpoints = &sdw_mockup_single_endpoint, .name_prefix = "sdw_mockup_amp1" } }; static const struct snd_soc_acpi_adr_device sdw_mockup_amp_2_adr[] = { { .adr = 0x000200010555AA00ull, .num_endpoints = 1, .endpoints = &sdw_mockup_single_endpoint, .name_prefix = "sdw_mockup_amp2" } }; static const struct snd_soc_acpi_adr_device sdw_mockup_mic_0_adr[] = { { .adr = 0x0000000105555500ull, .num_endpoints = 1, .endpoints = &sdw_mockup_single_endpoint, .name_prefix = "sdw_mockup_mic0" } }; static const struct snd_soc_acpi_adr_device sdw_mockup_mic_3_adr[] = { { .adr = 0x0003000105555500ull, .num_endpoints = 1, .endpoints = &sdw_mockup_single_endpoint, .name_prefix = "sdw_mockup_mic3" } }; static const struct snd_soc_acpi_adr_device sdw_mockup_amp_1_group1_adr[] = { { .adr = 0x000100010555AA00ull, .num_endpoints = 1, .endpoints = &sdw_mockup_l_endpoint, .name_prefix = "sdw_mockup_amp1_l" } }; static const struct snd_soc_acpi_adr_device sdw_mockup_amp_2_group1_adr[] = { { .adr = 0x000200010555AA00ull, .num_endpoints = 1, .endpoints = &sdw_mockup_r_endpoint, .name_prefix = "sdw_mockup_amp2_r" } }; const struct snd_soc_acpi_link_adr sdw_mockup_headset_1amp_mic[] = { { .mask = BIT(0), .num_adr = ARRAY_SIZE(sdw_mockup_headset_0_adr), .adr_d = sdw_mockup_headset_0_adr, }, { .mask = BIT(1), .num_adr = ARRAY_SIZE(sdw_mockup_amp_1_adr), .adr_d = sdw_mockup_amp_1_adr, }, { .mask = BIT(3), .num_adr = ARRAY_SIZE(sdw_mockup_mic_3_adr), .adr_d = sdw_mockup_mic_3_adr, }, {} }; const struct snd_soc_acpi_link_adr sdw_mockup_headset_2amps_mic[] = { { .mask = BIT(0), .num_adr = ARRAY_SIZE(sdw_mockup_headset_0_adr), .adr_d = sdw_mockup_headset_0_adr, }, { .mask = BIT(1), .num_adr = ARRAY_SIZE(sdw_mockup_amp_1_group1_adr), .adr_d = sdw_mockup_amp_1_group1_adr, }, { .mask = BIT(2), .num_adr = ARRAY_SIZE(sdw_mockup_amp_2_group1_adr), .adr_d = sdw_mockup_amp_2_group1_adr, }, { .mask = BIT(3), .num_adr = ARRAY_SIZE(sdw_mockup_mic_3_adr), .adr_d = sdw_mockup_mic_3_adr, }, {} }; const struct snd_soc_acpi_link_adr sdw_mockup_mic_headset_1amp[] = { { .mask = BIT(1), .num_adr = ARRAY_SIZE(sdw_mockup_headset_1_adr), .adr_d = sdw_mockup_headset_1_adr, }, { .mask = BIT(2), .num_adr = ARRAY_SIZE(sdw_mockup_amp_2_adr), .adr_d = sdw_mockup_amp_2_adr, }, { .mask = BIT(0), .num_adr = ARRAY_SIZE(sdw_mockup_mic_0_adr), .adr_d = sdw_mockup_mic_0_adr, }, {} };