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