aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm5102.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/wm5102.c')
-rw-r--r--sound/soc/codecs/wm5102.c205
1 files changed, 204 insertions, 1 deletions
diff --git a/sound/soc/codecs/wm5102.c b/sound/soc/codecs/wm5102.c
index 100fdadda56a..282fd232cdf7 100644
--- a/sound/soc/codecs/wm5102.c
+++ b/sound/soc/codecs/wm5102.c
@@ -814,7 +814,20 @@ SOC_DOUBLE_R_TLV("SPKDAT1 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_5L,
814 814
815SOC_VALUE_ENUM("HPOUT1 OSR", wm5102_hpout_osr[0]), 815SOC_VALUE_ENUM("HPOUT1 OSR", wm5102_hpout_osr[0]),
816SOC_VALUE_ENUM("HPOUT2 OSR", wm5102_hpout_osr[1]), 816SOC_VALUE_ENUM("HPOUT2 OSR", wm5102_hpout_osr[1]),
817SOC_VALUE_ENUM("HPOUT3 OSR", wm5102_hpout_osr[2]), 817SOC_VALUE_ENUM("EPOUT OSR", wm5102_hpout_osr[2]),
818
819SOC_DOUBLE("HPOUT1 DRE Switch", ARIZONA_DRE_ENABLE,
820 ARIZONA_DRE1L_ENA_SHIFT, ARIZONA_DRE1R_ENA_SHIFT, 1, 0),
821SOC_DOUBLE("HPOUT2 DRE Switch", ARIZONA_DRE_ENABLE,
822 ARIZONA_DRE2L_ENA_SHIFT, ARIZONA_DRE2R_ENA_SHIFT, 1, 0),
823SOC_SINGLE("EPOUT DRE Switch", ARIZONA_DRE_ENABLE,
824 ARIZONA_DRE3L_ENA_SHIFT, 1, 0),
825
826SOC_SINGLE("DRE Threshold", ARIZONA_DRE_CONTROL_2,
827 ARIZONA_DRE_T_LOW_SHIFT, 63, 0),
828
829SOC_SINGLE("DRE Low Level ABS", ARIZONA_DRE_CONTROL_3,
830 ARIZONA_DRE_LOW_LEVEL_ABS_SHIFT, 15, 0),
818 831
819SOC_ENUM("Output Ramp Up", arizona_out_vi_ramp), 832SOC_ENUM("Output Ramp Up", arizona_out_vi_ramp),
820SOC_ENUM("Output Ramp Down", arizona_out_vd_ramp), 833SOC_ENUM("Output Ramp Down", arizona_out_vd_ramp),
@@ -852,6 +865,15 @@ ARIZONA_MIXER_CONTROLS("AIF2TX2", ARIZONA_AIF2TX2MIX_INPUT_1_SOURCE),
852 865
853ARIZONA_MIXER_CONTROLS("AIF3TX1", ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE), 866ARIZONA_MIXER_CONTROLS("AIF3TX1", ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE),
854ARIZONA_MIXER_CONTROLS("AIF3TX2", ARIZONA_AIF3TX2MIX_INPUT_1_SOURCE), 867ARIZONA_MIXER_CONTROLS("AIF3TX2", ARIZONA_AIF3TX2MIX_INPUT_1_SOURCE),
868
869ARIZONA_MIXER_CONTROLS("SLIMTX1", ARIZONA_SLIMTX1MIX_INPUT_1_SOURCE),
870ARIZONA_MIXER_CONTROLS("SLIMTX2", ARIZONA_SLIMTX2MIX_INPUT_1_SOURCE),
871ARIZONA_MIXER_CONTROLS("SLIMTX3", ARIZONA_SLIMTX3MIX_INPUT_1_SOURCE),
872ARIZONA_MIXER_CONTROLS("SLIMTX4", ARIZONA_SLIMTX4MIX_INPUT_1_SOURCE),
873ARIZONA_MIXER_CONTROLS("SLIMTX5", ARIZONA_SLIMTX5MIX_INPUT_1_SOURCE),
874ARIZONA_MIXER_CONTROLS("SLIMTX6", ARIZONA_SLIMTX6MIX_INPUT_1_SOURCE),
875ARIZONA_MIXER_CONTROLS("SLIMTX7", ARIZONA_SLIMTX7MIX_INPUT_1_SOURCE),
876ARIZONA_MIXER_CONTROLS("SLIMTX8", ARIZONA_SLIMTX8MIX_INPUT_1_SOURCE),
855}; 877};
856 878
857ARIZONA_MIXER_ENUMS(EQ1, ARIZONA_EQ1MIX_INPUT_1_SOURCE); 879ARIZONA_MIXER_ENUMS(EQ1, ARIZONA_EQ1MIX_INPUT_1_SOURCE);
@@ -898,6 +920,15 @@ ARIZONA_MIXER_ENUMS(AIF2TX2, ARIZONA_AIF2TX2MIX_INPUT_1_SOURCE);
898ARIZONA_MIXER_ENUMS(AIF3TX1, ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE); 920ARIZONA_MIXER_ENUMS(AIF3TX1, ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE);
899ARIZONA_MIXER_ENUMS(AIF3TX2, ARIZONA_AIF3TX2MIX_INPUT_1_SOURCE); 921ARIZONA_MIXER_ENUMS(AIF3TX2, ARIZONA_AIF3TX2MIX_INPUT_1_SOURCE);
900 922
923ARIZONA_MIXER_ENUMS(SLIMTX1, ARIZONA_SLIMTX1MIX_INPUT_1_SOURCE);
924ARIZONA_MIXER_ENUMS(SLIMTX2, ARIZONA_SLIMTX2MIX_INPUT_1_SOURCE);
925ARIZONA_MIXER_ENUMS(SLIMTX3, ARIZONA_SLIMTX3MIX_INPUT_1_SOURCE);
926ARIZONA_MIXER_ENUMS(SLIMTX4, ARIZONA_SLIMTX4MIX_INPUT_1_SOURCE);
927ARIZONA_MIXER_ENUMS(SLIMTX5, ARIZONA_SLIMTX5MIX_INPUT_1_SOURCE);
928ARIZONA_MIXER_ENUMS(SLIMTX6, ARIZONA_SLIMTX6MIX_INPUT_1_SOURCE);
929ARIZONA_MIXER_ENUMS(SLIMTX7, ARIZONA_SLIMTX7MIX_INPUT_1_SOURCE);
930ARIZONA_MIXER_ENUMS(SLIMTX8, ARIZONA_SLIMTX8MIX_INPUT_1_SOURCE);
931
901ARIZONA_MUX_ENUMS(ASRC1L, ARIZONA_ASRC1LMIX_INPUT_1_SOURCE); 932ARIZONA_MUX_ENUMS(ASRC1L, ARIZONA_ASRC1LMIX_INPUT_1_SOURCE);
902ARIZONA_MUX_ENUMS(ASRC1R, ARIZONA_ASRC1RMIX_INPUT_1_SOURCE); 933ARIZONA_MUX_ENUMS(ASRC1R, ARIZONA_ASRC1RMIX_INPUT_1_SOURCE);
903ARIZONA_MUX_ENUMS(ASRC2L, ARIZONA_ASRC2LMIX_INPUT_1_SOURCE); 934ARIZONA_MUX_ENUMS(ASRC2L, ARIZONA_ASRC2LMIX_INPUT_1_SOURCE);
@@ -1117,6 +1148,56 @@ SND_SOC_DAPM_AIF_IN("AIF3RX1", NULL, 0,
1117SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 0, 1148SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 0,
1118 ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX2_ENA_SHIFT, 0), 1149 ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX2_ENA_SHIFT, 0),
1119 1150
1151SND_SOC_DAPM_AIF_OUT("SLIMTX1", NULL, 0,
1152 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
1153 ARIZONA_SLIMTX1_ENA_SHIFT, 0),
1154SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 0,
1155 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
1156 ARIZONA_SLIMTX2_ENA_SHIFT, 0),
1157SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 0,
1158 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
1159 ARIZONA_SLIMTX3_ENA_SHIFT, 0),
1160SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 0,
1161 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
1162 ARIZONA_SLIMTX4_ENA_SHIFT, 0),
1163SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 0,
1164 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
1165 ARIZONA_SLIMTX5_ENA_SHIFT, 0),
1166SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 0,
1167 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
1168 ARIZONA_SLIMTX6_ENA_SHIFT, 0),
1169SND_SOC_DAPM_AIF_OUT("SLIMTX7", NULL, 0,
1170 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
1171 ARIZONA_SLIMTX7_ENA_SHIFT, 0),
1172SND_SOC_DAPM_AIF_OUT("SLIMTX8", NULL, 0,
1173 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
1174 ARIZONA_SLIMTX8_ENA_SHIFT, 0),
1175
1176SND_SOC_DAPM_AIF_IN("SLIMRX1", NULL, 0,
1177 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
1178 ARIZONA_SLIMRX1_ENA_SHIFT, 0),
1179SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 0,
1180 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
1181 ARIZONA_SLIMRX2_ENA_SHIFT, 0),
1182SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 0,
1183 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
1184 ARIZONA_SLIMRX3_ENA_SHIFT, 0),
1185SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 0,
1186 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
1187 ARIZONA_SLIMRX4_ENA_SHIFT, 0),
1188SND_SOC_DAPM_AIF_IN("SLIMRX5", NULL, 0,
1189 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
1190 ARIZONA_SLIMRX5_ENA_SHIFT, 0),
1191SND_SOC_DAPM_AIF_IN("SLIMRX6", NULL, 0,
1192 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
1193 ARIZONA_SLIMRX6_ENA_SHIFT, 0),
1194SND_SOC_DAPM_AIF_IN("SLIMRX7", NULL, 0,
1195 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
1196 ARIZONA_SLIMRX7_ENA_SHIFT, 0),
1197SND_SOC_DAPM_AIF_IN("SLIMRX8", NULL, 0,
1198 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
1199 ARIZONA_SLIMRX8_ENA_SHIFT, 0),
1200
1120ARIZONA_DSP_WIDGETS(DSP1, "DSP1"), 1201ARIZONA_DSP_WIDGETS(DSP1, "DSP1"),
1121 1202
1122SND_SOC_DAPM_VALUE_MUX("AEC Loopback", ARIZONA_DAC_AEC_CONTROL_1, 1203SND_SOC_DAPM_VALUE_MUX("AEC Loopback", ARIZONA_DAC_AEC_CONTROL_1,
@@ -1189,6 +1270,15 @@ ARIZONA_MIXER_WIDGETS(AIF2TX2, "AIF2TX2"),
1189ARIZONA_MIXER_WIDGETS(AIF3TX1, "AIF3TX1"), 1270ARIZONA_MIXER_WIDGETS(AIF3TX1, "AIF3TX1"),
1190ARIZONA_MIXER_WIDGETS(AIF3TX2, "AIF3TX2"), 1271ARIZONA_MIXER_WIDGETS(AIF3TX2, "AIF3TX2"),
1191 1272
1273ARIZONA_MIXER_WIDGETS(SLIMTX1, "SLIMTX1"),
1274ARIZONA_MIXER_WIDGETS(SLIMTX2, "SLIMTX2"),
1275ARIZONA_MIXER_WIDGETS(SLIMTX3, "SLIMTX3"),
1276ARIZONA_MIXER_WIDGETS(SLIMTX4, "SLIMTX4"),
1277ARIZONA_MIXER_WIDGETS(SLIMTX5, "SLIMTX5"),
1278ARIZONA_MIXER_WIDGETS(SLIMTX6, "SLIMTX6"),
1279ARIZONA_MIXER_WIDGETS(SLIMTX7, "SLIMTX7"),
1280ARIZONA_MIXER_WIDGETS(SLIMTX8, "SLIMTX8"),
1281
1192ARIZONA_MUX_WIDGETS(ASRC1L, "ASRC1L"), 1282ARIZONA_MUX_WIDGETS(ASRC1L, "ASRC1L"),
1193ARIZONA_MUX_WIDGETS(ASRC1R, "ASRC1R"), 1283ARIZONA_MUX_WIDGETS(ASRC1R, "ASRC1R"),
1194ARIZONA_MUX_WIDGETS(ASRC2L, "ASRC2L"), 1284ARIZONA_MUX_WIDGETS(ASRC2L, "ASRC2L"),
@@ -1249,6 +1339,14 @@ SND_SOC_DAPM_OUTPUT("MICSUPP"),
1249 { name, "AIF2RX2", "AIF2RX2" }, \ 1339 { name, "AIF2RX2", "AIF2RX2" }, \
1250 { name, "AIF3RX1", "AIF3RX1" }, \ 1340 { name, "AIF3RX1", "AIF3RX1" }, \
1251 { name, "AIF3RX2", "AIF3RX2" }, \ 1341 { name, "AIF3RX2", "AIF3RX2" }, \
1342 { name, "SLIMRX1", "SLIMRX1" }, \
1343 { name, "SLIMRX2", "SLIMRX2" }, \
1344 { name, "SLIMRX3", "SLIMRX3" }, \
1345 { name, "SLIMRX4", "SLIMRX4" }, \
1346 { name, "SLIMRX5", "SLIMRX5" }, \
1347 { name, "SLIMRX6", "SLIMRX6" }, \
1348 { name, "SLIMRX7", "SLIMRX7" }, \
1349 { name, "SLIMRX8", "SLIMRX8" }, \
1252 { name, "EQ1", "EQ1" }, \ 1350 { name, "EQ1", "EQ1" }, \
1253 { name, "EQ2", "EQ2" }, \ 1351 { name, "EQ2", "EQ2" }, \
1254 { name, "EQ3", "EQ3" }, \ 1352 { name, "EQ3", "EQ3" }, \
@@ -1304,10 +1402,21 @@ static const struct snd_soc_dapm_route wm5102_dapm_routes[] = {
1304 { "OUT5L", NULL, "SYSCLK" }, 1402 { "OUT5L", NULL, "SYSCLK" },
1305 { "OUT5R", NULL, "SYSCLK" }, 1403 { "OUT5R", NULL, "SYSCLK" },
1306 1404
1405 { "IN1L", NULL, "SYSCLK" },
1406 { "IN1R", NULL, "SYSCLK" },
1407 { "IN2L", NULL, "SYSCLK" },
1408 { "IN2R", NULL, "SYSCLK" },
1409 { "IN3L", NULL, "SYSCLK" },
1410 { "IN3R", NULL, "SYSCLK" },
1411
1307 { "MICBIAS1", NULL, "MICVDD" }, 1412 { "MICBIAS1", NULL, "MICVDD" },
1308 { "MICBIAS2", NULL, "MICVDD" }, 1413 { "MICBIAS2", NULL, "MICVDD" },
1309 { "MICBIAS3", NULL, "MICVDD" }, 1414 { "MICBIAS3", NULL, "MICVDD" },
1310 1415
1416 { "Noise Generator", NULL, "SYSCLK" },
1417 { "Tone Generator 1", NULL, "SYSCLK" },
1418 { "Tone Generator 2", NULL, "SYSCLK" },
1419
1311 { "Noise Generator", NULL, "NOISE" }, 1420 { "Noise Generator", NULL, "NOISE" },
1312 { "Tone Generator 1", NULL, "TONE" }, 1421 { "Tone Generator 1", NULL, "TONE" },
1313 { "Tone Generator 2", NULL, "TONE" }, 1422 { "Tone Generator 2", NULL, "TONE" },
@@ -1345,13 +1454,41 @@ static const struct snd_soc_dapm_route wm5102_dapm_routes[] = {
1345 { "AIF3RX1", NULL, "AIF3 Playback" }, 1454 { "AIF3RX1", NULL, "AIF3 Playback" },
1346 { "AIF3RX2", NULL, "AIF3 Playback" }, 1455 { "AIF3RX2", NULL, "AIF3 Playback" },
1347 1456
1457 { "Slim1 Capture", NULL, "SLIMTX1" },
1458 { "Slim1 Capture", NULL, "SLIMTX2" },
1459 { "Slim1 Capture", NULL, "SLIMTX3" },
1460 { "Slim1 Capture", NULL, "SLIMTX4" },
1461
1462 { "SLIMRX1", NULL, "Slim1 Playback" },
1463 { "SLIMRX2", NULL, "Slim1 Playback" },
1464 { "SLIMRX3", NULL, "Slim1 Playback" },
1465 { "SLIMRX4", NULL, "Slim1 Playback" },
1466
1467 { "Slim2 Capture", NULL, "SLIMTX5" },
1468 { "Slim2 Capture", NULL, "SLIMTX6" },
1469
1470 { "SLIMRX5", NULL, "Slim2 Playback" },
1471 { "SLIMRX6", NULL, "Slim2 Playback" },
1472
1473 { "Slim3 Capture", NULL, "SLIMTX7" },
1474 { "Slim3 Capture", NULL, "SLIMTX8" },
1475
1476 { "SLIMRX7", NULL, "Slim3 Playback" },
1477 { "SLIMRX8", NULL, "Slim3 Playback" },
1478
1348 { "AIF1 Playback", NULL, "SYSCLK" }, 1479 { "AIF1 Playback", NULL, "SYSCLK" },
1349 { "AIF2 Playback", NULL, "SYSCLK" }, 1480 { "AIF2 Playback", NULL, "SYSCLK" },
1350 { "AIF3 Playback", NULL, "SYSCLK" }, 1481 { "AIF3 Playback", NULL, "SYSCLK" },
1482 { "Slim1 Playback", NULL, "SYSCLK" },
1483 { "Slim2 Playback", NULL, "SYSCLK" },
1484 { "Slim3 Playback", NULL, "SYSCLK" },
1351 1485
1352 { "AIF1 Capture", NULL, "SYSCLK" }, 1486 { "AIF1 Capture", NULL, "SYSCLK" },
1353 { "AIF2 Capture", NULL, "SYSCLK" }, 1487 { "AIF2 Capture", NULL, "SYSCLK" },
1354 { "AIF3 Capture", NULL, "SYSCLK" }, 1488 { "AIF3 Capture", NULL, "SYSCLK" },
1489 { "Slim1 Capture", NULL, "SYSCLK" },
1490 { "Slim2 Capture", NULL, "SYSCLK" },
1491 { "Slim3 Capture", NULL, "SYSCLK" },
1355 1492
1356 { "IN1L PGA", NULL, "IN1L" }, 1493 { "IN1L PGA", NULL, "IN1L" },
1357 { "IN1R PGA", NULL, "IN1R" }, 1494 { "IN1R PGA", NULL, "IN1R" },
@@ -1408,6 +1545,15 @@ static const struct snd_soc_dapm_route wm5102_dapm_routes[] = {
1408 ARIZONA_MIXER_ROUTES("AIF3TX1", "AIF3TX1"), 1545 ARIZONA_MIXER_ROUTES("AIF3TX1", "AIF3TX1"),
1409 ARIZONA_MIXER_ROUTES("AIF3TX2", "AIF3TX2"), 1546 ARIZONA_MIXER_ROUTES("AIF3TX2", "AIF3TX2"),
1410 1547
1548 ARIZONA_MIXER_ROUTES("SLIMTX1", "SLIMTX1"),
1549 ARIZONA_MIXER_ROUTES("SLIMTX2", "SLIMTX2"),
1550 ARIZONA_MIXER_ROUTES("SLIMTX3", "SLIMTX3"),
1551 ARIZONA_MIXER_ROUTES("SLIMTX4", "SLIMTX4"),
1552 ARIZONA_MIXER_ROUTES("SLIMTX5", "SLIMTX5"),
1553 ARIZONA_MIXER_ROUTES("SLIMTX6", "SLIMTX6"),
1554 ARIZONA_MIXER_ROUTES("SLIMTX7", "SLIMTX7"),
1555 ARIZONA_MIXER_ROUTES("SLIMTX8", "SLIMTX8"),
1556
1411 ARIZONA_MIXER_ROUTES("EQ1", "EQ1"), 1557 ARIZONA_MIXER_ROUTES("EQ1", "EQ1"),
1412 ARIZONA_MIXER_ROUTES("EQ2", "EQ2"), 1558 ARIZONA_MIXER_ROUTES("EQ2", "EQ2"),
1413 ARIZONA_MIXER_ROUTES("EQ3", "EQ3"), 1559 ARIZONA_MIXER_ROUTES("EQ3", "EQ3"),
@@ -1560,6 +1706,63 @@ static struct snd_soc_dai_driver wm5102_dai[] = {
1560 .ops = &arizona_dai_ops, 1706 .ops = &arizona_dai_ops,
1561 .symmetric_rates = 1, 1707 .symmetric_rates = 1,
1562 }, 1708 },
1709 {
1710 .name = "wm5102-slim1",
1711 .id = 4,
1712 .playback = {
1713 .stream_name = "Slim1 Playback",
1714 .channels_min = 1,
1715 .channels_max = 4,
1716 .rates = WM5102_RATES,
1717 .formats = WM5102_FORMATS,
1718 },
1719 .capture = {
1720 .stream_name = "Slim1 Capture",
1721 .channels_min = 1,
1722 .channels_max = 4,
1723 .rates = WM5102_RATES,
1724 .formats = WM5102_FORMATS,
1725 },
1726 .ops = &arizona_simple_dai_ops,
1727 },
1728 {
1729 .name = "wm5102-slim2",
1730 .id = 5,
1731 .playback = {
1732 .stream_name = "Slim2 Playback",
1733 .channels_min = 1,
1734 .channels_max = 2,
1735 .rates = WM5102_RATES,
1736 .formats = WM5102_FORMATS,
1737 },
1738 .capture = {
1739 .stream_name = "Slim2 Capture",
1740 .channels_min = 1,
1741 .channels_max = 2,
1742 .rates = WM5102_RATES,
1743 .formats = WM5102_FORMATS,
1744 },
1745 .ops = &arizona_simple_dai_ops,
1746 },
1747 {
1748 .name = "wm5102-slim3",
1749 .id = 6,
1750 .playback = {
1751 .stream_name = "Slim3 Playback",
1752 .channels_min = 1,
1753 .channels_max = 2,
1754 .rates = WM5102_RATES,
1755 .formats = WM5102_FORMATS,
1756 },
1757 .capture = {
1758 .stream_name = "Slim3 Capture",
1759 .channels_min = 1,
1760 .channels_max = 2,
1761 .rates = WM5102_RATES,
1762 .formats = WM5102_FORMATS,
1763 },
1764 .ops = &arizona_simple_dai_ops,
1765 },
1563}; 1766};
1564 1767
1565static int wm5102_codec_probe(struct snd_soc_codec *codec) 1768static int wm5102_codec_probe(struct snd_soc_codec *codec)