diff options
| author | Bard Liao <bardliao@realtek.com> | 2016-03-07 02:09:38 -0500 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2016-03-07 02:39:38 -0500 |
| commit | 57586fb76471c5fc521b2e9c3a4eae259b06d479 (patch) | |
| tree | d69c9d38d40912db7a7687f7c2158321aea00e3a | |
| parent | c467fc0e010b66069c0d5bb3e8e869adf267115f (diff) | |
ASoC: rt5640: add supplys for dac power
The DAC1/2 power is for both DACs and related mixer/mux. Add SUPPLY
type widgets to support it.
Signed-off-by: Jack Yu <jack.yu@realtek.com>
Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/codecs/rt5640.c | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c index 863c190c5076..af9b5f18f0e0 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c | |||
| @@ -1217,11 +1217,14 @@ static const struct snd_soc_dapm_widget rt5640_dapm_widgets[] = { | |||
| 1217 | SND_SOC_DAPM_MIXER("DIG MIXR", SND_SOC_NOPM, 0, 0, | 1217 | SND_SOC_DAPM_MIXER("DIG MIXR", SND_SOC_NOPM, 0, 0, |
| 1218 | rt5640_dig_r_mix, ARRAY_SIZE(rt5640_dig_r_mix)), | 1218 | rt5640_dig_r_mix, ARRAY_SIZE(rt5640_dig_r_mix)), |
| 1219 | /* DACs */ | 1219 | /* DACs */ |
| 1220 | SND_SOC_DAPM_DAC("DAC L1", NULL, RT5640_PWR_DIG1, | 1220 | SND_SOC_DAPM_DAC("DAC L1", NULL, SND_SOC_NOPM, |
| 1221 | RT5640_PWR_DAC_L1_BIT, 0), | 1221 | 0, 0), |
| 1222 | SND_SOC_DAPM_DAC("DAC R1", NULL, RT5640_PWR_DIG1, | 1222 | SND_SOC_DAPM_DAC("DAC R1", NULL, SND_SOC_NOPM, |
| 1223 | RT5640_PWR_DAC_R1_BIT, 0), | 1223 | 0, 0), |
| 1224 | 1224 | SND_SOC_DAPM_SUPPLY("DAC L1 Power", RT5640_PWR_DIG1, | |
| 1225 | RT5640_PWR_DAC_L1_BIT, 0, NULL, 0), | ||
| 1226 | SND_SOC_DAPM_SUPPLY("DAC R1 Power", RT5640_PWR_DIG1, | ||
| 1227 | RT5640_PWR_DAC_R1_BIT, 0, NULL, 0), | ||
| 1225 | /* SPK/OUT Mixer */ | 1228 | /* SPK/OUT Mixer */ |
| 1226 | SND_SOC_DAPM_MIXER("SPK MIXL", RT5640_PWR_MIXER, RT5640_PWR_SM_L_BIT, | 1229 | SND_SOC_DAPM_MIXER("SPK MIXL", RT5640_PWR_MIXER, RT5640_PWR_SM_L_BIT, |
| 1227 | 0, rt5640_spk_l_mix, ARRAY_SIZE(rt5640_spk_l_mix)), | 1230 | 0, rt5640_spk_l_mix, ARRAY_SIZE(rt5640_spk_l_mix)), |
| @@ -1298,9 +1301,9 @@ static const struct snd_soc_dapm_widget rt5640_specific_dapm_widgets[] = { | |||
| 1298 | SND_SOC_DAPM_MIXER("Stereo DAC MIXR", SND_SOC_NOPM, 0, 0, | 1301 | SND_SOC_DAPM_MIXER("Stereo DAC MIXR", SND_SOC_NOPM, 0, 0, |
| 1299 | rt5640_sto_dac_r_mix, ARRAY_SIZE(rt5640_sto_dac_r_mix)), | 1302 | rt5640_sto_dac_r_mix, ARRAY_SIZE(rt5640_sto_dac_r_mix)), |
| 1300 | 1303 | ||
| 1301 | SND_SOC_DAPM_DAC("DAC R2", NULL, RT5640_PWR_DIG1, RT5640_PWR_DAC_R2_BIT, | 1304 | SND_SOC_DAPM_DAC("DAC R2", NULL, SND_SOC_NOPM, 0, |
| 1302 | 0), | 1305 | 0), |
| 1303 | SND_SOC_DAPM_DAC("DAC L2", NULL, RT5640_PWR_DIG1, RT5640_PWR_DAC_L2_BIT, | 1306 | SND_SOC_DAPM_DAC("DAC L2", NULL, SND_SOC_NOPM, 0, |
| 1304 | 0), | 1307 | 0), |
| 1305 | 1308 | ||
| 1306 | SND_SOC_DAPM_MIXER("OUT MIXL", RT5640_PWR_MIXER, RT5640_PWR_OM_L_BIT, | 1309 | SND_SOC_DAPM_MIXER("OUT MIXL", RT5640_PWR_MIXER, RT5640_PWR_OM_L_BIT, |
| @@ -1317,6 +1320,10 @@ static const struct snd_soc_dapm_widget rt5640_specific_dapm_widgets[] = { | |||
| 1317 | rt5640_mono_mix, ARRAY_SIZE(rt5640_mono_mix)), | 1320 | rt5640_mono_mix, ARRAY_SIZE(rt5640_mono_mix)), |
| 1318 | SND_SOC_DAPM_SUPPLY("Improve MONO Amp Drv", RT5640_PWR_ANLG1, | 1321 | SND_SOC_DAPM_SUPPLY("Improve MONO Amp Drv", RT5640_PWR_ANLG1, |
| 1319 | RT5640_PWR_MA_BIT, 0, NULL, 0), | 1322 | RT5640_PWR_MA_BIT, 0, NULL, 0), |
| 1323 | SND_SOC_DAPM_SUPPLY("DAC L2 Power", RT5640_PWR_DIG1, | ||
| 1324 | RT5640_PWR_DAC_L2_BIT, 0, NULL, 0), | ||
| 1325 | SND_SOC_DAPM_SUPPLY("DAC R2 Power", RT5640_PWR_DIG1, | ||
| 1326 | RT5640_PWR_DAC_R2_BIT, 0, NULL, 0), | ||
| 1320 | 1327 | ||
| 1321 | SND_SOC_DAPM_OUTPUT("MONOP"), | 1328 | SND_SOC_DAPM_OUTPUT("MONOP"), |
| 1322 | SND_SOC_DAPM_OUTPUT("MONON"), | 1329 | SND_SOC_DAPM_OUTPUT("MONON"), |
| @@ -1328,11 +1335,6 @@ static const struct snd_soc_dapm_widget rt5639_specific_dapm_widgets[] = { | |||
| 1328 | SND_SOC_DAPM_MIXER("Stereo DAC MIXR", SND_SOC_NOPM, 0, 0, | 1335 | SND_SOC_DAPM_MIXER("Stereo DAC MIXR", SND_SOC_NOPM, 0, 0, |
| 1329 | rt5639_sto_dac_r_mix, ARRAY_SIZE(rt5639_sto_dac_r_mix)), | 1336 | rt5639_sto_dac_r_mix, ARRAY_SIZE(rt5639_sto_dac_r_mix)), |
| 1330 | 1337 | ||
| 1331 | SND_SOC_DAPM_SUPPLY("DAC L2 Filter", RT5640_PWR_DIG1, | ||
| 1332 | RT5640_PWR_DAC_L2_BIT, 0, NULL, 0), | ||
| 1333 | SND_SOC_DAPM_SUPPLY("DAC R2 Filter", RT5640_PWR_DIG1, | ||
| 1334 | RT5640_PWR_DAC_R2_BIT, 0, NULL, 0), | ||
| 1335 | |||
| 1336 | SND_SOC_DAPM_MIXER("OUT MIXL", RT5640_PWR_MIXER, RT5640_PWR_OM_L_BIT, | 1338 | SND_SOC_DAPM_MIXER("OUT MIXL", RT5640_PWR_MIXER, RT5640_PWR_OM_L_BIT, |
| 1337 | 0, rt5639_out_l_mix, ARRAY_SIZE(rt5639_out_l_mix)), | 1339 | 0, rt5639_out_l_mix, ARRAY_SIZE(rt5639_out_l_mix)), |
| 1338 | SND_SOC_DAPM_MIXER("OUT MIXR", RT5640_PWR_MIXER, RT5640_PWR_OM_R_BIT, | 1340 | SND_SOC_DAPM_MIXER("OUT MIXR", RT5640_PWR_MIXER, RT5640_PWR_OM_R_BIT, |
| @@ -1493,8 +1495,10 @@ static const struct snd_soc_dapm_route rt5640_dapm_routes[] = { | |||
| 1493 | 1495 | ||
| 1494 | {"DAC MIXL", "Stereo ADC Switch", "Stereo ADC MIXL"}, | 1496 | {"DAC MIXL", "Stereo ADC Switch", "Stereo ADC MIXL"}, |
| 1495 | {"DAC MIXL", "INF1 Switch", "IF1 DAC L"}, | 1497 | {"DAC MIXL", "INF1 Switch", "IF1 DAC L"}, |
| 1498 | {"DAC MIXL", NULL, "DAC L1 Power"}, | ||
| 1496 | {"DAC MIXR", "Stereo ADC Switch", "Stereo ADC MIXR"}, | 1499 | {"DAC MIXR", "Stereo ADC Switch", "Stereo ADC MIXR"}, |
| 1497 | {"DAC MIXR", "INF1 Switch", "IF1 DAC R"}, | 1500 | {"DAC MIXR", "INF1 Switch", "IF1 DAC R"}, |
| 1501 | {"DAC MIXR", NULL, "DAC R1 Power"}, | ||
| 1498 | 1502 | ||
| 1499 | {"Stereo DAC MIXL", "DAC L1 Switch", "DAC MIXL"}, | 1503 | {"Stereo DAC MIXL", "DAC L1 Switch", "DAC MIXL"}, |
| 1500 | {"Stereo DAC MIXR", "DAC R1 Switch", "DAC MIXR"}, | 1504 | {"Stereo DAC MIXR", "DAC R1 Switch", "DAC MIXR"}, |
| @@ -1507,8 +1511,10 @@ static const struct snd_soc_dapm_route rt5640_dapm_routes[] = { | |||
| 1507 | 1511 | ||
| 1508 | {"DAC L1", NULL, "Stereo DAC MIXL"}, | 1512 | {"DAC L1", NULL, "Stereo DAC MIXL"}, |
| 1509 | {"DAC L1", NULL, "PLL1", is_sys_clk_from_pll}, | 1513 | {"DAC L1", NULL, "PLL1", is_sys_clk_from_pll}, |
| 1514 | {"DAC L1", NULL, "DAC L1 Power"}, | ||
| 1510 | {"DAC R1", NULL, "Stereo DAC MIXR"}, | 1515 | {"DAC R1", NULL, "Stereo DAC MIXR"}, |
| 1511 | {"DAC R1", NULL, "PLL1", is_sys_clk_from_pll}, | 1516 | {"DAC R1", NULL, "PLL1", is_sys_clk_from_pll}, |
| 1517 | {"DAC R1", NULL, "DAC R1 Power"}, | ||
| 1512 | 1518 | ||
| 1513 | {"SPK MIXL", "REC MIXL Switch", "RECMIXL"}, | 1519 | {"SPK MIXL", "REC MIXL Switch", "RECMIXL"}, |
| 1514 | {"SPK MIXL", "INL Switch", "INL VOL"}, | 1520 | {"SPK MIXL", "INL Switch", "INL VOL"}, |
| @@ -1595,8 +1601,9 @@ static const struct snd_soc_dapm_route rt5640_specific_dapm_routes[] = { | |||
| 1595 | 1601 | ||
| 1596 | {"DAC L2 Mux", "IF2", "IF2 DAC L"}, | 1602 | {"DAC L2 Mux", "IF2", "IF2 DAC L"}, |
| 1597 | {"DAC L2 Mux", "Base L/R", "Audio DSP"}, | 1603 | {"DAC L2 Mux", "Base L/R", "Audio DSP"}, |
| 1598 | 1604 | {"DAC L2 Mux", NULL, "DAC L2 Power"}, | |
| 1599 | {"DAC R2 Mux", "IF2", "IF2 DAC R"}, | 1605 | {"DAC R2 Mux", "IF2", "IF2 DAC R"}, |
| 1606 | {"DAC R2 Mux", NULL, "DAC R2 Power"}, | ||
| 1600 | 1607 | ||
| 1601 | {"Stereo DAC MIXL", "DAC L2 Switch", "DAC L2 Mux"}, | 1608 | {"Stereo DAC MIXL", "DAC L2 Switch", "DAC L2 Mux"}, |
| 1602 | {"Stereo DAC MIXL", "ANC Switch", "ANC"}, | 1609 | {"Stereo DAC MIXL", "ANC Switch", "ANC"}, |
| @@ -1614,8 +1621,10 @@ static const struct snd_soc_dapm_route rt5640_specific_dapm_routes[] = { | |||
| 1614 | 1621 | ||
| 1615 | {"DAC L2", NULL, "Mono DAC MIXL"}, | 1622 | {"DAC L2", NULL, "Mono DAC MIXL"}, |
| 1616 | {"DAC L2", NULL, "PLL1", is_sys_clk_from_pll}, | 1623 | {"DAC L2", NULL, "PLL1", is_sys_clk_from_pll}, |
| 1624 | {"DAC L2", NULL, "DAC L2 Power"}, | ||
| 1617 | {"DAC R2", NULL, "Mono DAC MIXR"}, | 1625 | {"DAC R2", NULL, "Mono DAC MIXR"}, |
| 1618 | {"DAC R2", NULL, "PLL1", is_sys_clk_from_pll}, | 1626 | {"DAC R2", NULL, "PLL1", is_sys_clk_from_pll}, |
| 1627 | {"DAC R2", NULL, "DAC R2 Power"}, | ||
| 1619 | 1628 | ||
| 1620 | {"SPK MIXL", "DAC L2 Switch", "DAC L2"}, | 1629 | {"SPK MIXL", "DAC L2 Switch", "DAC L2"}, |
| 1621 | {"SPK MIXR", "DAC R2 Switch", "DAC R2"}, | 1630 | {"SPK MIXR", "DAC R2 Switch", "DAC R2"}, |
| @@ -1656,8 +1665,8 @@ static const struct snd_soc_dapm_route rt5639_specific_dapm_routes[] = { | |||
| 1656 | {"DIG MIXL", "DAC L2 Switch", "IF2 DAC L"}, | 1665 | {"DIG MIXL", "DAC L2 Switch", "IF2 DAC L"}, |
| 1657 | {"DIG MIXR", "DAC R2 Switch", "IF2 DAC R"}, | 1666 | {"DIG MIXR", "DAC R2 Switch", "IF2 DAC R"}, |
| 1658 | 1667 | ||
| 1659 | {"IF2 DAC L", NULL, "DAC L2 Filter"}, | 1668 | {"IF2 DAC L", NULL, "DAC L2 Power"}, |
| 1660 | {"IF2 DAC R", NULL, "DAC R2 Filter"}, | 1669 | {"IF2 DAC R", NULL, "DAC R2 Power"}, |
| 1661 | }; | 1670 | }; |
| 1662 | 1671 | ||
| 1663 | static int get_sdp_info(struct snd_soc_codec *codec, int dai_id) | 1672 | static int get_sdp_info(struct snd_soc_codec *codec, int dai_id) |
