static int midas_lineout_switch(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { struct snd_soc_codec *codec = w->codec; dev_dbg(codec->dev, "%s event is %02X", w->name, event); #if defined(CONFIG_SND_USE_MUIC_SWITCH) switch (event) { case SND_SOC_DAPM_POST_PMU: msleep(150); max77693_muic_set_audio_switch(1); break; case SND_SOC_DAPM_PRE_PMD: max77693_muic_set_audio_switch(0); break; } #endif #ifdef CONFIG_SND_USE_LINEOUT_SWITCH switch (event) { case SND_SOC_DAPM_POST_PMU: gpio_set_value(GPIO_LINEOUT_EN, 1); break; case SND_SOC_DAPM_PRE_PMD: gpio_set_value(GPIO_LINEOUT_EN, 0); break; } #endif return 0; }
static int set_muic_switch(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { struct snd_soc_codec *codec = w->codec; dev_info(codec->dev, "%s event is %02X", w->name, event); #if defined(CONFIG_SND_USE_MUIC_SWITCH) switch (event) { case SND_SOC_DAPM_POST_PMU: msleep(150); max77693_muic_set_audio_switch(1); break; case SND_SOC_DAPM_PRE_PMD: max77693_muic_set_audio_switch(0); break; } #endif return 0; }