Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: amd: acp: Add ACP7.0 match entries for cs35l56 and cs42l43

This adds some match entries for a few system configurations:

cs42l43 link 0 UID 0
cs35l56 link 1 UID 0
cs35l56 link 1 UID 1
cs35l56 link 1 UID 2
cs35l56 link 1 UID 3

cs42l43 link 1 UID 0
cs35l56 link 1 UID 0
cs35l56 link 1 UID 1
cs35l56 link 1 UID 2
cs35l56 link 1 UID 3

cs35l56 link 1 UID 0
cs35l56 link 1 UID 1
cs35l56 link 1 UID 2
cs35l56 link 1 UID 3

Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com>
Link: https://patch.msgid.link/20251016150837.320886-1-simont@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Simon Trimmer and committed by
Mark Brown
ef30cb13 ec20584f

+157
+157
sound/soc/amd/acp/amd-acp70-acpi-match.c
··· 30 30 .group_id = 1 31 31 }; 32 32 33 + static const struct snd_soc_acpi_endpoint spk_2_endpoint = { 34 + .num = 0, 35 + .aggregated = 1, 36 + .group_position = 2, 37 + .group_id = 1 38 + }; 39 + 40 + static const struct snd_soc_acpi_endpoint spk_3_endpoint = { 41 + .num = 0, 42 + .aggregated = 1, 43 + .group_position = 3, 44 + .group_id = 1 45 + }; 46 + 33 47 static const struct snd_soc_acpi_adr_device rt711_rt1316_group_adr[] = { 34 48 { 35 49 .adr = 0x000030025D071101ull, ··· 126 112 } 127 113 }; 128 114 115 + static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = { 116 + { /* Jack Playback Endpoint */ 117 + .num = 0, 118 + .aggregated = 0, 119 + .group_position = 0, 120 + .group_id = 0, 121 + }, 122 + { /* DMIC Capture Endpoint */ 123 + .num = 1, 124 + .aggregated = 0, 125 + .group_position = 0, 126 + .group_id = 0, 127 + }, 128 + { /* Jack Capture Endpoint */ 129 + .num = 2, 130 + .aggregated = 0, 131 + .group_position = 0, 132 + .group_id = 0, 133 + }, 134 + { /* Speaker Playback Endpoint */ 135 + .num = 3, 136 + .aggregated = 0, 137 + .group_position = 0, 138 + .group_id = 0, 139 + }, 140 + }; 141 + 142 + static const struct snd_soc_acpi_adr_device cs42l43_0_adr[] = { 143 + { 144 + .adr = 0x00003001FA424301ull, 145 + .num_endpoints = ARRAY_SIZE(cs42l43_endpoints), 146 + .endpoints = cs42l43_endpoints, 147 + .name_prefix = "cs42l43" 148 + } 149 + }; 150 + 151 + static const struct snd_soc_acpi_adr_device cs42l43_1_cs35l56x4_1_adr[] = { 152 + { 153 + .adr = 0x00013001FA424301ull, 154 + .num_endpoints = ARRAY_SIZE(cs42l43_endpoints), 155 + .endpoints = cs42l43_endpoints, 156 + .name_prefix = "cs42l43" 157 + }, 158 + { 159 + .adr = 0x00013001FA355601ull, 160 + .num_endpoints = 1, 161 + .endpoints = &spk_l_endpoint, 162 + .name_prefix = "AMP1" 163 + }, 164 + { 165 + .adr = 0x00013101FA355601ull, 166 + .num_endpoints = 1, 167 + .endpoints = &spk_r_endpoint, 168 + .name_prefix = "AMP2" 169 + }, 170 + { 171 + .adr = 0x00013201FA355601ull, 172 + .num_endpoints = 1, 173 + .endpoints = &spk_2_endpoint, 174 + .name_prefix = "AMP3" 175 + }, 176 + { 177 + .adr = 0x00013301FA355601ull, 178 + .num_endpoints = 1, 179 + .endpoints = &spk_3_endpoint, 180 + .name_prefix = "AMP4" 181 + }, 182 + }; 183 + 184 + static const struct snd_soc_acpi_adr_device cs35l56x4_1_adr[] = { 185 + { 186 + .adr = 0x00013301FA355601ull, 187 + .num_endpoints = 1, 188 + .endpoints = &spk_l_endpoint, 189 + .name_prefix = "AMP1" 190 + }, 191 + { 192 + .adr = 0x00013201FA355601ull, 193 + .num_endpoints = 1, 194 + .endpoints = &spk_r_endpoint, 195 + .name_prefix = "AMP2" 196 + }, 197 + { 198 + .adr = 0x00013101FA355601ull, 199 + .num_endpoints = 1, 200 + .endpoints = &spk_2_endpoint, 201 + .name_prefix = "AMP3" 202 + }, 203 + { 204 + .adr = 0x00013001FA355601ull, 205 + .num_endpoints = 1, 206 + .endpoints = &spk_3_endpoint, 207 + .name_prefix = "AMP4" 208 + }, 209 + }; 210 + 211 + static const struct snd_soc_acpi_link_adr acp70_cs42l43_l1_cs35l56x4_l1[] = { 212 + { 213 + .mask = BIT(1), 214 + .num_adr = ARRAY_SIZE(cs42l43_1_cs35l56x4_1_adr), 215 + .adr_d = cs42l43_1_cs35l56x4_1_adr, 216 + }, 217 + {} 218 + }; 219 + 220 + static const struct snd_soc_acpi_link_adr acp70_cs42l43_l0_cs35l56x4_l1[] = { 221 + { 222 + .mask = BIT(0), 223 + .num_adr = ARRAY_SIZE(cs42l43_0_adr), 224 + .adr_d = cs42l43_0_adr, 225 + }, 226 + { 227 + .mask = BIT(1), 228 + .num_adr = ARRAY_SIZE(cs35l56x4_1_adr), 229 + .adr_d = cs35l56x4_1_adr, 230 + }, 231 + {} 232 + }; 233 + 234 + static const struct snd_soc_acpi_link_adr acp70_cs35l56x4_l1[] = { 235 + { 236 + .mask = BIT(1), 237 + .num_adr = ARRAY_SIZE(cs35l56x4_1_adr), 238 + .adr_d = cs35l56x4_1_adr, 239 + }, 240 + {} 241 + }; 242 + 129 243 static const struct snd_soc_acpi_link_adr acp70_rt722_only[] = { 130 244 { 131 245 .mask = BIT(0), ··· 291 149 { 292 150 .link_mask = BIT(0) | BIT(1), 293 151 .links = acp70_4_in_1_sdca, 152 + .drv_name = "amd_sdw", 153 + }, 154 + { 155 + .link_mask = BIT(0) | BIT(1), 156 + .links = acp70_cs42l43_l0_cs35l56x4_l1, 157 + .drv_name = "amd_sdw", 158 + }, 159 + { 160 + .link_mask = BIT(1), 161 + .links = acp70_cs42l43_l1_cs35l56x4_l1, 162 + .drv_name = "amd_sdw", 163 + }, 164 + { 165 + .link_mask = BIT(1), 166 + .links = acp70_cs35l56x4_l1, 294 167 .drv_name = "amd_sdw", 295 168 }, 296 169 {},