ARMV7: OMAP4: twl6030 add battery charging support

Add battery charging support twl6030 driver.
Add support for battery voltage and current measurements.
Add command to get battery status and start/stop battery charging from USB.

Signed-off-by: Balaji T K <balajitk@ti.com>
Tested-by: Steve Sakoman <steve.sakoman@linaro.org>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
This commit is contained in:
Balaji T K
2010-11-25 16:22:04 +05:30
committed by Sandeep Paulraj
parent 917a62c0d2
commit 3e664f6d50
6 changed files with 229 additions and 5 deletions

View File

@@ -102,6 +102,7 @@
/* TWL6030 */
#define CONFIG_TWL6030_POWER 1
#define CONFIG_CMD_BAT 1
/* MMC */
#define CONFIG_GENERIC_MMC 1

View File

@@ -32,6 +32,18 @@
#define TWL6030_CHIP_CHARGER 0x49
#define TWL6030_CHIP_PWM 0x49
/* Slave Address 0x48 */
#define VUSB_CFG_STATE 0xA2
#define MISC1 0xE4
#define VAC_MEAS (1 << 2)
#define VBAT_MEAS (1 << 1)
#define BB_MEAS (1 << 0)
#define MISC2 0xE5
/* Slave Address 0x49 */
/* Battery CHARGER REGISTERS */
#define CONTROLLER_INT_MASK 0xE0
#define CONTROLLER_CTRL1 0xE1
@@ -76,16 +88,45 @@
#define CHARGERUSB_VOREG_4P0 0x19
#define CHARGERUSB_VOREG_4P2 0x23
#define CHARGERUSB_VOREG_4P76 0x3F
/* CHARGERUSB_CTRL1 */
#define SUSPEND_BOOT (1 << 7)
#define OPA_MODE (1 << 6)
#define HZ_MODE (1 << 5)
#define TERM (1 << 4)
/* CHARGERUSB_CTRL2 */
#define CHARGERUSB_CTRL2_VITERM_50 (0 << 5)
#define CHARGERUSB_CTRL2_VITERM_100 (1 << 5)
#define CHARGERUSB_CTRL2_VITERM_150 (2 << 5)
#define CHARGERUSB_CTRL2_VITERM_400 (7 << 5)
/* CONTROLLER_CTRL1 */
#define CONTROLLER_CTRL1_EN_CHARGER (1 << 4)
#define CONTROLLER_CTRL1_SEL_CHARGER (1 << 3)
/* CONTROLLER_STAT1 */
#define CHRG_EXTCHRG_STATZ (1 << 7)
#define CHRG_DET_N (1 << 5)
#define VAC_DET (1 << 3)
#define VBUS_DET (1 << 2)
#define VUSB_CFG_STATE 0xA2
#define MISC2 0xE5
#define FG_REG_10 0xCA
#define FG_REG_11 0xCB
#define TOGGLE1 0x90
#define FGS (1 << 5)
#define FGR (1 << 4)
#define GPADCS (1 << 1)
#define GPADCR (1 << 0)
#define CTRL_P2 0x34
#define CTRL_P2_SP2 (1 << 2)
#define CTRL_P2_EOCP2 (1 << 1)
#define CTRL_P2_BUSY (1 << 0)
#define GPCH0_LSB 0x57
#define GPCH0_MSB 0x58
void twl6030_init_battery_charging(void);
void twl6030_usb_device_settings(void);
void twl6030_start_usb_charging(void);
void twl6030_stop_usb_charging(void);
int twl6030_get_battery_voltage(void);
int twl6030_get_battery_current(void);