aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCandelaria Villareal, Jorge <x0107209@ti.com>2009-07-02 19:04:07 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-07-03 11:01:05 +0100
commit1b6ebdd7bbdb3fdcab82c8056dbae0c23dbaaf4d (patch)
tree09738c690a93c53f882e37da19298fb02aae52aa
parent4e49ffd10f01950bd81e8ef368a1ffb484a7d759 (diff)
downloadkernel_samsung_aries-1b6ebdd7bbdb3fdcab82c8056dbae0c23dbaaf4d.zip
kernel_samsung_aries-1b6ebdd7bbdb3fdcab82c8056dbae0c23dbaaf4d.tar.gz
kernel_samsung_aries-1b6ebdd7bbdb3fdcab82c8056dbae0c23dbaaf4d.tar.bz2
ASoC: Zoom2: Update twl4030_setup_data parameters
Add support for EXTMUTE in Zoom2 machine driver. This is necessary to further reduce pop noise problem. Signal EXTMUTE is connected to signal GPIO 153 in Zoom2 board. In addition, change ramp delay value to 3 (218/161/109 ms). With previous ramp delay value, pop noise was louder. With a longer value the beep tone can be observed. Signed-off-by: Jorge Eduardo Candelaria <x0107209@ti.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--sound/soc/omap/zoom2.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/sound/soc/omap/zoom2.c b/sound/soc/omap/zoom2.c
index 3de6d2b..f90b45f 100644
--- a/sound/soc/omap/zoom2.c
+++ b/sound/soc/omap/zoom2.c
@@ -35,7 +35,8 @@
#include "omap-pcm.h"
#include "../codecs/twl4030.h"
-#define ZOOM2_HEADSET_MUX_GPIO (OMAP_MAX_GPIO_LINES + 15)
+#define ZOOM2_HEADSET_MUX_GPIO (OMAP_MAX_GPIO_LINES + 15)
+#define ZOOM2_HEADSET_EXTMUTE_GPIO 153
static int zoom2_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params)
@@ -234,10 +235,18 @@ static struct snd_soc_card snd_soc_zoom2 = {
.num_links = ARRAY_SIZE(zoom2_dai),
};
+/* EXTMUTE callback function */
+void zoom2_set_hs_extmute(int mute)
+{
+ gpio_set_value(ZOOM2_HEADSET_EXTMUTE_GPIO, mute);
+}
+
/* twl4030 setup */
static struct twl4030_setup_data twl4030_setup = {
- .ramp_delay_value = 2, /* 81 ms */
+ .ramp_delay_value = 3, /* 161 ms */
.sysclk = 26000,
+ .hs_extmute = 1,
+ .set_hs_extmute = zoom2_set_hs_extmute,
};
/* Audio subsystem */
@@ -277,6 +286,9 @@ static int __init zoom2_soc_init(void)
BUG_ON(gpio_request(ZOOM2_HEADSET_MUX_GPIO, "hs_mux") < 0);
gpio_direction_output(ZOOM2_HEADSET_MUX_GPIO, 0);
+ BUG_ON(gpio_request(ZOOM2_HEADSET_EXTMUTE_GPIO, "ext_mute") < 0);
+ gpio_direction_output(ZOOM2_HEADSET_EXTMUTE_GPIO, 0);
+
return 0;
err1:
@@ -290,6 +302,7 @@ module_init(zoom2_soc_init);
static void __exit zoom2_soc_exit(void)
{
gpio_free(ZOOM2_HEADSET_MUX_GPIO);
+ gpio_free(ZOOM2_HEADSET_EXTMUTE_GPIO);
platform_device_unregister(zoom2_snd_device);
}