v20 HREFs require non-standard configuration of EXT_SUPPLY2 to
function correctly (specific information is commented). Here we make
use of the recently added mechanism to adapt initialisation values
for such use-cases.

Signed-off-by: Lee Jones <[email protected]>
---
 arch/arm/mach-ux500/board-mop500-regulators.c |   28 +++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/arch/arm/mach-ux500/board-mop500-regulators.c 
b/arch/arm/mach-ux500/board-mop500-regulators.c
index 2a2751e..c1173a1 100644
--- a/arch/arm/mach-ux500/board-mop500-regulators.c
+++ b/arch/arm/mach-ux500/board-mop500-regulators.c
@@ -510,4 +510,32 @@ void mop500_regulator_init(void)
                regulator->constraints.state_mem.disabled = 1;
                regulator->constraints.state_standby.disabled = 1;
        }
+
+       /*
+        * Handle AB8500_EXT_SUPPLY2 on HREFP_V20_V50 boards (do it for
+        * all HREFP_V20 boards)
+        */
+       if (cpu_is_u8500v20()) {
+               /* VextSupply2RequestCtrl =  HP/OFF depending on VxRequest */
+               ab8500_modify_reg_init(AB8500_REGUREQUESTCTRL3, 0x01, 0x01);
+
+               /* VextSupply2SysClkReq1HPValid = SysClkReq1 controlled */
+               ab8500_modify_reg_init(AB8500_REGUSYSCLKREQ1HPVALID2,
+                       0x20, 0x20);
+
+               /* VextSupply2 = force HP at initialization */
+               ab8500_modify_reg_init(AB8500_EXTSUPPLYREGU, 0x0c, 0x04);
+
+               /* enable VextSupply2 during platform active */
+               regulator = &ab8500_ext_regulators[AB8500_EXT_SUPPLY2];
+               regulator->constraints.always_on = 1;
+
+               /* disable VextSupply2 in suspend */
+               regulator = &ab8500_ext_regulators[AB8500_EXT_SUPPLY2];
+               regulator->constraints.state_mem.disabled = 1;
+               regulator->constraints.state_standby.disabled = 1;
+
+               /* enable VextSupply2 HW control (used in suspend) */
+               regulator->driver_data = (void *)&ab8500_ext_supply2;
+       }
 }
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to