Skip to content

Commit 6dcc8e7

Browse files
rfvirgilbroonie
authored andcommitted
ASoC: Intel: mtl-match: Add CDB35L56-EIGHT-C 8x CS35L56 without CS42L43
This adds a match entry for using all the amps on a CDB35L56-EIGHT-C board without the CS42L43 codec. Configuration is: SDW0: 4x CS35L56 (OUT1, OUT2, OUT3, OUT4) SDW1: 4x CS35L56 (OUT5, OUT6, OUT7, OUT8) Speaker playback and amp feedback are aggregated. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Link: https://patch.msgid.link/20241216032721.131227-4-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent bc7bd5c commit 6dcc8e7

1 file changed

Lines changed: 134 additions & 0 deletions

File tree

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

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,66 @@ static const struct snd_soc_acpi_endpoint cs35l56_3_fb_endpoints[] = {
539539
},
540540
};
541541

542+
static const struct snd_soc_acpi_endpoint cs35l56_4_fb_endpoints[] = {
543+
{ /* Speaker Playback Endpoint */
544+
.num = 0,
545+
.aggregated = 1,
546+
.group_position = 4,
547+
.group_id = 1,
548+
},
549+
{ /* Feedback Capture Endpoint */
550+
.num = 1,
551+
.aggregated = 1,
552+
.group_position = 4,
553+
.group_id = 2,
554+
},
555+
};
556+
557+
static const struct snd_soc_acpi_endpoint cs35l56_5_fb_endpoints[] = {
558+
{ /* Speaker Playback Endpoint */
559+
.num = 0,
560+
.aggregated = 1,
561+
.group_position = 5,
562+
.group_id = 1,
563+
},
564+
{ /* Feedback Capture Endpoint */
565+
.num = 1,
566+
.aggregated = 1,
567+
.group_position = 5,
568+
.group_id = 2,
569+
},
570+
};
571+
572+
static const struct snd_soc_acpi_endpoint cs35l56_6_fb_endpoints[] = {
573+
{ /* Speaker Playback Endpoint */
574+
.num = 0,
575+
.aggregated = 1,
576+
.group_position = 6,
577+
.group_id = 1,
578+
},
579+
{ /* Feedback Capture Endpoint */
580+
.num = 1,
581+
.aggregated = 1,
582+
.group_position = 6,
583+
.group_id = 2,
584+
},
585+
};
586+
587+
static const struct snd_soc_acpi_endpoint cs35l56_7_fb_endpoints[] = {
588+
{ /* Speaker Playback Endpoint */
589+
.num = 0,
590+
.aggregated = 1,
591+
.group_position = 7,
592+
.group_id = 1,
593+
},
594+
{ /* Feedback Capture Endpoint */
595+
.num = 1,
596+
.aggregated = 1,
597+
.group_position = 7,
598+
.group_id = 2,
599+
},
600+
};
601+
542602
static const struct snd_soc_acpi_adr_device cs35l56_0_adr[] = {
543603
{
544604
.adr = 0x00003301FA355601ull,
@@ -584,6 +644,60 @@ static const struct snd_soc_acpi_adr_device cs35l56_2_adr[] = {
584644
}
585645
};
586646

647+
static const struct snd_soc_acpi_adr_device cs35l56_0_fb_adr[] = {
648+
{
649+
.adr = 0x00003301FA355601ull,
650+
.num_endpoints = ARRAY_SIZE(cs35l56_l_fb_endpoints),
651+
.endpoints = cs35l56_l_fb_endpoints,
652+
.name_prefix = "AMP1"
653+
},
654+
{
655+
.adr = 0x00003201FA355601ull,
656+
.num_endpoints = ARRAY_SIZE(cs35l56_2_fb_endpoints),
657+
.endpoints = cs35l56_2_fb_endpoints,
658+
.name_prefix = "AMP2"
659+
},
660+
{
661+
.adr = 0x00003101FA355601ull,
662+
.num_endpoints = ARRAY_SIZE(cs35l56_4_fb_endpoints),
663+
.endpoints = cs35l56_4_fb_endpoints,
664+
.name_prefix = "AMP3"
665+
},
666+
{
667+
.adr = 0x00003001FA355601ull,
668+
.num_endpoints = ARRAY_SIZE(cs35l56_6_fb_endpoints),
669+
.endpoints = cs35l56_6_fb_endpoints,
670+
.name_prefix = "AMP4"
671+
},
672+
};
673+
674+
static const struct snd_soc_acpi_adr_device cs35l56_1_fb_adr[] = {
675+
{
676+
.adr = 0x00013701FA355601ull,
677+
.num_endpoints = ARRAY_SIZE(cs35l56_r_fb_endpoints),
678+
.endpoints = cs35l56_r_fb_endpoints,
679+
.name_prefix = "AMP8"
680+
},
681+
{
682+
.adr = 0x00013601FA355601ull,
683+
.num_endpoints = ARRAY_SIZE(cs35l56_3_fb_endpoints),
684+
.endpoints = cs35l56_3_fb_endpoints,
685+
.name_prefix = "AMP7"
686+
},
687+
{
688+
.adr = 0x00013501FA355601ull,
689+
.num_endpoints = ARRAY_SIZE(cs35l56_5_fb_endpoints),
690+
.endpoints = cs35l56_5_fb_endpoints,
691+
.name_prefix = "AMP6"
692+
},
693+
{
694+
.adr = 0x00013401FA355601ull,
695+
.num_endpoints = ARRAY_SIZE(cs35l56_7_fb_endpoints),
696+
.endpoints = cs35l56_7_fb_endpoints,
697+
.name_prefix = "AMP5"
698+
},
699+
};
700+
587701
static const struct snd_soc_acpi_adr_device cs35l56_2_r_adr[] = {
588702
{
589703
.adr = 0x00023201FA355601ull,
@@ -898,6 +1012,20 @@ static const struct snd_soc_acpi_link_adr cs42l43_link3_cs35l56_x4_link0_link1_s
8981012
{}
8991013
};
9001014

1015+
static const struct snd_soc_acpi_link_adr mtl_cs35l56_x8_link0_link1_fb[] = {
1016+
{
1017+
.mask = BIT(1),
1018+
.num_adr = ARRAY_SIZE(cs35l56_1_fb_adr),
1019+
.adr_d = cs35l56_1_fb_adr,
1020+
},
1021+
{
1022+
.mask = BIT(0),
1023+
.num_adr = ARRAY_SIZE(cs35l56_0_fb_adr),
1024+
.adr_d = cs35l56_0_fb_adr,
1025+
},
1026+
{}
1027+
};
1028+
9011029
/* this table is used when there is no I2S codec present */
9021030
struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
9031031
/* mockup tests need to be first */
@@ -986,6 +1114,12 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
9861114
.drv_name = "sof_sdw",
9871115
.sof_tplg_filename = "sof-mtl-cs42l43-l0-cs35l56-l12.tplg",
9881116
},
1117+
{
1118+
.link_mask = BIT(0) | BIT(1),
1119+
.links = mtl_cs35l56_x8_link0_link1_fb,
1120+
.drv_name = "sof_sdw",
1121+
.sof_tplg_filename = "sof-mtl-cs35l56-l01-fb8.tplg"
1122+
},
9891123
{
9901124
.link_mask = BIT(0),
9911125
.links = mtl_cs42l43_l0,

0 commit comments

Comments
 (0)