Skip to content

Commit 56d953a

Browse files
committed
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.
2 parents 01ad278 + 26f637f commit 56d953a

1 file changed

Lines changed: 104 additions & 0 deletions

File tree

sound/soc/intel/common/soc-acpi-intel-mtl-match.c

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -699,6 +699,69 @@ static const struct snd_soc_acpi_adr_device cs35l56_1_fb_adr[] = {
699699
},
700700
};
701701

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+
702765
static const struct snd_soc_acpi_adr_device cs35l56_2_r_adr[] = {
703766
{
704767
.adr = 0x00023201FA355601ull,
@@ -1069,6 +1132,35 @@ static const struct snd_soc_acpi_link_adr mtl_cs35l56_x8_link0_link1_fb[] = {
10691132
{}
10701133
};
10711134

1135+
static const struct snd_soc_acpi_link_adr mtl_cs35l56_x6_link0_link1_fb[] = {
1136+
{
1137+
.mask = BIT(1),
1138+
.num_adr = ARRAY_SIZE(cs35l56_6amp_1_fb_adr),
1139+
.adr_d = cs35l56_6amp_1_fb_adr,
1140+
},
1141+
{
1142+
.mask = BIT(0),
1143+
/* First 3 amps in cs35l56_0_fb_adr */
1144+
.num_adr = 3,
1145+
.adr_d = cs35l56_0_fb_adr,
1146+
},
1147+
{}
1148+
};
1149+
1150+
static const struct snd_soc_acpi_link_adr mtl_cs35l63_x6_link2_link3_fb[] = {
1151+
{
1152+
.mask = BIT(3),
1153+
.num_adr = ARRAY_SIZE(cs35l63_6amp_3_fb_adr),
1154+
.adr_d = cs35l63_6amp_3_fb_adr,
1155+
},
1156+
{
1157+
.mask = BIT(2),
1158+
.num_adr = ARRAY_SIZE(cs35l63_6amp_2_fb_adr),
1159+
.adr_d = cs35l63_6amp_2_fb_adr,
1160+
},
1161+
{}
1162+
};
1163+
10721164
static const struct snd_soc_acpi_link_adr mtl_cs35l63_x2_link1_link3_fb[] = {
10731165
{
10741166
.mask = BIT(3),
@@ -1189,6 +1281,12 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
11891281
.sof_tplg_filename = "sof-mtl-cs35l56-l01-fb8.tplg",
11901282
.get_function_tplg_files = sof_sdw_get_tplg_files,
11911283
},
1284+
{
1285+
.link_mask = BIT(0) | BIT(1),
1286+
.links = mtl_cs35l56_x6_link0_link1_fb,
1287+
.drv_name = "sof_sdw",
1288+
.sof_tplg_filename = "sof-mtl-cs35l56-l01-fb6.tplg"
1289+
},
11921290
{
11931291
.link_mask = BIT(0),
11941292
.links = mtl_cs42l43_l0,
@@ -1202,6 +1300,12 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
12021300
.drv_name = "sof_sdw",
12031301
.sof_tplg_filename = "sof-mtl-cs35l56-l01-fb8.tplg",
12041302
},
1303+
{
1304+
.link_mask = BIT(2) | BIT(3),
1305+
.links = mtl_cs35l63_x6_link2_link3_fb,
1306+
.drv_name = "sof_sdw",
1307+
.sof_tplg_filename = "sof-mtl-cs35l56-l01-fb6.tplg",
1308+
},
12051309
{
12061310
.link_mask = GENMASK(3, 0),
12071311
.links = mtl_3_in_1_sdca,

0 commit comments

Comments
 (0)