Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 193475
b: refs/heads/master
c: 871a05a
h: refs/heads/master
i:
  193473: eece55c
  193471: 5560c5a
v: v3
  • Loading branch information
Jorge Eduardo Candelaria authored and Liam Girdwood committed May 19, 2010
1 parent 586b680 commit cffec11
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7254e2bddc96c47cb5edd30cfd3e1f12a2df9149
refs/heads/master: 871a05a78b4879d768bc2fde4b75439f517e2839
21 changes: 20 additions & 1 deletion trunk/sound/soc/codecs/twl6040.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,6 +432,12 @@ static DECLARE_TLV_DB_SCALE(hs_tlv, -3000, 200, 0);
*/
static DECLARE_TLV_DB_SCALE(hf_tlv, -5200, 200, 0);

/*
* EPGAIN volume control:
* from -24 to 6 dB in 2 dB steps
*/
static DECLARE_TLV_DB_SCALE(ep_tlv, -2400, 200, 0);

/* Left analog microphone selection */
static const char *twl6040_amicl_texts[] =
{"Headset Mic", "Main Mic", "Aux/FM Left", "Off"};
Expand Down Expand Up @@ -479,6 +485,9 @@ static const struct snd_kcontrol_new hfl_driver_switch_controls =
static const struct snd_kcontrol_new hfr_driver_switch_controls =
SOC_DAPM_SINGLE("Switch", TWL6040_REG_HFRCTL, 4, 1, 0);

static const struct snd_kcontrol_new ep_driver_switch_controls =
SOC_DAPM_SINGLE("Switch", TWL6040_REG_EARCTL, 0, 1, 0);

static const struct snd_kcontrol_new twl6040_snd_controls[] = {
/* Capture gains */
SOC_DOUBLE_TLV("Capture Preamplifier Volume",
Expand All @@ -491,7 +500,8 @@ static const struct snd_kcontrol_new twl6040_snd_controls[] = {
TWL6040_REG_HSGAIN, 0, 4, 0xF, 1, hs_tlv),
SOC_DOUBLE_R_TLV("Handsfree Playback Volume",
TWL6040_REG_HFLGAIN, TWL6040_REG_HFRGAIN, 0, 0x1D, 1, hf_tlv),

SOC_SINGLE_TLV("Earphone Playback Volume",
TWL6040_REG_EARCTL, 1, 0xF, 1, ep_tlv),
};

static const struct snd_soc_dapm_widget twl6040_dapm_widgets[] = {
Expand All @@ -507,6 +517,7 @@ static const struct snd_soc_dapm_widget twl6040_dapm_widgets[] = {
SND_SOC_DAPM_OUTPUT("HSOR"),
SND_SOC_DAPM_OUTPUT("HFL"),
SND_SOC_DAPM_OUTPUT("HFR"),
SND_SOC_DAPM_OUTPUT("EP"),

/* Analog input muxes for the capture amplifiers */
SND_SOC_DAPM_MUX("Analog Left Capture Route",
Expand Down Expand Up @@ -572,6 +583,10 @@ static const struct snd_soc_dapm_widget twl6040_dapm_widgets[] = {
SND_SOC_NOPM, 0, 0, &hfr_driver_switch_controls,
twl6040_power_mode_event,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_SWITCH_E("Earphone Driver",
SND_SOC_NOPM, 0, 0, &ep_driver_switch_controls,
twl6040_power_mode_event,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),

/* Analog playback PGAs */
SND_SOC_DAPM_PGA("HFDAC Left PGA",
Expand Down Expand Up @@ -607,6 +622,10 @@ static const struct snd_soc_dapm_route intercon[] = {
{"HSOL", NULL, "Headset Left Driver"},
{"HSOR", NULL, "Headset Right Driver"},

/* Earphone playback path */
{"Earphone Driver", "Switch", "HSDAC Left"},
{"EP", NULL, "Earphone Driver"},

/* Handsfree playback path */
{"HFDAC Left Playback", "Switch", "HFDAC Left"},
{"HFDAC Right Playback", "Switch", "HFDAC Right"},
Expand Down

0 comments on commit cffec11

Please sign in to comment.