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: Add Intel machine driver support for CS35L63

Merge series from Stefan Binding <sbinding@opensource.cirrus.com>:

This adds support to the Intel machine drivers for CS35L63 codecs using
soundwire, and also adds match entries for the CDB35L63-CB2 on MTL
systems.

Mark Brown 828497fb 15c2b04a

+63
+38
sound/soc/intel/common/soc-acpi-intel-mtl-match.c
··· 730 730 } 731 731 }; 732 732 733 + static const struct snd_soc_acpi_adr_device cs35l63_1_fb_adr[] = { 734 + { 735 + .adr = 0x00013001FA356301ull, 736 + .num_endpoints = ARRAY_SIZE(cs35l56_l_fb_endpoints), 737 + .endpoints = cs35l56_l_fb_endpoints, 738 + .name_prefix = "AMP1" 739 + }, 740 + }; 741 + 742 + static const struct snd_soc_acpi_adr_device cs35l63_3_fb_adr[] = { 743 + { 744 + .adr = 0x00033101FA356301ull, 745 + .num_endpoints = ARRAY_SIZE(cs35l56_r_fb_endpoints), 746 + .endpoints = cs35l56_r_fb_endpoints, 747 + .name_prefix = "AMP2" 748 + }, 749 + }; 750 + 733 751 static const struct snd_soc_acpi_link_adr rt5682_link2_max98373_link0[] = { 734 752 /* Expected order: jack -> amp */ 735 753 { ··· 1045 1027 {} 1046 1028 }; 1047 1029 1030 + static const struct snd_soc_acpi_link_adr mtl_cs35l63_x2_link1_link3_fb[] = { 1031 + { 1032 + .mask = BIT(3), 1033 + .num_adr = ARRAY_SIZE(cs35l63_3_fb_adr), 1034 + .adr_d = cs35l63_3_fb_adr, 1035 + }, 1036 + { 1037 + .mask = BIT(1), 1038 + .num_adr = ARRAY_SIZE(cs35l63_1_fb_adr), 1039 + .adr_d = cs35l63_1_fb_adr, 1040 + }, 1041 + {} 1042 + }; 1043 + 1048 1044 /* this table is used when there is no I2S codec present */ 1049 1045 struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = { 1050 1046 /* mockup tests need to be first */ ··· 1165 1133 .drv_name = "sof_sdw", 1166 1134 .sof_tplg_filename = "sof-mtl-cs42l43-l0.tplg", 1167 1135 .get_function_tplg_files = sof_sdw_get_tplg_files, 1136 + }, 1137 + { 1138 + .link_mask = BIT(1) | BIT(3), 1139 + .links = mtl_cs35l63_x2_link1_link3_fb, 1140 + .drv_name = "sof_sdw", 1141 + .sof_tplg_filename = "sof-mtl-cs35l56-l01-fb8.tplg", 1168 1142 }, 1169 1143 { 1170 1144 .link_mask = GENMASK(3, 0),
+25
sound/soc/sdw_utils/soc_sdw_utils.c
··· 511 511 .dai_num = 2, 512 512 }, 513 513 { 514 + .part_id = 0x3563, 515 + .dais = { 516 + { 517 + .direction = {true, false}, 518 + .dai_name = "cs35l56-sdw1", 519 + .dai_type = SOC_SDW_DAI_TYPE_AMP, 520 + .dailink = {SOC_SDW_AMP_OUT_DAI_ID, SOC_SDW_UNUSED_DAI_ID}, 521 + .init = asoc_sdw_cs_amp_init, 522 + .rtd_init = asoc_sdw_cs_spk_rtd_init, 523 + .controls = generic_spk_controls, 524 + .num_controls = ARRAY_SIZE(generic_spk_controls), 525 + .widgets = generic_spk_widgets, 526 + .num_widgets = ARRAY_SIZE(generic_spk_widgets), 527 + }, 528 + { 529 + .direction = {false, true}, 530 + .dai_name = "cs35l56-sdw1c", 531 + .dai_type = SOC_SDW_DAI_TYPE_AMP, 532 + .dailink = {SOC_SDW_UNUSED_DAI_ID, SOC_SDW_AMP_IN_DAI_ID}, 533 + .rtd_init = asoc_sdw_cs_spk_feedback_rtd_init, 534 + }, 535 + }, 536 + .dai_num = 2, 537 + }, 538 + { 514 539 .part_id = 0x4242, 515 540 .dais = { 516 541 {