1 // SPDX-License-Identifier: GPL-2.0-only 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 2 /* 3 * amd-acp63-acpi-match.c - tables and support 3 * amd-acp63-acpi-match.c - tables and support for ACP 6.3 platform 4 * ACPI enumeration. 4 * ACPI enumeration. 5 * 5 * 6 * Copyright 2024 Advanced Micro Devices, Inc. 6 * Copyright 2024 Advanced Micro Devices, Inc. 7 */ 7 */ 8 8 9 #include <sound/soc-acpi.h> 9 #include <sound/soc-acpi.h> 10 #include "../mach-config.h" 10 #include "../mach-config.h" 11 11 12 static const struct snd_soc_acpi_endpoint sing 12 static const struct snd_soc_acpi_endpoint single_endpoint = { 13 .num = 0, 13 .num = 0, 14 .aggregated = 0, 14 .aggregated = 0, 15 .group_position = 0, 15 .group_position = 0, 16 .group_id = 0 16 .group_id = 0 17 }; 17 }; 18 18 19 static const struct snd_soc_acpi_endpoint spk_ 19 static const struct snd_soc_acpi_endpoint spk_l_endpoint = { 20 .num = 0, 20 .num = 0, 21 .aggregated = 1, 21 .aggregated = 1, 22 .group_position = 0, 22 .group_position = 0, 23 .group_id = 1 23 .group_id = 1 24 }; 24 }; 25 25 26 static const struct snd_soc_acpi_endpoint spk_ 26 static const struct snd_soc_acpi_endpoint spk_r_endpoint = { 27 .num = 0, 27 .num = 0, 28 .aggregated = 1, 28 .aggregated = 1, 29 .group_position = 1, 29 .group_position = 1, 30 .group_id = 1 30 .group_id = 1 31 }; 31 }; 32 32 33 static const struct snd_soc_acpi_adr_device rt 33 static const struct snd_soc_acpi_adr_device rt711_rt1316_group_adr[] = { 34 { 34 { 35 .adr = 0x000030025D071101ull, 35 .adr = 0x000030025D071101ull, 36 .num_endpoints = 1, 36 .num_endpoints = 1, 37 .endpoints = &single_endpoint, 37 .endpoints = &single_endpoint, 38 .name_prefix = "rt711" 38 .name_prefix = "rt711" 39 }, 39 }, 40 { 40 { 41 .adr = 0x000030025D131601ull, 41 .adr = 0x000030025D131601ull, 42 .num_endpoints = 1, 42 .num_endpoints = 1, 43 .endpoints = &spk_l_endpoint, 43 .endpoints = &spk_l_endpoint, 44 .name_prefix = "rt1316-1" 44 .name_prefix = "rt1316-1" 45 }, 45 }, 46 { 46 { 47 .adr = 0x000032025D131601ull, 47 .adr = 0x000032025D131601ull, 48 .num_endpoints = 1, 48 .num_endpoints = 1, 49 .endpoints = &spk_r_endpoint, 49 .endpoints = &spk_r_endpoint, 50 .name_prefix = "rt1316-2" 50 .name_prefix = "rt1316-2" 51 }, 51 }, 52 }; 52 }; 53 53 54 static const struct snd_soc_acpi_adr_device rt 54 static const struct snd_soc_acpi_adr_device rt714_adr[] = { 55 { 55 { 56 .adr = 0x130025d071401ull, 56 .adr = 0x130025d071401ull, 57 .num_endpoints = 1, 57 .num_endpoints = 1, 58 .endpoints = &single_endpoint, 58 .endpoints = &single_endpoint, 59 .name_prefix = "rt714" 59 .name_prefix = "rt714" 60 } 60 } 61 }; 61 }; 62 62 63 static const struct snd_soc_acpi_link_adr acp6 63 static const struct snd_soc_acpi_link_adr acp63_4_in_1_sdca[] = { 64 { .mask = BIT(0), 64 { .mask = BIT(0), 65 .num_adr = ARRAY_SIZE(rt711_rt 65 .num_adr = ARRAY_SIZE(rt711_rt1316_group_adr), 66 .adr_d = rt711_rt1316_group_ad 66 .adr_d = rt711_rt1316_group_adr, 67 }, 67 }, 68 { 68 { 69 .mask = BIT(1), 69 .mask = BIT(1), 70 .num_adr = ARRAY_SIZE(rt714_ad 70 .num_adr = ARRAY_SIZE(rt714_adr), 71 .adr_d = rt714_adr, 71 .adr_d = rt714_adr, 72 }, 72 }, 73 {} 73 {} 74 }; 74 }; 75 75 76 struct snd_soc_acpi_mach snd_soc_acpi_amd_acp6 76 struct snd_soc_acpi_mach snd_soc_acpi_amd_acp63_sof_sdw_machines[] = { 77 { 77 { 78 .link_mask = BIT(0) | BIT(1), 78 .link_mask = BIT(0) | BIT(1), 79 .links = acp63_4_in_1_sdca, 79 .links = acp63_4_in_1_sdca, 80 .drv_name = "amd_sof_sdw", 80 .drv_name = "amd_sof_sdw", 81 .sof_tplg_filename = "sof-acp_ 81 .sof_tplg_filename = "sof-acp_6_3-rt711-l0-rt1316-l0-rt714-l1.tplg", 82 .fw_filename = "sof-acp_6_3.ri 82 .fw_filename = "sof-acp_6_3.ri", 83 }, 83 }, 84 {}, 84 {}, 85 }; 85 }; 86 EXPORT_SYMBOL(snd_soc_acpi_amd_acp63_sof_sdw_m 86 EXPORT_SYMBOL(snd_soc_acpi_amd_acp63_sof_sdw_machines); 87 87 88 MODULE_DESCRIPTION("AMD ACP6.3 tables and supp 88 MODULE_DESCRIPTION("AMD ACP6.3 tables and support for ACPI enumeration"); 89 MODULE_LICENSE("GPL"); 89 MODULE_LICENSE("GPL"); 90 MODULE_AUTHOR("Vijendar.Mukunda@amd.com"); 90 MODULE_AUTHOR("Vijendar.Mukunda@amd.com"); 91 91
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.