@@ -459,6 +459,15 @@ bool PMICClass::enableCharging() {
459
459
DATA = DATA & 0b11001111 ;
460
460
DATA = DATA | 0b00010000 ;
461
461
return writeRegister (POWERON_CONFIG_REGISTER, DATA);
462
+
463
+ // enable Charging Safety Timer
464
+ DATA = readRegister (CHARGE_TIMER_CONTROL_REGISTER);
465
+
466
+ if (DATA == -1 ) {
467
+ return 0 ;
468
+ }
469
+
470
+ return writeRegister (CHARGE_TIMER_CONTROL_REGISTER, (DATA | 0b00001000 ));
462
471
}
463
472
464
473
/* ******************************************************************************
@@ -475,7 +484,18 @@ bool PMICClass::disableCharging() {
475
484
return 0 ;
476
485
}
477
486
478
- return writeRegister (POWERON_CONFIG_REGISTER, DATA & 0xCF );
487
+ if (writeRegister (POWERON_CONFIG_REGISTER, DATA & 0xCF )){
488
+ return 0 ;
489
+ }
490
+
491
+ // disable Charging Safety Timer
492
+ DATA = readRegister (CHARGE_TIMER_CONTROL_REGISTER);
493
+
494
+ if (DATA == -1 ) {
495
+ return 0 ;
496
+ }
497
+
498
+ return writeRegister (CHARGE_TIMER_CONTROL_REGISTER, (DATA & 0b11110110 ));
479
499
}
480
500
481
501
/* ******************************************************************************
@@ -773,6 +793,46 @@ bool PMICClass::disableWatchdog(void) {
773
793
return writeRegister (CHARGE_TIMER_CONTROL_REGISTER, (DATA & 0b11001110 ));
774
794
}
775
795
796
+ /* ******************************************************************************
797
+ * Function Name : enableSafetyChargeTimer
798
+ * Description : Enable Safety Charge timer
799
+ * Input : NONE
800
+ * Return : 0 on Error, 1 on Success
801
+ *******************************************************************************/
802
+ bool PMICClass::enableSafetyChargeTimer (void ) {
803
+
804
+ int DATA = readRegister (CHARGE_TIMER_CONTROL_REGISTER);
805
+
806
+ if (DATA == -1 ) {
807
+ return 0 ;
808
+ }
809
+
810
+ return writeRegister (CHARGE_TIMER_CONTROL_REGISTER, (DATA | 0b00001000 ));
811
+ }
812
+
813
+
814
+ /* ******************************************************************************
815
+ * Function Name : disableSafetyChargeTimer
816
+ * Description : Disable Safety Charge timer
817
+ * Input : NONE
818
+ * Return : 0 on Error, 1 on Success
819
+ *******************************************************************************/
820
+ bool PMICClass::disableSafetyChargeTimer (void ) {
821
+ int DATA = readRegister (CHARGE_TIMER_CONTROL_REGISTER) & 0x30 ;
822
+
823
+ if (DATA == 0x10 && PMIC.chargeStatus () != CHARGE_TERMINATION_DONE )){
824
+ return 0 ;
825
+ }
826
+
827
+ DATA = readRegister (CHARGE_TIMER_CONTROL_REGISTER);
828
+
829
+ if (DATA == -1 ) {
830
+ return 0 ;
831
+ }
832
+
833
+ return writeRegister (CHARGE_TIMER_CONTROL_REGISTER, (DATA & 0b11110110 ));
834
+ }
835
+
776
836
/* ******************************************************************************
777
837
* Function Name : setThermalRegulationTemperature
778
838
* Description : Sets the Thermal Regulation Threshold
0 commit comments