@@ -36,6 +36,20 @@ static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
36
36
.group_id = 1 ,
37
37
};
38
38
39
+ static const struct snd_soc_acpi_endpoint spk_2_endpoint = {
40
+ .num = 0 ,
41
+ .aggregated = 1 ,
42
+ .group_position = 2 ,
43
+ .group_id = 1 ,
44
+ };
45
+
46
+ static const struct snd_soc_acpi_endpoint spk_3_endpoint = {
47
+ .num = 0 ,
48
+ .aggregated = 1 ,
49
+ .group_position = 3 ,
50
+ .group_id = 1 ,
51
+ };
52
+
39
53
static const struct snd_soc_acpi_endpoint rt712_endpoints [] = {
40
54
{
41
55
.num = 0 ,
@@ -103,6 +117,51 @@ static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = {
103
117
},
104
118
};
105
119
120
+ static const struct snd_soc_acpi_adr_device cs35l56_2_l_adr [] = {
121
+ {
122
+ .adr = 0x00023001FA355601ull ,
123
+ .num_endpoints = 1 ,
124
+ .endpoints = & spk_l_endpoint ,
125
+ .name_prefix = "AMP1"
126
+ },
127
+ {
128
+ .adr = 0x00023101FA355601ull ,
129
+ .num_endpoints = 1 ,
130
+ .endpoints = & spk_2_endpoint ,
131
+ .name_prefix = "AMP2"
132
+ }
133
+ };
134
+
135
+ static const struct snd_soc_acpi_adr_device cs35l56_3_r_adr [] = {
136
+ {
137
+ .adr = 0x00033201fa355601ull ,
138
+ .num_endpoints = 1 ,
139
+ .endpoints = & spk_r_endpoint ,
140
+ .name_prefix = "AMP3"
141
+ },
142
+ {
143
+ .adr = 0x00033301fa355601ull ,
144
+ .num_endpoints = 1 ,
145
+ .endpoints = & spk_3_endpoint ,
146
+ .name_prefix = "AMP4"
147
+ }
148
+ };
149
+
150
+ static const struct snd_soc_acpi_adr_device cs35l56_3_lr_adr [] = {
151
+ {
152
+ .adr = 0x00033001fa355601ull ,
153
+ .num_endpoints = 1 ,
154
+ .endpoints = & spk_l_endpoint ,
155
+ .name_prefix = "AMP1"
156
+ },
157
+ {
158
+ .adr = 0x00033101fa355601ull ,
159
+ .num_endpoints = 1 ,
160
+ .endpoints = & spk_r_endpoint ,
161
+ .name_prefix = "AMP2"
162
+ }
163
+ };
164
+
106
165
static const struct snd_soc_acpi_adr_device cs42l43_0_adr [] = {
107
166
{
108
167
.adr = 0x00003001FA424301ull ,
@@ -229,6 +288,39 @@ static const struct snd_soc_acpi_link_adr lnl_cs42l43_l0[] = {
229
288
{}
230
289
};
231
290
291
+ static const struct snd_soc_acpi_link_adr lnl_cs42l43_l0_cs35l56_l3 [] = {
292
+ {
293
+ .mask = BIT (0 ),
294
+ .num_adr = ARRAY_SIZE (cs42l43_0_adr ),
295
+ .adr_d = cs42l43_0_adr ,
296
+ },
297
+ {
298
+ .mask = BIT (3 ),
299
+ .num_adr = ARRAY_SIZE (cs35l56_3_lr_adr ),
300
+ .adr_d = cs35l56_3_lr_adr ,
301
+ },
302
+ {}
303
+ };
304
+
305
+ static const struct snd_soc_acpi_link_adr lnl_cs42l43_l0_cs35l56_l23 [] = {
306
+ {
307
+ .mask = BIT (0 ),
308
+ .num_adr = ARRAY_SIZE (cs42l43_0_adr ),
309
+ .adr_d = cs42l43_0_adr ,
310
+ },
311
+ {
312
+ .mask = BIT (2 ),
313
+ .num_adr = ARRAY_SIZE (cs35l56_2_l_adr ),
314
+ .adr_d = cs35l56_2_l_adr ,
315
+ },
316
+ {
317
+ .mask = BIT (3 ),
318
+ .num_adr = ARRAY_SIZE (cs35l56_3_r_adr ),
319
+ .adr_d = cs35l56_3_r_adr ,
320
+ },
321
+ {}
322
+ };
323
+
232
324
static const struct snd_soc_acpi_link_adr lnl_rvp [] = {
233
325
{
234
326
.mask = BIT (0 ),
@@ -345,6 +437,18 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = {
345
437
.drv_name = "sof_sdw" ,
346
438
.sof_tplg_filename = "sof-lnl-rt711-l0-rt1316-l23-rt714-l1.tplg" ,
347
439
},
440
+ {
441
+ .link_mask = BIT (0 ) | BIT (2 ) | BIT (3 ),
442
+ .links = lnl_cs42l43_l0_cs35l56_l23 ,
443
+ .drv_name = "sof_sdw" ,
444
+ .sof_tplg_filename = "sof-lnl-cs42l43-l0-cs35l56-l23.tplg" ,
445
+ },
446
+ {
447
+ .link_mask = BIT (0 ) | BIT (3 ),
448
+ .links = lnl_cs42l43_l0_cs35l56_l3 ,
449
+ .drv_name = "sof_sdw" ,
450
+ .sof_tplg_filename = "sof-lnl-cs42l43-l0-cs35l56-l3.tplg" ,
451
+ },
348
452
{
349
453
.link_mask = BIT (0 ),
350
454
.links = lnl_cs42l43_l0 ,
0 commit comments