ARM: ux500: Turn off external regulator #1 when early HREFs suspend
authorLee Jones <lee.jones@linaro.org>
Thu, 28 Mar 2013 16:11:04 +0000 (16:11 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 29 Mar 2013 17:49:08 +0000 (17:49 +0000)
When older variants of the HREF (earlier than v22) development
platform enter suspend mode, power down EXT_SUPPLY1.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
arch/arm/mach-ux500/board-mop500-regulators.c
arch/arm/mach-ux500/board-mop500-regulators.h

index 22dfaf3d979aa5c56aba786b8be02fbad2568943..2a2751e4aa8a756ce0139de56a082fb3fa061759 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/kernel.h>
 #include <linux/regulator/machine.h>
 #include <linux/regulator/ab8500.h>
+#include <mach/id.h> /* to identify older boards for fixes */
 #include "board-mop500-regulators.h"
 
 static struct regulator_consumer_supply gpio_en_3v3_consumers[] = {
@@ -494,3 +495,19 @@ static void ab8500_modify_reg_init(int id, u8 mask, u8 value)
 
        BUG_ON(1);
 }
+
+void mop500_regulator_init(void)
+{
+       struct regulator_init_data *regulator;
+
+       /*
+        * Handle VextSupply1 on older boards than HREFP_V22_V1x
+        * (turn off in suspend)
+        */
+       if (cpu_is_u8500v20() || cpu_is_u8500v21()) {
+               /* disable VextSupply1 in suspend */
+               regulator = &ab8500_ext_regulators[AB8500_EXT_SUPPLY1];
+               regulator->constraints.state_mem.disabled = 1;
+               regulator->constraints.state_standby.disabled = 1;
+       }
+}
index 9ca4869a6f2350abd1e14c44fe3eae90face7004..3d4c412d0b7a71a0f66ec1c894f3a40333d64864 100644 (file)
@@ -18,4 +18,6 @@ extern struct ab8500_regulator_platform_data ab8500_regulator_plat_data;
 extern struct regulator_init_data tps61052_regulator;
 extern struct regulator_init_data gpio_en_3v3_regulator;
 
+void mop500_regulator_init(void);
+
 #endif