regulator: ab8500: Another push to synchronise recent AB8500 developments
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-ux500 / board-mop500-regulators.c
index 2a17bc506cff7cdad26d95d243d97c7e8a71295a..a8141e3e8ca12b4ecc4a16617750787678f32c8a 100644 (file)
@@ -126,65 +126,70 @@ struct ab8500_regulator_reg_init
 ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS] = {
        /*
         * VanaRequestCtrl          = HP/LP depending on VxRequest
+        * VpllRequestCtrl          = HP/LP depending on VxRequest
         * VextSupply1RequestCtrl   = HP/LP depending on VxRequest
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL2, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL2,       0xfc, 0x00),
        /*
         * VextSupply2RequestCtrl   = HP/LP depending on VxRequest
         * VextSupply3RequestCtrl   = HP/LP depending on VxRequest
         * Vaux1RequestCtrl         = HP/LP depending on VxRequest
         * Vaux2RequestCtrl         = HP/LP depending on VxRequest
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL3, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL3,       0xff, 0x00),
        /*
         * Vaux3RequestCtrl         = HP/LP depending on VxRequest
         * SwHPReq                  = Control through SWValid disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL4, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL4,       0x07, 0x00),
        /*
+        * Vsmps1SysClkReq1HPValid  = enabled
+        * Vsmps2SysClkReq1HPValid  = enabled
+        * Vsmps3SysClkReq1HPValid  = enabled
         * VanaSysClkReq1HPValid    = disabled
+        * VpllSysClkReq1HPValid    = enabled
         * Vaux1SysClkReq1HPValid   = disabled
         * Vaux2SysClkReq1HPValid   = disabled
         * Vaux3SysClkReq1HPValid   = disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQ1HPVALID1, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQ1HPVALID1, 0xff, 0x17),
        /*
         * VextSupply1SysClkReq1HPValid = disabled
         * VextSupply2SysClkReq1HPValid = disabled
         * VextSupply3SysClkReq1HPValid = SysClkReq1 controlled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQ1HPVALID2, 0x40),
+       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQ1HPVALID2, 0x70, 0x40),
        /*
         * VanaHwHPReq1Valid        = disabled
         * Vaux1HwHPreq1Valid       = disabled
         * Vaux2HwHPReq1Valid       = disabled
         * Vaux3HwHPReqValid        = disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ1VALID1, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ1VALID1,     0xe8, 0x00),
        /*
         * VextSupply1HwHPReq1Valid = disabled
         * VextSupply2HwHPReq1Valid = disabled
         * VextSupply3HwHPReq1Valid = disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ1VALID2, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ1VALID2,     0x07, 0x00),
        /*
         * VanaHwHPReq2Valid        = disabled
         * Vaux1HwHPReq2Valid       = disabled
         * Vaux2HwHPReq2Valid       = disabled
         * Vaux3HwHPReq2Valid       = disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ2VALID1, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ2VALID1,     0xe8, 0x00),
        /*
         * VextSupply1HwHPReq2Valid = disabled
         * VextSupply2HwHPReq2Valid = disabled
         * VextSupply3HwHPReq2Valid = HWReq2 controlled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ2VALID2, 0x04),
+       INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ2VALID2,     0x07, 0x04),
        /*
         * VanaSwHPReqValid         = disabled
         * Vaux1SwHPReqValid        = disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUSWHPREQVALID1, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUSWHPREQVALID1,      0xa0, 0x00),
        /*
         * Vaux2SwHPReqValid        = disabled
         * Vaux3SwHPReqValid        = disabled
@@ -192,7 +197,7 @@ ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS] = {
         * VextSupply2SwHPReqValid  = disabled
         * VextSupply3SwHPReqValid  = disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUSWHPREQVALID2, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUSWHPREQVALID2,      0x1f, 0x00),
        /*
         * SysClkReq2Valid1         = SysClkReq2 controlled
         * SysClkReq3Valid1         = disabled
@@ -202,7 +207,7 @@ ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS] = {
         * SysClkReq7Valid1         = disabled
         * SysClkReq8Valid1         = disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQVALID1, 0x2a),
+       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQVALID1,    0xfe, 0x2a),
        /*
         * SysClkReq2Valid2         = disabled
         * SysClkReq3Valid2         = disabled
@@ -212,7 +217,7 @@ ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS] = {
         * SysClkReq7Valid2         = disabled
         * SysClkReq8Valid2         = disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQVALID2, 0x20),
+       INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQVALID2,    0xfe, 0x20),
        /*
         * VTVoutEna                = disabled
         * Vintcore12Ena            = disabled
@@ -220,29 +225,39 @@ ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS] = {
         * Vintcore12LP             = inactive (HP)
         * VTVoutLP                 = inactive (HP)
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUMISC1, 0x10),
+       INIT_REGULATOR_REGISTER(AB8500_REGUMISC1,              0xfe, 0x10),
        /*
         * VaudioEna                = disabled
         * VdmicEna                 = disabled
         * Vamic1Ena                = disabled
         * Vamic2Ena                = disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_VAUDIOSUPPLY, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_VAUDIOSUPPLY,           0x1e, 0x00),
        /*
         * Vamic1_dzout             = high-Z when Vamic1 is disabled
         * Vamic2_dzout             = high-Z when Vamic2 is disabled
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUCTRL1VAMIC, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUCTRL1VAMIC,         0x03, 0x00),
+       /*
+        * Vsmps1Regu               = HW control
+        * Vsmps1SelCtrl            = Vsmps1 voltage defined by Vsmsp1Sel2
+        */
+       INIT_REGULATOR_REGISTER(AB8500_VSMPS1REGU,             0x0f, 0x06),
+       /*
+        * Vsmps2Regu               = HW control
+        * Vsmps2SelCtrl            = Vsmps2 voltage defined by Vsmsp2Sel2
+        */
+       INIT_REGULATOR_REGISTER(AB8500_VSMPS2REGU,             0x0f, 0x06),
        /*
         * VPll                     = Hw controlled
         * VanaRegu                 = force off
         */
-       INIT_REGULATOR_REGISTER(AB8500_VPLLVANAREGU, 0x02),
+       INIT_REGULATOR_REGISTER(AB8500_VPLLVANAREGU,           0x0f, 0x02),
        /*
         * VrefDDREna               = disabled
         * VrefDDRSleepMode         = inactive (no pulldown)
         */
-       INIT_REGULATOR_REGISTER(AB8500_VREFDDR, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_VREFDDR,                0x03, 0x00),
        /*
         * VextSupply1Regu          = HW control
         * VextSupply2Regu          = HW control
@@ -250,36 +265,37 @@ ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS] = {
         * ExtSupply2Bypass         = ExtSupply12LPn ball is 0 when Ena is 0
         * ExtSupply3Bypass         = ExtSupply3LPn ball is 0 when Ena is 0
         */
-       INIT_REGULATOR_REGISTER(AB8500_EXTSUPPLYREGU, 0x2a),
+       INIT_REGULATOR_REGISTER(AB8500_EXTSUPPLYREGU,          0xff, 0x1a),
        /*
         * Vaux1Regu                = force HP
         * Vaux2Regu                = force off
         */
-       INIT_REGULATOR_REGISTER(AB8500_VAUX12REGU, 0x01),
+       INIT_REGULATOR_REGISTER(AB8500_VAUX12REGU,             0x0f, 0x01),
        /*
-        * Vaux3regu                = force off
+        * Vrf1Regu                 = HW control
+        * Vaux3Regu                = force off
         */
-       INIT_REGULATOR_REGISTER(AB8500_VRF1VAUX3REGU, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_VRF1VAUX3REGU,          0x0f, 0x08),
        /*
         * Vsmps1                   = 1.15V
         */
-       INIT_REGULATOR_REGISTER(AB8500_VSMPS1SEL1, 0x24),
+       INIT_REGULATOR_REGISTER(AB8500_VSMPS1SEL1,             0x3f, 0x24),
        /*
         * Vaux1Sel                 = 2.5 V
         */
-       INIT_REGULATOR_REGISTER(AB8500_VAUX1SEL, 0x08),
+       INIT_REGULATOR_REGISTER(AB8500_VAUX1SEL,               0x0f, 0x08),
        /*
         * Vaux2Sel                 = 2.9 V
         */
-       INIT_REGULATOR_REGISTER(AB8500_VAUX2SEL, 0x0d),
+       INIT_REGULATOR_REGISTER(AB8500_VAUX2SEL,               0x0f, 0x0d),
        /*
         * Vaux3Sel                 = 2.91 V
         */
-       INIT_REGULATOR_REGISTER(AB8500_VRF1VAUX3SEL, 0x07),
+       INIT_REGULATOR_REGISTER(AB8500_VRF1VAUX3SEL,           0x07, 0x07),
        /*
         * VextSupply12LP           = disabled (no LP)
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUCTRL2SPARE, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUCTRL2SPARE,         0x01, 0x00),
        /*
         * Vaux1Disch               = short discharge time
         * Vaux2Disch               = short discharge time
@@ -288,13 +304,13 @@ ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS] = {
         * VTVoutDisch              = short discharge time
         * VaudioDisch              = short discharge time
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUCTRLDISCH, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUCTRLDISCH,          0xfc, 0x00),
        /*
         * VanaDisch                = short discharge time
         * VdmicPullDownEna         = pulldown disabled when Vdmic is disabled
         * VdmicDisch               = short discharge time
         */
-       INIT_REGULATOR_REGISTER(AB8500_REGUCTRLDISCH2, 0x00),
+       INIT_REGULATOR_REGISTER(AB8500_REGUCTRLDISCH2,         0x16, 0x00),
 };
 
 /* AB8500 regulators */