ASoC: Intel: mtl-match: Add 6-amp matches for CS35L56

Merge series from Richard Fitzgerald <rf@opensource.cirrus.com>:

These two commits add support for 6 amps with feedback, primarily for
the CDB35L56-EIGHT-C and CDB35L63-CB8 and similar hardware.

+104
+104
sound/soc/intel/common/soc-acpi-intel-mtl-match.c
··· 699 }, 700 }; 701 702 static const struct snd_soc_acpi_adr_device cs35l56_2_r_adr[] = { 703 { 704 .adr = 0x00023201FA355601ull, ··· 1132 {} 1133 }; 1134 1135 static const struct snd_soc_acpi_link_adr mtl_cs35l63_x2_link1_link3_fb[] = { 1136 { 1137 .mask = BIT(3), ··· 1282 .get_function_tplg_files = sof_sdw_get_tplg_files, 1283 }, 1284 { 1285 .link_mask = BIT(0), 1286 .links = mtl_cs42l43_l0, 1287 .drv_name = "sof_sdw", ··· 1299 .links = mtl_cs35l63_x2_link1_link3_fb, 1300 .drv_name = "sof_sdw", 1301 .sof_tplg_filename = "sof-mtl-cs35l56-l01-fb8.tplg", 1302 }, 1303 { 1304 .link_mask = GENMASK(3, 0),
··· 699 }, 700 }; 701 702 + static const struct snd_soc_acpi_adr_device cs35l56_6amp_1_fb_adr[] = { 703 + { 704 + .adr = 0x00013701FA355601ull, 705 + .num_endpoints = ARRAY_SIZE(cs35l56_r_fb_endpoints), 706 + .endpoints = cs35l56_r_fb_endpoints, 707 + .name_prefix = "AMP6" 708 + }, 709 + { 710 + .adr = 0x00013601FA355601ull, 711 + .num_endpoints = ARRAY_SIZE(cs35l56_3_fb_endpoints), 712 + .endpoints = cs35l56_3_fb_endpoints, 713 + .name_prefix = "AMP5" 714 + }, 715 + { 716 + .adr = 0x00013501FA355601ull, 717 + .num_endpoints = ARRAY_SIZE(cs35l56_5_fb_endpoints), 718 + .endpoints = cs35l56_5_fb_endpoints, 719 + .name_prefix = "AMP4" 720 + }, 721 + }; 722 + 723 + static const struct snd_soc_acpi_adr_device cs35l63_6amp_3_fb_adr[] = { 724 + { 725 + .adr = 0x00033001FA356301ull, 726 + .num_endpoints = ARRAY_SIZE(cs35l56_l_fb_endpoints), 727 + .endpoints = cs35l56_l_fb_endpoints, 728 + .name_prefix = "AMP1" 729 + }, 730 + { 731 + .adr = 0x00033201FA356301ull, 732 + .num_endpoints = ARRAY_SIZE(cs35l56_2_fb_endpoints), 733 + .endpoints = cs35l56_2_fb_endpoints, 734 + .name_prefix = "AMP3" 735 + }, 736 + { 737 + .adr = 0x00033401FA356301ull, 738 + .num_endpoints = ARRAY_SIZE(cs35l56_4_fb_endpoints), 739 + .endpoints = cs35l56_4_fb_endpoints, 740 + .name_prefix = "AMP5" 741 + }, 742 + }; 743 + 744 + static const struct snd_soc_acpi_adr_device cs35l63_6amp_2_fb_adr[] = { 745 + { 746 + .adr = 0x00023101FA356301ull, 747 + .num_endpoints = ARRAY_SIZE(cs35l56_r_fb_endpoints), 748 + .endpoints = cs35l56_r_fb_endpoints, 749 + .name_prefix = "AMP2" 750 + }, 751 + { 752 + .adr = 0x00023301FA356301ull, 753 + .num_endpoints = ARRAY_SIZE(cs35l56_3_fb_endpoints), 754 + .endpoints = cs35l56_3_fb_endpoints, 755 + .name_prefix = "AMP4" 756 + }, 757 + { 758 + .adr = 0x00023501FA356301ull, 759 + .num_endpoints = ARRAY_SIZE(cs35l56_5_fb_endpoints), 760 + .endpoints = cs35l56_5_fb_endpoints, 761 + .name_prefix = "AMP6" 762 + }, 763 + }; 764 + 765 static const struct snd_soc_acpi_adr_device cs35l56_2_r_adr[] = { 766 { 767 .adr = 0x00023201FA355601ull, ··· 1069 {} 1070 }; 1071 1072 + static const struct snd_soc_acpi_link_adr mtl_cs35l56_x6_link0_link1_fb[] = { 1073 + { 1074 + .mask = BIT(1), 1075 + .num_adr = ARRAY_SIZE(cs35l56_6amp_1_fb_adr), 1076 + .adr_d = cs35l56_6amp_1_fb_adr, 1077 + }, 1078 + { 1079 + .mask = BIT(0), 1080 + /* First 3 amps in cs35l56_0_fb_adr */ 1081 + .num_adr = 3, 1082 + .adr_d = cs35l56_0_fb_adr, 1083 + }, 1084 + {} 1085 + }; 1086 + 1087 + static const struct snd_soc_acpi_link_adr mtl_cs35l63_x6_link2_link3_fb[] = { 1088 + { 1089 + .mask = BIT(3), 1090 + .num_adr = ARRAY_SIZE(cs35l63_6amp_3_fb_adr), 1091 + .adr_d = cs35l63_6amp_3_fb_adr, 1092 + }, 1093 + { 1094 + .mask = BIT(2), 1095 + .num_adr = ARRAY_SIZE(cs35l63_6amp_2_fb_adr), 1096 + .adr_d = cs35l63_6amp_2_fb_adr, 1097 + }, 1098 + {} 1099 + }; 1100 + 1101 static const struct snd_soc_acpi_link_adr mtl_cs35l63_x2_link1_link3_fb[] = { 1102 { 1103 .mask = BIT(3), ··· 1190 .get_function_tplg_files = sof_sdw_get_tplg_files, 1191 }, 1192 { 1193 + .link_mask = BIT(0) | BIT(1), 1194 + .links = mtl_cs35l56_x6_link0_link1_fb, 1195 + .drv_name = "sof_sdw", 1196 + .sof_tplg_filename = "sof-mtl-cs35l56-l01-fb6.tplg" 1197 + }, 1198 + { 1199 .link_mask = BIT(0), 1200 .links = mtl_cs42l43_l0, 1201 .drv_name = "sof_sdw", ··· 1201 .links = mtl_cs35l63_x2_link1_link3_fb, 1202 .drv_name = "sof_sdw", 1203 .sof_tplg_filename = "sof-mtl-cs35l56-l01-fb8.tplg", 1204 + }, 1205 + { 1206 + .link_mask = BIT(2) | BIT(3), 1207 + .links = mtl_cs35l63_x6_link2_link3_fb, 1208 + .drv_name = "sof_sdw", 1209 + .sof_tplg_filename = "sof-mtl-cs35l56-l01-fb6.tplg", 1210 }, 1211 { 1212 .link_mask = GENMASK(3, 0),