]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: ux500: Vsmps3 controlled by SysClkReq1
authorLee Jones <lee.jones@linaro.org>
Mon, 4 Feb 2013 11:53:20 +0000 (11:53 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 4 Feb 2013 19:36:26 +0000 (19:36 +0000)
Vsmps3 is put in HW control by SysClkReq1 at init. The
corresponding settings in suspend-force are removed.

Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
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
drivers/regulator/ab8500.c
include/linux/regulator/ab8500.h

index ae0695beba63d17bcf0b550b0c2e23132c9c78e3..556eba587bb94df8b5b039f9e3c66bd2e92a885d 100644 (file)
@@ -143,15 +143,16 @@ ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS] = {
         */
        INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL4, 0x00),
        /*
+        * Vsmps1SysClkReq1HPValid  = enabled
+        * Vsmps2SysClkReq1HPValid  = enabled
+        * Vsmps3SysClkReq1HPValid  = enabled
         * VanaSysClkReq1HPValid    = disabled
         * VpllSysClkReq1HPValid    = enabled
         * Vaux1SysClkReq1HPValid   = disabled
         * Vaux2SysClkReq1HPValid   = disabled
         * Vaux3SysClkReq1HPValid   = disabled
-        * Vsmps2SysClkReq1HPValid  = enabled
-        * Vsmps1SysClkReq1HPValid  = enabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQ1HPVALID1, 0x13),
+       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQ1HPVALID1, 0x17),
        /*
         * VextSupply1SysClkReq1HPValid = disabled
         * VextSupply2SysClkReq1HPValid = disabled
@@ -256,15 +257,31 @@ ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS] = {
         */
        INIT_REGULATOR_REGISTER(AB8500_VBBSEL2,                0x00),
        /*
-        * Vsmps1SelCtrl            = Vsmps1 voltage defined by Vsmsp1Sel2
         * Vsmps1Regu               = HW control
+        * Vsmps1SelCtrl            = Vsmps1 voltage defined by Vsmsp1Sel2
         */
        INIT_REGULATOR_REGISTER(AB8500_VSMPS1REGU,             0x06),
        /*
-        * Vsmps2SelCtrl            = Vsmps2 voltage defined by Vsmsp2Sel2
         * Vsmps2Regu               = HW control
+        * Vsmps2SelCtrl            = Vsmps2 voltage defined by Vsmsp2Sel2
         */
        INIT_REGULATOR_REGISTER(AB8500_VSMPS2REGU,             0x06),
+       /*
+        * Vsmps3Sel2               = 1.2125 V
+        * NOTE! PRCMU register
+        */
+       INIT_REGULATOR_REGISTER(AB8500_VSMPS3SEL2,             0x29),
+       /*
+        * Vsmps3Regu               = HW control
+        * Vsmps3SelCtrl            = Vsmps3 voltage defined by Vsmps3Sel2
+        * NOTE! PRCMU register
+        */
+       INIT_REGULATOR_REGISTER(AB8500_VSMPS3REGU,             0x06),
+       /*
+        * Vsmps3Sel1               = 0.9 V
+        * NOTE! PRCMU register
+        */
+       INIT_REGULATOR_REGISTER(AB8500_VSMPS3SEL1,             0x10),
        /*
         * VPll                     = Hw controlled
         * VanaRegu                 = force off
index 8edc4138167a8e9bd33ce9c9473a6f913673be4e..ba1483bfb929873b441234fc5d62da030b1890ae 100644 (file)
@@ -496,13 +496,14 @@ static struct ab8500_reg_init ab8500_reg_init[] = {
        /*
         * 0x01, Vsmps1SysClkReq1HPValid
         * 0x02, Vsmps2SysClkReq1HPValid
+        * 0x04, Vsmps3SysClkReq1HPValid
         * 0x08, VanaSysClkReq1HPValid
         * 0x10, VpllSysClkReq1HPValid
         * 0x20, Vaux1SysClkReq1HPValid
         * 0x40, Vaux2SysClkReq1HPValid
         * 0x80, Vaux3SysClkReq1HPValid
         */
-       REG_INIT(AB8500_REGUSYSCLKREQ1HPVALID1, 0x03, 0x07, 0xfb),
+       REG_INIT(AB8500_REGUSYSCLKREQ1HPVALID1, 0x03, 0x07, 0xff),
        /*
         * 0x10, VextSupply1SysClkReq1HPValid
         * 0x20, VextSupply2SysClkReq1HPValid
@@ -599,15 +600,21 @@ static struct ab8500_reg_init ab8500_reg_init[] = {
         */
        REG_INIT(AB8500_VBBSEL2,                0x04, 0x12, 0x0f),
        /*
-        * 0x0c, Vsmps1SelCtrl
         * 0x03, Vsmps1Regu
+        * 0x0c, Vsmps1SelCtrl
         */
        REG_INIT(AB8500_VSMPS1REGU,             0x04, 0x03, 0x0f),
        /*
-        * 0x0c, Vsmps2SelCtrl
         * 0x03, Vsmps2Regu
+        * 0x0c, Vsmps2SelCtrl
         */
        REG_INIT(AB8500_VSMPS2REGU,             0x04, 0x04, 0x0f),
+       /*
+        * 0x03, Vsmps3Regu
+        * 0x0c, Vsmps3SelCtrl
+        * NOTE! PRCMU register
+        */
+       REG_INIT(AB8500_VSMPS3REGU,             0x04, 0x05, 0x0f),
        /*
         * 0x0c, VanaRegu
         * 0x03, VpllRegu
@@ -640,6 +647,14 @@ static struct ab8500_reg_init ab8500_reg_init[] = {
         * 0x3f, Vsmps1Sel1
         */
        REG_INIT(AB8500_VSMPS1SEL1,             0x04, 0x13, 0x3f),
+       /*
+        * 0x7f, Vsmps3Sel1
+        */
+       REG_INIT(AB8500_VSMPS3SEL1,             0x04, 0x1b, 0x7f),
+       /*
+        * 0x7f, Vsmps3Sel2
+        */
+       REG_INIT(AB8500_VSMPS3SEL2,             0x04, 0x1c, 0x7f),
        /*
         * 0x0f, Vaux1Sel
         */
index e54c8aff25bab4724e4fad84c8ee4b370cfeea99..2c6c9625013c5a3602ce7b75193f91aedc349ccf 100644 (file)
@@ -91,7 +91,10 @@ enum ab8500_regulator_reg {
        AB8500_VBBSEL2, /* NOTE! PRCMU register */
        AB8500_VSMPS1REGU,
        AB8500_VSMPS2REGU,
+       AB8500_VSMPS3REGU, /* NOTE! PRCMU register */
        AB8500_VSMPS1SEL1,
+       AB8500_VSMPS3SEL1, /* NOTE! PRCMU register */
+       AB8500_VSMPS3SEL2, /* NOTE! PRCMU register */
        AB8500_NUM_REGULATOR_REGISTERS,
 };