12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /* Copyright (c) 2011, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
- #ifndef __PMIC8058_CHARGER_H__
- #define __PMIC8058_CHARGER_H__
- /**
- * enum pmic8058_chg_state - pmic8058 charging states
- * @PMIC8058_CHG_STATE_NONE: Initial off state
- * @PMIC8058_CHG_STATE_PWR_CHG: Device powered from charger
- * @PMIC8058_CHG_STATE_ATC: Device is Auto Tricke Charged (ATC)
- * @PMIC8058_CHG_STATE_PWR_BAT: Device powered from Battery
- * @PMIC8058_CHG_STATE_ATC_FAIL: ATC failed
- * @PMIC8058_CHG_STATE_AUX_EN: Transient state
- * @PMIC8058_CHG_STATE_PON_AFTER_ATC: Power on from battery and chg with limit
- * of 90mA
- * @PMIC8058_CHG_STATE_FAST_CHG: pmic is fast charging the battery
- * @PMIC8058_CHG_STATE_TRKL_CHG: pmic is trck charging the battery
- * @PMIC8058_CHG_STATE_CHG_FAIL: charging failed
- * @PMIC8058_CHG_STATE_EOC: end of charging reached
- * @PMIC8058_CHG_STATE_INRUSH_LIMIT: Brings up Vdd with 90mA max drawn from
- * VBUS
- * @PMIC8058_CHG_STATE_USB_SUSPENDED: USB supended, no current drawn from VBUS
- * @PMIC8058_CHG_STATE_PAUSE_ATC: ATC paused
- * @PMIC8058_CHG_STATE_PAUSE_FAST_CHG: FAST charging paused
- * @PMIC8058_CHG_STATE_PAUSE_TRKL_CHG: TRLK charging paused
- *
- * The paused states happen when a unfavourable condition for charging is
- * detected. The most common one being the battery gets too hot ot gets
- * too cold for charging.
- */
- enum pmic8058_chg_state {
- PMIC8058_CHG_STATE_NONE,
- PMIC8058_CHG_STATE_PWR_CHG,
- PMIC8058_CHG_STATE_ATC,
- PMIC8058_CHG_STATE_PWR_BAT,
- PMIC8058_CHG_STATE_ATC_FAIL,
- PMIC8058_CHG_STATE_AUX_EN,
- PMIC8058_CHG_STATE_PON_AFTER_ATC,
- PMIC8058_CHG_STATE_FAST_CHG,
- PMIC8058_CHG_STATE_TRKL_CHG,
- PMIC8058_CHG_STATE_CHG_FAIL,
- PMIC8058_CHG_STATE_EOC,
- PMIC8058_CHG_STATE_INRUSH_LIMIT,
- PMIC8058_CHG_STATE_USB_SUSPENDED,
- PMIC8058_CHG_STATE_PAUSE_ATC,
- PMIC8058_CHG_STATE_PAUSE_FAST_CHG,
- PMIC8058_CHG_STATE_PAUSE_TRKL_CHG
- };
- #if defined(CONFIG_BATTERY_MSM8X60) || defined(CONFIG_BATTERY_MSM8X60_MODULE)
- int pmic8058_get_charge_batt(void);
- int pmic8058_set_charge_batt(int);
- /**
- * pmic8058_get_fsm_state -
- *
- * CONTEXT: may sleep - should not be called from non-atomic context
- *
- * RETURNS: The pmic internal state, or error otherwise
- */
- enum pmic8058_chg_state pmic8058_get_fsm_state(void);
- #else
- int pmic8058_get_charge_batt(void)
- {
- return -ENXIO;
- }
- int pmic8058_set_charge_batt(int)
- {
- return -ENXIO;
- }
- enum pmic8058_chg_state pmic8058_get_fsm_state(void)
- {
- return -ENXIO;
- }
- #endif
- #endif /* __PMIC8058_CHARGER_H__ */
|