val &= ~PWGT2SPIEN;
        pmic_reg_write(REG_POWER_MISC, val);
 
-       /* Write needed to update Charger 0 */
-       pmic_reg_write(REG_CHARGE, VCHRG0 | VCHRG1 | VCHRG2 |
-               ICHRG0 | ICHRG1 | ICHRG2 | ICHRG3 | ICHRGTR0 |
-               OVCTRL1 | UCHEN | CHRGLEDEN | CYCLB);
+       /* Externally powered */
+       val = pmic_reg_read(REG_CHARGE);
+       val |= ICHRG0 | ICHRG1 | ICHRG2 | ICHRG3 | CHGAUTOB;
+       pmic_reg_write(REG_CHARGE, val);
 
        /* power up the system first */
        pmic_reg_write(REG_POWER_MISC, PWUP);
 
 
 /* REG_CHARGE */
 
-#define VCHRG0         0
+#define VCHRG0         (1 << 0)
 #define VCHRG1         (1 << 1)
 #define VCHRG2         (1 << 2)
 #define ICHRG0         (1 << 3)
 #define ICHRG1         (1 << 4)
 #define ICHRG2         (1 << 5)
 #define ICHRG3         (1 << 6)
-#define ICHRGTR0       (1 << 7)
-#define ICHRGTR1       (1 << 8)
-#define ICHRGTR2       (1 << 9)
+#define TREN           (1 << 7)
+#define ACKLPB         (1 << 8)
+#define THCHKB         (1 << 9)
 #define FETOVRD                (1 << 10)
 #define FETCTRL                (1 << 11)
 #define RVRSMODE       (1 << 13)
-#define OVCTRL0                (1 << 15)
-#define OVCTRL1                (1 << 16)
-#define UCHEN          (1 << 17)
+#define PLIM0          (1 << 15)
+#define PLIM1          (1 << 16)
+#define PLIMDIS                (1 << 17)
 #define CHRGLEDEN      (1 << 18)
-#define CHRGRAWPDEN    (1 << 19)
+#define CHGTMRRST      (1 << 19)
 #define CHGRESTART     (1 << 20)
 #define CHGAUTOB       (1 << 21)
 #define CYCLB          (1 << 22)