Logo Search packages:      
Sourcecode: linux-fsl-imx51 version File versions  Download package

ddi_bc.h

Go to the documentation of this file.
/*
 * Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
 */

/*
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

////////////////////////////////////////////////////////////////////////////////
//! \addtogroup ddi_bc
//! @{
//
// Copyright (c) 2004-2005 SigmaTel, Inc.
//
//! \file ddi_bc.h
//! \brief Header file for the Battery Charger device driver.
//! \date 06/2005
//!
//! This file contains externally visible declarations for the Battery Charger
//! device driver.
//!
//! \see ddi_bc.c and related files.
//! \todo [PUBS] Add definitions for TBDs in this file.
////////////////////////////////////////////////////////////////////////////////

#ifndef _DDI_BC_H
#define _DDI_BC_H

#include <linux/types.h>

////////////////////////////////////////////////////////////////////////////////
// Includes
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// Definitions
////////////////////////////////////////////////////////////////////////////////
#define DDI_BC_MAX_RESTART_CYCLES 100

#define DDI_BC_LIION_CHARGING_VOLTAGE  4200
#define DDI_BC_ALKALINE_NIMH_CHARGING_VOLTAGE 1750

//! \brief Defines battery charger states.
00049 typedef enum _ddi_bc_State {
      //! \brief TBD
00051       DDI_BC_STATE_UNINITIALIZED = 0,
      //! \brief TBD
00053       DDI_BC_STATE_BROKEN = 1,
      //! \brief TBD
00055       DDI_BC_STATE_DISABLED = 2,
      //! \brief TBD
00057       DDI_BC_STATE_WAITING_TO_CHARGE = 3,
      //! \brief TBD
00059       DDI_BC_STATE_CONDITIONING = 4,
      //! \brief TBD
00061       DDI_BC_STATE_CHARGING = 5,
      //! \brief TBD
00063       DDI_BC_STATE_TOPPING_OFF = 6,
      //! \brief TBD
00065       DDI_BC_STATE_DCDC_MODE_WAITING_TO_CHARGE = 7,

} ddi_bc_State_t;

00069 typedef enum _ddi_bc_BrokenReason {
      //! \brief TBD
00071       DDI_BC_BROKEN_UNINITIALIZED = 0,
      //! \brief TBD
00073       DDI_BC_BROKEN_CHARGING_TIMEOUT = 1,
      //! \brief TBD
00075       DDI_BC_BROKEN_FORCED_BY_APPLICATION = 2,
      //! \brief TBD
00077       DDI_BC_BROKEN_EXTERNAL_BATTERY_VOLTAGE_DETECTED = 3,
      //! \brief TBD
00079       DDI_BC_BROKEN_NO_BATTERY_DETECTED = 4,

} ddi_bc_BrokenReason_t;

//! \brief Defines the battery charger configuration.
00084 typedef struct _ddi_bc_Cfg {
      //! \brief Units in milliseconds.
      //!
      //! This field configures the expected period between calls to
      //! ddi_bc_StateMachine. If die temperature monitoring is
      //! enabled, then the data sheet recommends the period be around
      //! 100ms or less.
      //!
      //! Note that this period defines the minimum time resolution of
      //! the battery charger.

00095       uint32_t u32StateMachinePeriod;

      //! \brief Units in mA/s.
      //!
      //! This field configures the slope of the current ramp. Any
      //! time the battery charger increases its current draw, it will
      //! ramp up the current no faster than this rate.
      //!
      //! Note that the minimum time resolution of the battery charger
      //! is the configured period between calls to advance the state
      //! machine. Also, the hardware has a minimum current resolution
      //! of 10mA. If the given ramp slope cannot be expressed
      //! exactly, then the largest expressible smaller slope will be
      //! the result. If the actual period between calls to
      //! ddi_bc_StateMachine is irregular, the current may ramp faster
      //! than indicated.

00112       uint16_t u16CurrentRampSlope;

      //! \brief Units in millivolts.
      //!
      //! This field configures the threshold conditioning voltage. If
      //! the battery’s voltage is below this value, it will be
      //! conditioned until its voltage rises above the maximum
      //! conditioning voltage.  After that, the battery will be
      //! charged normally.
      //!
      //! Note that the hardware has a minimum resolution of 8mV. If
      //! the given voltage cannot be expressed exactly, then the
      //! smallest expressible larger value will be used.

00126       uint16_t u16ConditioningThresholdVoltage;

      //! \brief Units in millivolts.
      //!
      //! This field configures the maximum conditioning voltage. If
      //! the battery charger is conditioning a battery, normal
      //! charging begins when the voltage rises above this value.
      //!
      //! This value should be slightly higher than the threshold
      //! conditioning voltage because it is measured while a
      //! conditioning current is actually flowing to the battery.
      //! With a conditioning current of 0.1C, reasonable values for
      //! the threshold and maximum conditioning voltages are 2.9V
      //! and 3.0V respectively.
      //!
      //! Note that the hardware has a minimum resolution of 8mV. If
      //! the given voltage cannot be expressed exactly, then the
      //! smallest expressible larger value will be used.

00145       uint16_t u16ConditioningMaxVoltage;

      //! \brief Units in milliamps.
      //!
      //! This field configures the maximum conditioning current.
      //! This is the maximum current that will be offered to a
      //! battery while it is being conditioned. A typical value is
      //! 0.1C.
      //!
      //! Note that the hardware has a minimum resolution of 10mA
      //! (see the data sheet for details). If the given current
      //! cannot be expressed exactly, then the largest expressible
      //! smaller value will be used.

00159       uint16_t u16ConditioningCurrent;

      //! \brief Units in milliseconds.
      //!
      //! This field configures the conditioning time-out. This is
      //! the maximum amount of time that a battery will be
      //! conditioned before the battery charger declares it to be
      //! broken.
      //!
      //! Note that the minimum time resolution of the battery
      //! charger is the configured period between calls to advance
      //! the state machine. If the given time-out cannot be
      //! expressed exactly, then the shortest expressible longer
      //! value will be used.

00174       uint32_t u32ConditioningTimeout;

      //! \brief Units in millivolts.
      //!
      //! This field configures the final charging voltage. At this
      //! writing, only two values are permitted: 4100 or 4200.

00181       uint16_t u16ChargingVoltage;

      //! \brief Units in milliamps.
      //!
      //! This field configures the maximum current offered to a
      //! charging battery.
      //!
      //! Note that the hardware has a minimum resolution of 10mA
      //! (see the data sheet for details). If the given current
      //! cannot be expressed exactly, then the largest expressible
      //! smaller value will be used.

00193       uint16_t u16ChargingCurrent;

      //! \brief Units in milliamps.
      //!
      //! This field configures the current flow below which a
      //! charging battery is regarded as fully charged (typical
      //! 0.1C). At this point, the battery will be topped off.
      //!
      //! Note that the hardware has a minimum resolution of 10mA
      //! (see the data sheet for details). If the given current
      //! cannot be expressed exactly, then the largest expressible
      //! smaller value will be used.

00206       uint16_t u16ChargingThresholdCurrent;

      //! \brief Units in milliamps.
      //!
      //! When charging while the DCDC converter's are enabled, the charger
      //! is suppling current to both the battery and the Vbat input of the
      //! DCDC converter.  Once the total battery charger current falls
      //! below this level, the charger will then stop charging until the
      //! the battery voltage reaches the BC_LOW_DCDCMODE_BATTERY_VOLTAGE
      //! threshold or until the DCDCs are no longer enabled.
      //!
      //! Typically, this value should be left at 180 to avoid the risk
      //! of topping off the battery too long in DCDC mode and avoid
      //! exceeding the BC_CHARGING_TIMEOUT time which would put the charger
      //! driver in the broken state and completely disable charging.
      //!
      //! Note that the hardware has a minimum resolution of 10mA
      //! (see the data sheet for details). If the given current
      //! cannot be expressed exactly, then the largest expressible
      //! smaller value will be used.
00226       uint16_t u16DdcdModeChargingThresholdCurrent;

      //! \brief Units in milliseconds.
      //!
      //! This field configures the charging time-out. This is the
      //! maximum amount of time that a battery will be charged
      //! before the battery charger declares it to be broken.
      //!
      //! Note that the minimum time resolution of the battery
      //! charger is the configured period between calls to advance
      //! the state machine. If the given time-out cannot be
      //! expressed exactly, then the shortest expressible longer
      //! value will be used.

00240       uint32_t u32ChargingTimeout;

      //! \brief Units in milliseconds.
      //!
      //! This field configures the top-off period. This is the
      //! amount of time a battery will be held in the Topping Off
      //! state before it is declared fully charged.
      //!
      //! Note that the minimum time resolution of the battery
      //! charger is the configured period between calls to advance
      //! the state machine. If the given time-out cannot be
      //! expressed exactly, then the shortest expressible longer
      //! value will be used.

00254       uint32_t u32TopOffPeriod;

      //! \brief Units in milliseconds.
      //!
      //! This field configures the top-off period when the DCDC
      //! converters are enabled. To avoid topping off the LiIon
      //! battery too long and reducing it's long term capacity,
      //! This time should be kept failry short.
      //!
      //! Note that the minimum time resolution of the battery
      //! charger is the configured period between calls to advance
      //! the state machine. If the given time-out cannot be
      //! expressed exactly, then the shortest expressible longer
      //! value will be used.
00268       uint32_t u32DcdcModeTopOffPeriod;

      //! \brief Causes the battery charger to use an externally generated bias current
      //!
      //! If cleared, this causes the battery charger to use an
      //! externally generated bias current, which is expected to be
      //! quite precise. Otherwise, the battery charger will
      //! generate a lesser-quality bias current internally.

00277       uint8_t useInternalBias:1;

      //! \brief Indicates that the battery charger is to monitor the die temperature.
      //!
      //! If set, this field indicates that the battery charger is to
      //! monitor the die temperature. See below for fields that
      //! configure the details.

00285       uint8_t monitorDieTemp:1;

      //! \brief Indicates that the battery charger is to monitor the battery temperature.
      //!
      //! If set, this field indicates that the battery charger is to
      //! monitor the battery temperature. See below for fields that
      //! configure the details.

00293       uint8_t monitorBatteryTemp:1;

      //! \brief Units in degrees centigrade.
      //!
      //! Note that the hardware reports die temperature in ranges of
      //! 10 degree resolution minimum (see the data sheet for
      //! details). If the battery charger is monitoring the die
      //! temperature, and it rises to a range that includes a
      //! temperature greater than or equal to this value, the
      //! charging current will be clamped to the safe current.

00304       int8_t u8DieTempHigh;

      //! \brief Units in degrees centigrade.
      //!
      //! Note that the hardware reports die temperature in ranges of
      //! 10 degrees minimum (see the data sheet for details). If the
      //! charging current is being clamped because of a high die
      //! temperature, and it falls to a range that doesn’t include a
      //! temperatures greater than or equal to this value, the
      //! charging current clamp will be released.

00315       int8_t u8DieTempLow;

      //! \brief Units in milliamps.
      //!
      //! If the battery charger detects a high die temperature, it
      //! will clamp the charging current at or below this value.

00322       uint16_t u16DieTempSafeCurrent;

      //! \brief If the battery charger is monitoring the battery
      //! temperature, this field indicates the LRADC channel to
      //! read.

00328       uint8_t u8BatteryTempChannel;

      //! \brief If the battery charger is monitoring the battery
      //! temperature, and it rises to a measurement greater than or
      //! equal to this value, the charging current will be clamped
      //! to the corresponding safe current.

00335       uint16_t u16BatteryTempHigh;

      //! \brief If the charging current is being clamped because of a high
      //! battery temperature, and it falls below this value, the
      //! charging current clamp will be released.

00341       uint16_t u16BatteryTempLow;

      //! \brief Units in milliamps.
      //!
      //! If the battery charger detects a high battery temperature,
      //! it will clamp the charging current at or below this value.

00348       uint16_t u16BatteryTempSafeCurrent;

      //! \brief Units in millivolts.
      //!
      //! In the WaitingToCharge state, if we are in DCDC
      //! operating modes, if the battery voltage measurement
      //! is below this value, we immediately proceed with charging.
      //! the low criteria for this value is that it must be high
      //! to not risk the battery voltage getting too low.  The
      //! upper criteria is that you do not want the IR voltage
      //! drop under heavy loads to make you start charging too soon
      //! because the goal in DCDC operating mode is to not be constantly
      //! topping off the battery which can shorten its life

00362       uint16_t u16LowDcdcBatteryVoltage_mv;

      uint32_t u32StateMachineNonChargingPeriod;
} ddi_bc_Cfg_t;

//! Status returned by Battery Charger functions.

00369 typedef enum _ddi_bc_Status {
      //! \brief TBD
00371       DDI_BC_STATUS_SUCCESS = 0,
      //! \brief TBD
00373       DDI_BC_STATUS_HARDWARE_DISABLED,
      //! \brief TBD
00375       DDI_BC_STATUS_BAD_BATTERY_MODE,
      //! \brief TBD
00377       DDI_BC_STATUS_CLOCK_GATE_CLOSED,
      //! \brief TBD
00379       DDI_BC_STATUS_NOT_INITIALIZED,
      //! \brief TBD
00381       DDI_BC_STATUS_ALREADY_INITIALIZED,
      //! \brief TBD
00383       DDI_BC_STATUS_BROKEN,
      //! \brief TBD
00385       DDI_BC_STATUS_NOT_BROKEN,
      //! \brief TBD
00387       DDI_BC_STATUS_NOT_DISABLED,
      //! \brief TBD
00389       DDI_BC_STATUS_BAD_ARGUMENT,
      //! \brief TBD
00391       DDI_BC_STATUS_CFG_BAD_BATTERY_TEMP_CHANNEL,
      //! \brief TBD
00393       DDI_BC_STATUS_CFG_BAD_CHARGING_VOLTAGE,
} ddi_bc_Status_t;

/////////////////////////////////////////////////////////////////////////////////
//  BCM Event Codes
//
// These are the codes that might be published to PMI Subscribers.
/////////////////////////////////////////////////////////////////////////////////

#define DDI_BC_EVENT_GROUP (11<<10)

//! \brief TBD
//! \todo [PUBS] Add definition(s)...
00406 typedef enum {
      // Use the error code group value to make events unique for the EOI
      //! \brief TBD
00409       ddi_bc_MinEventCode = DDI_BC_EVENT_GROUP,
      //! \brief TBD
00411       ddi_bc_WaitingToChargeCode,
      //! \brief TBD
00413       ddi_bc_State_ConditioningCode,
      //! \brief TBD
00415       ddi_bc_State_Topping_OffCode,
      //! \brief TBD
00417       ddi_bc_State_BrokenCode,
      //! \brief TBD
00419       ddi_bc_SettingChargeCode,
      //! \brief TBD
00421       ddi_bc_RaisingDieTempAlarmCode,
      //! \brief TBD
00423       ddi_bc_DroppingDieTempAlarmCode,

      //! \brief TBD
00426       ddi_bc_MaxEventCode,
      //! \brief TBD
00428       ddi_bc_DcdcModeWaitingToChargeCode
} ddi_bc_Event_t;

////////////////////////////////////////////////////////////////////////////////
// Prototypes
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//! \brief Initialize the Battery Charger.
//!
//! \fntype Function
//!
//! This function initializes the Battery Charger.
//!
//! \param[in]  pCfg  A pointer to the new configuration.
//!
//! \retval  DDI_BC_STATUS_SUCCESS
//!             If the operation succeeded.
//! \retval  DDI_BC_STATUS_ALREADY_INITIALIZED
//!             If the Battery Charger is already initialized.
//! \retval  DDI_BC_STATUS_HARDWARE_DISABLED
//!             If the Battery Charger hardware is disabled by a laser fuse.
//! \retval  DDI_BC_STATUS_BAD_BATTERY_MODE
//!             If the power supply is set up for a non-rechargeable battery.
//! \retval  DDI_BC_STATUS_CLOCK_GATE_CLOSED
//!             If the clock gate for the power supply registers is closed.
//! \retval  DDI_BC_STATUS_CFG_BAD_CHARGING_VOLTAGE
//!             If the charging voltage is not either 4100 or 4200.
//! \retval  DDI_BC_STATUS_CFG_BAD_BATTERY_TEMP_CHANNEL
//!             If the LRADC channel number for monitoring battery temperature
//!             is bad.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_init.c.
////////////////////////////////////////////////////////////////////////////////
extern ddi_bc_Status_t ddi_bc_Init(ddi_bc_Cfg_t * pCfg);
////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Report the Battery Charger configuration.
//!
//! \fntype Function
//!
//! This function reports the Battery Charger configuration.
//!
//! Note that, if the Battery Charger has not yet been initialized, the data
//! returned by this function is unknown.
//!
//! \param[in,out]  pCfg  A pointer to a structure that will receive the data.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern void ddi_bc_QueryCfg(ddi_bc_Cfg_t * pCfg);
////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Shut down the Battery Charger.
//!
//! \fntype Function
//!
//! This function immediately shuts down the Battery Charger hardware and
//! returns the state machine to the Uninitialized state. Use this function to
//! safely “mummify” the battery charger before retiring it from memory.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern void ddi_bc_ShutDown(void);
////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Advances the state machine.
//!
//! \fntype Function
//!
//! This function advances the state machine.
//!
//! \retval DDI_BC_STATUS_SUCCESS          If all goes well
//! \retval DDI_BC_STATUS_NOT_INITIALIZED  If the Battery Charger is not yet
//!                                        initialized.
//! \retval DDI_BC_STATUS_BROKEN           If the battery violated a time-out
//!                                        and has been declared broken.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern ddi_bc_Status_t ddi_bc_StateMachine(void);
////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Get the Battery Charger's current state.
//!
//! \fntype Function
//!
//! This function returns the current state.
//!
//! \retval The current state.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern ddi_bc_State_t ddi_bc_GetState(void);
////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Disable the Battery Charger.
//!
//! \fntype Function
//!
//! This function forces the Battery Charger into the Disabled state.
//!
//! \retval DDI_BC_STATUS_SUCCESS          If all goes well
//! \retval DDI_BC_STATUS_NOT_INITIALIZED  If the Battery Charger is not yet
//!                                        initialized.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern ddi_bc_Status_t ddi_bc_SetDisable(void);
////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Enable the Battery Charger.
//!
//! \fntype Function
//!
//! If the Battery Charger is in the Disabled state, this function moves it to
//! the Waiting to Charge state.
//!
//! \retval DDI_BC_STATUS_SUCCESS          If all goes well
//! \retval DDI_BC_STATUS_NOT_INITIALIZED  If the Battery Charger is not yet
//!                                        initialized.
//! \retval DDI_BC_STATUS_NOT_DISABLED     If the Battery Charger is not
//!                                        disabled.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern ddi_bc_Status_t ddi_bc_SetEnable(void);
////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Declare the battery to be broken.
//!
//! \fntype Function
//!
//! This function forces the Battery Charger into the Broken state.
//!
//! \retval DDI_BC_STATUS_SUCCESS          If all goes well
//! \retval DDI_BC_STATUS_NOT_INITIALIZED  If the Battery Charger is not yet
//!                                        initialized.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern ddi_bc_Status_t ddi_bc_SetBroken(void);
////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Declare the battery to be fixed.
//!
//! \fntype Function
//!
//! If the Battery Charger is in the Broken state, this function moves it to
//! the Disabled state.
//!
//! \retval DDI_BC_STATUS_SUCCESS          If all goes well
//! \retval DDI_BC_STATUS_NOT_INITIALIZED  If the Battery Charger is not yet
//!                                        initialized.
//! \retval DDI_BC_STATUS_NOT_BROKEN       If the Battery Charger is not broken.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern ddi_bc_Status_t ddi_bc_SetFixed(void);
////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Set the current limit.
//!
//! \fntype Function
//!
//! This function applies a limit to the current that the Battery Charger can
//! draw.
//!
//! \param[in]  u16Limit  The maximum current the Battery Charger can draw
//!                       (in mA).
//!
//! \retval  The expressible version of the limit.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern uint16_t ddi_bc_SetCurrentLimit(uint16_t u16Limit);

////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Report the current limit.
//!
//! \fntype Function
//!
//! This function reports the limit to the current that the Battery Charger can
//! draw.
//!
//! \retval  The current limit.
//!
//! \internal
//! \see To view the function definition, see ddi_bc_api.c.
////////////////////////////////////////////////////////////////////////////////
extern uint16_t ddi_bc_GetCurrentLimit(void);

////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Set the current threshold.
//!
//! \fntype Function
//!
//!
//! \param[in]  u16Current Current threshold where charger deactivates (in mA).
//!
//!
////////////////////////////////////////////////////////////////////////////////
extern uint16_t ddi_bc_SetCurrentThreshold(uint16_t u16Current);

////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Set the battery charger state machine period.
//!
//! \fntype Function
//!
//! This function sets a new state machine period.  The Period and Slope should
//! be coordinated to achieve the minimal ramp step current which will minimize
//! transients on the system.
//!
//! \param[in]  u32StateMachinePeriod  (in milliseconds)
//! \param[in]  u16CurrentRampSlope (in mA/s)
//!
//! \retval SUCCESS                        If all goes well
//! \retval ERROR_DDI_BCM_NOT_INITIALIZED  If the Battery Charger is not yet
//!                                        initialized.
//!
////////////////////////////////////////////////////////////////////////////////
extern ddi_bc_Status_t ddi_bc_SetNewPeriodAndSlope(uint32_t
                                       u32StateMachinePeriod,
                                       uint16_t
                                       u16CurrentRampSlope);

////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Report the state machine period.
//!
//! \fntype Function
//!
//! This function reports the battery charger period.
//!
//! \retval  The battery charger period (in milliseconds).
//!
////////////////////////////////////////////////////////////////////////////////
extern uint32_t ddi_bc_GetStateMachinePeriod(void);

////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Report the current ramp slope.
//!
//! \fntype Function
//!
//! This function reports the current ramp slope.
//!
//! \retval  The current ramp slope (in mA/s).
//!
////////////////////////////////////////////////////////////////////////////////
extern uint32_t ddi_bc_GetCurrentRampSlope(void);

////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Report the time spent in the present state (milliseconds)
//!
//! \fntype Function
//!
//! This function reports the time spent in the present charging state.  Note that
//! for the states that actually charge the battery, this time does not include the
//! time spent under alarm conditions such as die termperature alarm or battery
//! temperature alarm.
//!
//! \retval  The time spent in the current state in milliseconds.
//!
////////////////////////////////////////////////////////////////////////////////
uint32_t ddi_bc_GetStateTime(void);

////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Report the reason for being in the broken state
//!
//! \fntype Function
//!
//!
//! \retval  ddi_bc_BrokenReason_t enumeration
//!
////////////////////////////////////////////////////////////////////////////////
ddi_bc_BrokenReason_t ddi_bc_GetBrokenReason(void);

////////////////////////////////////////////////////////////////////////////////
//!
//! \brief Restart the charge cycle
//!
//! \fntype Function
//!
//! \retval  SUCCESS
//!
////////////////////////////////////////////////////////////////////////////////
ddi_bc_Status_t ddi_bc_ForceChargingToStart(void);

////////////////////////////////////////////////////////////////////////////////
// End of file
////////////////////////////////////////////////////////////////////////////////
#endif                        // _DDI_BC_H
//! @}

Generated by  Doxygen 1.6.0   Back to index