
The battery connected to Samsung's Trats development board is now charged when voltage drops below threshold.
Signed-off-by: Lukasz Majewski l.majewski@samsung.com Signed-off-by: Kyungmin Park kyungmin.park@samsung.com Cc: Minkyu Kang mk7.kang@samsung.com --- Changes for v2: - Define separate *p_{} pointer instances for each power device available at Trats - Only basic checks performed - Core responsible for battery charging moved to separate file - ./drivers/power/bat_trats.c
Changes for v3: - None Changes for v3: - change code according to struct pmic redesign --- board/samsung/trats/trats.c | 29 +++++++++++++++++++++++++++++ 1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c index a8a97bf..8252a00 100644 --- a/board/samsung/trats/trats.c +++ b/board/samsung/trats/trats.c @@ -281,12 +281,41 @@ static int pmic_init_max8997(void)
int power_init_board(void) { + int chrg; + struct power_battery *pb; + struct pmic *p_fg, *p_chrg, *p_muic, *p_bat; pmic_init(I2C_5);
pmic_init_max8997(); power_fg_init(I2C_9); power_muic_init(I2C_5); power_bat_init(0); + p_fg = pmic_get("MAX17042_FG"); + p_chrg = pmic_get("MAX8997_PMIC"); + p_muic = pmic_get("MAX8997_MUIC"); + p_bat = pmic_get("BAT_TRATS"); + + 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; }