diff options
Diffstat (limited to 'recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-Touch-Book-turn-on-off-the-class-D-amplifier-dependi.patch')
-rw-r--r-- | recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-Touch-Book-turn-on-off-the-class-D-amplifier-dependi.patch | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-Touch-Book-turn-on-off-the-class-D-amplifier-dependi.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-Touch-Book-turn-on-off-the-class-D-amplifier-dependi.patch deleted file mode 100644 index 1edce7b7c4..0000000000 --- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-Touch-Book-turn-on-off-the-class-D-amplifier-dependi.patch +++ /dev/null @@ -1,90 +0,0 @@ -From db8f1eba9154789c45c6a92413bbbd94f5d9c7f5 Mon Sep 17 00:00:00 2001 -From: Tim Yamin <plasm@roo.me.uk> -Date: Wed, 29 Apr 2009 17:30:25 -0700 -Subject: [PATCH] Touch Book: turn on/off the class D amplifier depending on whether the headphones are plugged into the jack or not. - -Signed-off-by: Tim Yamin <plasm@roo.me.uk> ---- - sound/soc/omap/omap3beagle.c | 33 +++++++++++++++++++++++++++++++++ - 1 files changed, 33 insertions(+), 0 deletions(-) - -diff --git a/sound/soc/omap/omap3beagle.c b/sound/soc/omap/omap3beagle.c -index fd24a4a..1236638 100644 ---- a/sound/soc/omap/omap3beagle.c -+++ b/sound/soc/omap/omap3beagle.c -@@ -20,7 +20,10 @@ - */ - - #include <linux/clk.h> -+#include <linux/irq.h> -+#include <linux/interrupt.h> - #include <linux/platform_device.h> -+ - #include <sound/core.h> - #include <sound/pcm.h> - #include <sound/soc.h> -@@ -35,6 +38,9 @@ - #include "omap-pcm.h" - #include "../codecs/twl4030.h" - -+#define TB_HEADPHONE_GPIO 56 -+#define TB_HEADPHONE_IRQ OMAP_GPIO_IRQ(TB_HEADPHONE_GPIO) -+ - static int omap3beagle_hw_params(struct snd_pcm_substream *substream, - struct snd_pcm_hw_params *params) - { -@@ -103,6 +109,34 @@ static struct snd_soc_device omap3beagle_snd_devdata = { - - static struct platform_device *omap3beagle_snd_device; - -+static void jack_work_func(struct work_struct *wq) -+{ -+ int status = gpio_get_value(TB_HEADPHONE_GPIO); -+ -+ struct snd_soc_device *socdev = platform_get_drvdata(omap3beagle_snd_device); -+ struct snd_soc_codec *codec = socdev->card->codec; -+ -+ if(status) { -+ snd_soc_dapm_disable_pin(codec, "HFL"); -+ snd_soc_dapm_disable_pin(codec, "HFR"); -+ } else { -+ snd_soc_dapm_enable_pin(codec, "HFL"); -+ snd_soc_dapm_enable_pin(codec, "HFR"); -+ } -+ -+ enable_irq(TB_HEADPHONE_IRQ); -+ -+ //snd_soc_dapm_sync(codec); -+} -+DECLARE_WORK(jack_work, jack_work_func); -+ -+static irqreturn_t touchbook_headphone_event(int irq, void *snd) -+{ -+ disable_irq_nosync(irq); -+ schedule_work(&jack_work); -+ return IRQ_HANDLED; -+} -+ - static int __init omap3beagle_soc_init(void) - { - int ret; -@@ -123,10 +156,19 @@ static int __init omap3beagle_soc_init(void) - omap3beagle_snd_devdata.dev = &omap3beagle_snd_device->dev; - *(unsigned int *)omap3beagle_dai.cpu_dai->private_data = 1; /* McBSP2 */ - -+ /* Touch Book -- headphone jack sensor */ -+ ret = request_irq(TB_HEADPHONE_IRQ, touchbook_headphone_event, IRQF_TRIGGER_RISING | -+ IRQF_TRIGGER_FALLING, "touchbook_headphone", omap3beagle_snd_device); -+ if (ret < 0) -+ goto err1; -+ - ret = platform_device_add(omap3beagle_snd_device); - if (ret) - goto err1; - -+ /* Detect headphone status */ -+ touchbook_headphone_event(0, omap3beagle_snd_device); -+ - return 0; - - err1: |