@@ -515,6 +515,50 @@ static struct snd_soc_dai_link_component platform_component[] = {
515
515
}
516
516
};
517
517
518
+ static const struct snd_soc_dapm_widget generic_dmic_widgets [] = {
519
+ SND_SOC_DAPM_MIC ("DMIC" , NULL ),
520
+ };
521
+
522
+ static const struct snd_soc_dapm_widget generic_jack_widgets [] = {
523
+ SND_SOC_DAPM_HP ("Headphone" , NULL ),
524
+ SND_SOC_DAPM_MIC ("Headset Mic" , NULL ),
525
+ };
526
+
527
+ static const struct snd_kcontrol_new generic_jack_controls [] = {
528
+ SOC_DAPM_PIN_SWITCH ("Headphone" ),
529
+ SOC_DAPM_PIN_SWITCH ("Headset Mic" ),
530
+ };
531
+
532
+ static const struct snd_soc_dapm_widget generic_spk_widgets [] = {
533
+ SND_SOC_DAPM_SPK ("Speaker" , NULL ),
534
+ };
535
+
536
+ static const struct snd_kcontrol_new generic_spk_controls [] = {
537
+ SOC_DAPM_PIN_SWITCH ("Speaker" ),
538
+ };
539
+
540
+ static const struct snd_soc_dapm_widget maxim_widgets [] = {
541
+ SND_SOC_DAPM_SPK ("Left Spk" , NULL ),
542
+ SND_SOC_DAPM_SPK ("Right Spk" , NULL ),
543
+ };
544
+
545
+ static const struct snd_kcontrol_new maxim_controls [] = {
546
+ SOC_DAPM_PIN_SWITCH ("Left Spk" ),
547
+ SOC_DAPM_PIN_SWITCH ("Right Spk" ),
548
+ };
549
+
550
+ static const struct snd_soc_dapm_widget rt700_widgets [] = {
551
+ SND_SOC_DAPM_HP ("Headphones" , NULL ),
552
+ SND_SOC_DAPM_MIC ("AMIC" , NULL ),
553
+ SND_SOC_DAPM_SPK ("Speaker" , NULL ),
554
+ };
555
+
556
+ static const struct snd_kcontrol_new rt700_controls [] = {
557
+ SOC_DAPM_PIN_SWITCH ("Headphones" ),
558
+ SOC_DAPM_PIN_SWITCH ("AMIC" ),
559
+ SOC_DAPM_PIN_SWITCH ("Speaker" ),
560
+ };
561
+
518
562
struct snd_soc_dai * get_codec_dai_by_name (struct snd_soc_pcm_runtime * rtd ,
519
563
const char * const dai_name [],
520
564
int num_dais )
@@ -681,6 +725,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
681
725
.dai_type = SOF_SDW_DAI_TYPE_JACK ,
682
726
.dailink = {SDW_JACK_OUT_DAI_ID , SDW_JACK_IN_DAI_ID },
683
727
.rtd_init = rt700_rtd_init ,
728
+ .controls = rt700_controls ,
729
+ .num_controls = ARRAY_SIZE (rt700_controls ),
730
+ .widgets = rt700_widgets ,
731
+ .num_widgets = ARRAY_SIZE (rt700_widgets ),
684
732
},
685
733
},
686
734
.dai_num = 1 ,
@@ -697,6 +745,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
697
745
.init = sof_sdw_rt_sdca_jack_init ,
698
746
.exit = sof_sdw_rt_sdca_jack_exit ,
699
747
.rtd_init = rt_sdca_jack_rtd_init ,
748
+ .controls = generic_jack_controls ,
749
+ .num_controls = ARRAY_SIZE (generic_jack_controls ),
750
+ .widgets = generic_jack_widgets ,
751
+ .num_widgets = ARRAY_SIZE (generic_jack_widgets ),
700
752
},
701
753
},
702
754
.dai_num = 1 ,
@@ -713,6 +765,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
713
765
.init = sof_sdw_rt711_init ,
714
766
.exit = sof_sdw_rt711_exit ,
715
767
.rtd_init = rt711_rtd_init ,
768
+ .controls = generic_jack_controls ,
769
+ .num_controls = ARRAY_SIZE (generic_jack_controls ),
770
+ .widgets = generic_jack_widgets ,
771
+ .num_widgets = ARRAY_SIZE (generic_jack_widgets ),
716
772
},
717
773
},
718
774
.dai_num = 1 ,
@@ -729,6 +785,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
729
785
.init = sof_sdw_rt_sdca_jack_init ,
730
786
.exit = sof_sdw_rt_sdca_jack_exit ,
731
787
.rtd_init = rt_sdca_jack_rtd_init ,
788
+ .controls = generic_jack_controls ,
789
+ .num_controls = ARRAY_SIZE (generic_jack_controls ),
790
+ .widgets = generic_jack_widgets ,
791
+ .num_widgets = ARRAY_SIZE (generic_jack_widgets ),
732
792
},
733
793
{
734
794
.direction = {true, false},
@@ -738,6 +798,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
738
798
.init = sof_sdw_rt_amp_init ,
739
799
.exit = sof_sdw_rt_amp_exit ,
740
800
.rtd_init = rt712_spk_rtd_init ,
801
+ .controls = generic_spk_controls ,
802
+ .num_controls = ARRAY_SIZE (generic_spk_controls ),
803
+ .widgets = generic_spk_widgets ,
804
+ .num_widgets = ARRAY_SIZE (generic_spk_widgets ),
741
805
},
742
806
},
743
807
.dai_num = 2 ,
@@ -768,6 +832,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
768
832
.init = sof_sdw_rt_sdca_jack_init ,
769
833
.exit = sof_sdw_rt_sdca_jack_exit ,
770
834
.rtd_init = rt_sdca_jack_rtd_init ,
835
+ .controls = generic_jack_controls ,
836
+ .num_controls = ARRAY_SIZE (generic_jack_controls ),
837
+ .widgets = generic_jack_widgets ,
838
+ .num_widgets = ARRAY_SIZE (generic_jack_widgets ),
771
839
},
772
840
},
773
841
.dai_num = 1 ,
@@ -798,6 +866,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
798
866
.init = sof_sdw_rt_amp_init ,
799
867
.exit = sof_sdw_rt_amp_exit ,
800
868
.rtd_init = rt_amp_spk_rtd_init ,
869
+ .controls = generic_spk_controls ,
870
+ .num_controls = ARRAY_SIZE (generic_spk_controls ),
871
+ .widgets = generic_spk_widgets ,
872
+ .num_widgets = ARRAY_SIZE (generic_spk_widgets ),
801
873
},
802
874
},
803
875
.dai_num = 1 ,
@@ -814,6 +886,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
814
886
.init = sof_sdw_rt_amp_init ,
815
887
.exit = sof_sdw_rt_amp_exit ,
816
888
.rtd_init = rt_amp_spk_rtd_init ,
889
+ .controls = generic_spk_controls ,
890
+ .num_controls = ARRAY_SIZE (generic_spk_controls ),
891
+ .widgets = generic_spk_widgets ,
892
+ .num_widgets = ARRAY_SIZE (generic_spk_widgets ),
817
893
},
818
894
},
819
895
.dai_num = 1 ,
@@ -829,6 +905,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
829
905
.init = sof_sdw_rt_amp_init ,
830
906
.exit = sof_sdw_rt_amp_exit ,
831
907
.rtd_init = rt_amp_spk_rtd_init ,
908
+ .controls = generic_spk_controls ,
909
+ .num_controls = ARRAY_SIZE (generic_spk_controls ),
910
+ .widgets = generic_spk_widgets ,
911
+ .num_widgets = ARRAY_SIZE (generic_spk_widgets ),
832
912
},
833
913
},
834
914
.dai_num = 1 ,
@@ -905,6 +985,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
905
985
.init = sof_sdw_rt_sdca_jack_init ,
906
986
.exit = sof_sdw_rt_sdca_jack_exit ,
907
987
.rtd_init = rt_sdca_jack_rtd_init ,
988
+ .controls = generic_jack_controls ,
989
+ .num_controls = ARRAY_SIZE (generic_jack_controls ),
990
+ .widgets = generic_jack_widgets ,
991
+ .num_widgets = ARRAY_SIZE (generic_jack_widgets ),
908
992
},
909
993
{
910
994
.direction = {true, false},
@@ -915,6 +999,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
915
999
.init = sof_sdw_rt_amp_init ,
916
1000
.exit = sof_sdw_rt_amp_exit ,
917
1001
.rtd_init = rt722_spk_rtd_init ,
1002
+ .controls = generic_spk_controls ,
1003
+ .num_controls = ARRAY_SIZE (generic_spk_controls ),
1004
+ .widgets = generic_spk_widgets ,
1005
+ .num_widgets = ARRAY_SIZE (generic_spk_widgets ),
918
1006
},
919
1007
{
920
1008
.direction = {false, true},
@@ -936,6 +1024,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
936
1024
.dailink = {SDW_AMP_OUT_DAI_ID , SDW_AMP_IN_DAI_ID },
937
1025
.init = sof_sdw_maxim_init ,
938
1026
.rtd_init = maxim_spk_rtd_init ,
1027
+ .controls = maxim_controls ,
1028
+ .num_controls = ARRAY_SIZE (maxim_controls ),
1029
+ .widgets = maxim_widgets ,
1030
+ .num_widgets = ARRAY_SIZE (maxim_widgets ),
939
1031
},
940
1032
},
941
1033
.dai_num = 1 ,
@@ -950,6 +1042,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
950
1042
.dailink = {SDW_AMP_OUT_DAI_ID , SDW_UNUSED_DAI_ID },
951
1043
.init = sof_sdw_maxim_init ,
952
1044
.rtd_init = maxim_spk_rtd_init ,
1045
+ .controls = maxim_controls ,
1046
+ .num_controls = ARRAY_SIZE (maxim_controls ),
1047
+ .widgets = maxim_widgets ,
1048
+ .num_widgets = ARRAY_SIZE (maxim_widgets ),
953
1049
},
954
1050
},
955
1051
.dai_num = 1 ,
@@ -963,6 +1059,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
963
1059
.dai_type = SOF_SDW_DAI_TYPE_JACK ,
964
1060
.dailink = {SDW_JACK_OUT_DAI_ID , SDW_JACK_IN_DAI_ID },
965
1061
.rtd_init = rt5682_rtd_init ,
1062
+ .controls = generic_jack_controls ,
1063
+ .num_controls = ARRAY_SIZE (generic_jack_controls ),
1064
+ .widgets = generic_jack_widgets ,
1065
+ .num_widgets = ARRAY_SIZE (generic_jack_widgets ),
966
1066
},
967
1067
},
968
1068
.dai_num = 1 ,
@@ -977,6 +1077,8 @@ static struct sof_sdw_codec_info codec_info_list[] = {
977
1077
.dailink = {SDW_AMP_OUT_DAI_ID , SDW_AMP_IN_DAI_ID },
978
1078
.init = sof_sdw_cs_amp_init ,
979
1079
.rtd_init = cs_spk_rtd_init ,
1080
+ .widgets = generic_spk_widgets ,
1081
+ .num_widgets = ARRAY_SIZE (generic_spk_widgets ),
980
1082
},
981
1083
},
982
1084
.dai_num = 1 ,
@@ -990,6 +1092,10 @@ static struct sof_sdw_codec_info codec_info_list[] = {
990
1092
.dai_type = SOF_SDW_DAI_TYPE_JACK ,
991
1093
.dailink = {SDW_JACK_OUT_DAI_ID , SDW_JACK_IN_DAI_ID },
992
1094
.rtd_init = cs42l42_rtd_init ,
1095
+ .controls = generic_jack_controls ,
1096
+ .num_controls = ARRAY_SIZE (generic_jack_controls ),
1097
+ .widgets = generic_jack_widgets ,
1098
+ .num_widgets = ARRAY_SIZE (generic_jack_widgets ),
993
1099
},
994
1100
},
995
1101
.dai_num = 1 ,
@@ -1006,13 +1112,17 @@ static struct sof_sdw_codec_info codec_info_list[] = {
1006
1112
.dai_type = SOF_SDW_DAI_TYPE_JACK ,
1007
1113
.dailink = {SDW_JACK_OUT_DAI_ID , SDW_UNUSED_DAI_ID },
1008
1114
.rtd_init = cs42l43_hs_rtd_init ,
1115
+ .widgets = generic_jack_widgets ,
1116
+ .num_widgets = ARRAY_SIZE (generic_jack_widgets ),
1009
1117
},
1010
1118
{
1011
1119
.direction = {false, true},
1012
1120
.dai_name = "cs42l43-dp1" ,
1013
1121
.dai_type = SOF_SDW_DAI_TYPE_MIC ,
1014
1122
.dailink = {SDW_UNUSED_DAI_ID , SDW_DMIC_DAI_ID },
1015
1123
.rtd_init = cs42l43_dmic_rtd_init ,
1124
+ .widgets = generic_dmic_widgets ,
1125
+ .num_widgets = ARRAY_SIZE (generic_dmic_widgets ),
1016
1126
},
1017
1127
{
1018
1128
.direction = {false, true},
@@ -1027,6 +1137,8 @@ static struct sof_sdw_codec_info codec_info_list[] = {
1027
1137
.dailink = {SDW_AMP_OUT_DAI_ID , SDW_UNUSED_DAI_ID },
1028
1138
.init = sof_sdw_cs42l43_spk_init ,
1029
1139
.rtd_init = cs42l43_spk_rtd_init ,
1140
+ .widgets = generic_spk_widgets ,
1141
+ .num_widgets = ARRAY_SIZE (generic_spk_widgets ),
1030
1142
.quirk = SOF_CODEC_SPKR | SOF_SIDECAR_AMPS ,
1031
1143
},
1032
1144
},
0 commit comments