ASoC: twl6040: Enable plug detection interrupts
authorMisael Lopez Cruz <misael.lopez@ti.com>
Sat, 11 Dec 2010 03:06:24 +0000 (21:06 -0600)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Tue, 14 Dec 2010 20:36:59 +0000 (20:36 +0000)
Enable plug detection interrupt mask in order to get headset
PLUGINT/UNPLUGINT interrupts.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/codecs/twl6040.c
sound/soc/codecs/twl6040.h

index f5d5f89..a8ec911 100644 (file)
@@ -1108,7 +1108,7 @@ static int twl6040_probe(struct snd_soc_codec *codec)
        struct twl6040_data *priv;
        int audpwron, naudint;
        int ret = 0;
-       u8 icrev;
+       u8 icrev, intmr = TWL6040_ALLINT_MSK;
 
        priv = kzalloc(sizeof(struct twl6040_data), GFP_KERNEL);
        if (priv == NULL)
@@ -1154,16 +1154,12 @@ static int twl6040_probe(struct snd_soc_codec *codec)
                priv->codec_powered = 0;
 
                /* enable only codec ready interrupt */
-               twl6040_write(codec, TWL6040_REG_INTMR,
-                                       ~TWL6040_READYMSK & TWL6040_ALLINT_MSK);
+               intmr &= ~(TWL6040_READYMSK | TWL6040_PLUGMSK);
 
                /* reset interrupt status to allow correct power up sequence */
                twl6040_read_reg_volatile(codec, TWL6040_REG_INTID);
-       } else {
-               /* no interrupts at all */
-               twl6040_write_reg_cache(codec, TWL6040_REG_INTMR,
-                                               TWL6040_ALLINT_MSK);
        }
+       twl6040_write(codec, TWL6040_REG_INTMR, intmr);
 
        if (naudint) {
                /* audio interrupt */
index 67396f6..23aeed0 100644 (file)
@@ -79,6 +79,7 @@
 
 /* INTMR (0x04) fields */
 
+#define TWL6040_PLUGMSK                        0x02
 #define TWL6040_READYMSK               0x40
 #define TWL6040_ALLINT_MSK             0x7B