Skip to content

Commit

Permalink
ASoC: OMAP: N810: Add more jack functions
Browse files Browse the repository at this point in the history
Add functions "Headset" and "Mic" to the control "Jack Function" for
activating and de-activating codec input pin LINE1L which is connected to
the mic pin of 4-pole Nokia AV connecter.

Note there is no mic bias voltage management here since bias is coming from
Nokia ASIC and driver for it is not in mainline.

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Jarkko Nikula authored and Mark Brown committed Mar 19, 2009
1 parent 13b9d2a commit f8d5fc9
Showing 1 changed file with 26 additions and 2 deletions.
28 changes: 26 additions & 2 deletions sound/soc/omap/n810.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@
#define N810_HEADSET_AMP_GPIO 10
#define N810_SPEAKER_AMP_GPIO 101

enum {
N810_JACK_DISABLED,
N810_JACK_HP,
N810_JACK_HS,
N810_JACK_MIC,
};

static struct clk *sys_clkout2;
static struct clk *sys_clkout2_src;
static struct clk *func96m_clk;
Expand All @@ -50,15 +57,32 @@ static int n810_dmic_func;

static void n810_ext_control(struct snd_soc_codec *codec)
{
int hp = 0, line1l = 0;

switch (n810_jack_func) {
case N810_JACK_HS:
line1l = 1;
case N810_JACK_HP:
hp = 1;
break;
case N810_JACK_MIC:
line1l = 1;
break;
}

if (n810_spk_func)
snd_soc_dapm_enable_pin(codec, "Ext Spk");
else
snd_soc_dapm_disable_pin(codec, "Ext Spk");

if (n810_jack_func)
if (hp)
snd_soc_dapm_enable_pin(codec, "Headphone Jack");
else
snd_soc_dapm_disable_pin(codec, "Headphone Jack");
if (line1l)
snd_soc_dapm_enable_pin(codec, "LINE1L");
else
snd_soc_dapm_disable_pin(codec, "LINE1L");

if (n810_dmic_func)
snd_soc_dapm_enable_pin(codec, "DMic");
Expand Down Expand Up @@ -229,7 +253,7 @@ static const struct snd_soc_dapm_route audio_map[] = {
};

static const char *spk_function[] = {"Off", "On"};
static const char *jack_function[] = {"Off", "Headphone"};
static const char *jack_function[] = {"Off", "Headphone", "Headset", "Mic"};
static const char *input_function[] = {"ADC", "Digital Mic"};
static const struct soc_enum n810_enum[] = {
SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(spk_function), spk_function),
Expand Down

0 comments on commit f8d5fc9

Please sign in to comment.