From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Fri, 05 Oct 2012 10:16:42 +0200 Subject: [U-Boot] [PATCH v2 20/21] arm:trats:pmic: Support for charging battery at Samsung's TRATS board In-Reply-To: <1349425003-32523-1-git-send-email-l.majewski@samsung.com> References: <1349425003-32523-1-git-send-email-l.majewski@samsung.com> Message-ID: <1349425003-32523-21-git-send-email-l.majewski@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 --- 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 --- board/samsung/trats/trats.c | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c index f6a62d0..cda5af7 100644 --- a/board/samsung/trats/trats.c +++ b/board/samsung/trats/trats.c @@ -282,6 +282,9 @@ static int pmic_init_max8997(void) #ifdef CONFIG_POWER_INIT int power_board_init(void) { + int chrg; + struct power_battery *pb; + struct pmic *p_fg, *p_chrg, *p_muic, *p_bat; #ifdef CONFIG_PMIC pmic_init(I2C_5); @@ -290,6 +293,30 @@ int power_board_init(void) 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->battery_init(p_fg, p_bat); + p_chrg->battery_init(p_chrg, p_bat); + p_muic->battery_init(p_muic, p_bat); + + p_bat->low_power_mode = trats_low_power_mode; + pb = p_bat->pwr_bat; + chrg = pb->chrg_type(pb->muic); + debug("CHARGER TYPE: %d\n", chrg); + + if (!pb->chrg_bat_present(pb->chrg)) { + puts("No battery detected\n"); + return -1; + } + + pb->fg_battery_check(pb->fg, p_bat); + + if (pb->bat->state == CHARGE && chrg == CHARGER_USB) + puts("CHARGE Battery !\n"); + return 0; } #endif -- 1.7.2.3