The battery connected to Samsung's Trats development board is now
charged when voltage drops below threshold.

Signed-off-by: Lukasz Majewski <l.majew...@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com>
Cc: Minkyu Kang <mk7.k...@samsung.com>
---
 board/samsung/trats/trats.c |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c
index 6462b30..21050c8 100644
--- a/board/samsung/trats/trats.c
+++ b/board/samsung/trats/trats.c
@@ -39,6 +39,7 @@
 #include <power/max8997_pmic.h>
 #include <libtizen.h>
 #include <power/max8997_muic.h>
+#include <power/power_chrg.h>
 #include <power/max17042_fg.h>
 
 #include "setup.h"
@@ -240,6 +241,8 @@ static int pmic_init_max8997(void)
 #ifdef CONFIG_POWER_INIT
 int power_board_init(void)
 {
+       int chrg, k;
+       struct battery bat;
 
 #ifdef CONFIG_PMIC
        pmic_init(I2C_5);
@@ -247,6 +250,40 @@ int power_board_init(void)
        pmic_init_max8997();
        power_fg_init(I2C_9);
        power_muic_init(I2C_5);
+
+       chrg = power_chrg_get_type();
+       debug("CHARGER TYPE: %d\n", chrg);
+
+       if (!pmic_charger_bat_present()) {
+               puts("No battery detected\n");
+               return -1;
+       }
+
+       power_check_battery(&bat);
+
+       if (bat.state == CHARGE && chrg == CHARGER_USB) {
+               puts("CHARGER ENABLE\n");
+               if (pmic_charger_state(CHARGER_ENABLE, 450))
+                       return -1;
+
+               for (k = 0; pmic_charger_bat_present() &&
+                            power_chrg_get_type() &&
+                            bat.state_of_chrg < 5; k++) {
+                       udelay(10000000);
+                       puts(".");
+                       power_update_battery(&bat);
+
+                       if (k == 100) {
+                               printf(" %d [V]\n", bat.voltage_uV);
+                               k = 0;
+                       }
+
+               }
+
+               puts("CHARGER DISABLE\n");
+               pmic_charger_state(CHARGER_DISABLE, 0);
+       }
+
        return 0;
 }
 #endif
-- 
1.7.2.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to