ASoC: twl6040: Enable automatic power for phoenix 1.1
authorOlaya, Margarita <magi.olaya@ti.com>
Sat, 11 Dec 2010 03:06:07 +0000 (21:06 -0600)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Tue, 14 Dec 2010 20:36:47 +0000 (20:36 +0000)
Phoenix 1.1 supports automatic power on sequence, a
verification is added to use it with new revision of
the chip.

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

index 5081e812c52823c1fbe0fae686b1fb96e4e85d35..c54350445d0cfef1c189558b885311b43380c152 100644 (file)
@@ -1108,6 +1108,7 @@ static int twl6040_probe(struct snd_soc_codec *codec)
        struct twl6040_data *priv;
        int audpwron, naudint;
        int ret = 0;
+       u8 icrev;
 
        priv = kzalloc(sizeof(struct twl6040_data), GFP_KERNEL);
        if (priv == NULL)
@@ -1116,13 +1117,17 @@ static int twl6040_probe(struct snd_soc_codec *codec)
 
        priv->codec = codec;
 
-       if (twl_codec) {
+       twl_i2c_read_u8(TWL_MODULE_AUDIO_VOICE, &icrev, TWL6040_REG_ASICREV);
+
+       if (twl_codec && (icrev > 0))
                audpwron = twl_codec->audpwron_gpio;
-               naudint = twl_codec->naudint_irq;
-       } else {
+       else
                audpwron = -EINVAL;
+
+       if (twl_codec)
+               naudint = twl_codec->naudint_irq;
+       else
                naudint = 0;
-       }
 
        priv->audpwron = audpwron;
        priv->naudint = naudint;