From bdee9c8501837c80316a0febb5e9ff79f02767f0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=81ukasz=20Majewski?= Date: Tue, 13 Nov 2012 03:22:11 +0000 Subject: [PATCH] arm:trats:pmic: Support for charging battery at Samsung's TRATS board The battery connected to Samsung's Trats development board is now charged when voltage drops below threshold. Signed-off-by: Lukasz Majewski Signed-off-by: Kyungmin Park Cc: Minkyu Kang --- board/samsung/trats/trats.c | 49 ++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c index 226b5297c7..e540190984 100644 --- a/board/samsung/trats/trats.c +++ b/board/samsung/trats/trats.c @@ -298,7 +298,9 @@ static int pmic_init_max8997(void) int power_init_board(void) { - int ret; + int chrg, ret; + struct power_battery *pb; + struct pmic *p_fg, *p_chrg, *p_muic, *p_bat; ret = pmic_init(I2C_5); ret |= pmic_init_max8997(); @@ -308,6 +310,51 @@ int power_init_board(void) if (ret) return ret; + p_fg = pmic_get("MAX17042_FG"); + if (!p_fg) { + puts("MAX17042_FG: Not found\n"); + return -ENODEV; + } + + p_chrg = pmic_get("MAX8997_PMIC"); + if (!p_chrg) { + puts("MAX8997_PMIC: Not found\n"); + return -ENODEV; + } + + p_muic = pmic_get("MAX8997_MUIC"); + if (!p_muic) { + puts("MAX8997_MUIC: Not found\n"); + return -ENODEV; + } + + p_bat = pmic_get("BAT_TRATS"); + if (!p_bat) { + puts("BAT_TRATS: Not found\n"); + return -ENODEV; + } + + p_fg->parent = p_bat; + p_chrg->parent = p_bat; + p_muic->parent = p_bat; + + p_bat->low_power_mode = trats_low_power_mode; + p_bat->pbat->battery_init(p_bat, p_fg, p_chrg, p_muic); + + pb = p_bat->pbat; + chrg = p_muic->chrg->chrg_type(p_muic); + debug("CHARGER TYPE: %d\n", chrg); + + if (!p_chrg->chrg->chrg_bat_present(p_chrg)) { + puts("No battery detected\n"); + return -1; + } + + p_fg->fg->fg_battery_check(p_fg, p_bat); + + if (pb->bat->state == CHARGE && chrg == CHARGER_USB) + puts("CHARGE Battery !\n"); + return 0; } -- 2.39.2