ASoC: tpa6130a2: Revisit power-up sequence
authorJarkko Nikula <jhnikula@gmail.com>
Mon, 8 Nov 2010 08:57:57 +0000 (10:57 +0200)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Tue, 9 Nov 2010 21:38:49 +0000 (21:38 +0000)
There are no known problems with current power-up sequence which first sets
the /shutdown pin high and then enables the supply. However, swap the order
so that the device is kept in shutdown/reset mode during the supply voltage
transition since slowly rising voltages can usually cause problems if the
device is not kept in reset.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Cc: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/codecs/tpa6130a2.c

index 329acc1a207457942a560e86d7f990a2fc44ffd8..e55317b35786459d475baf9b12933b645655b6a6 100644 (file)
@@ -126,9 +126,6 @@ static int tpa6130a2_power(int power)
 
        mutex_lock(&data->mutex);
        if (power) {
-               /* Power on */
-               if (data->power_gpio >= 0)
-                       gpio_set_value(data->power_gpio, 1);
 
                ret = regulator_enable(data->supply);
                if (ret != 0) {
@@ -136,6 +133,9 @@ static int tpa6130a2_power(int power)
                                "Failed to enable supply: %d\n", ret);
                        goto exit;
                }
+               /* Power on */
+               if (data->power_gpio >= 0)
+                       gpio_set_value(data->power_gpio, 1);
 
                data->power_state = 1;
                ret = tpa6130a2_initialize();