blob: fcb183ca362e7700f0439387c59ca34fb4089cfc [file] [log] [blame]
/*
* PowerMgr_API.h
*
* Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name Texas Instruments nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/** \file PowerMgr_API.h
* \brief This is the Power Manager module API.
* \
*/
/****************************************************************************
* *
* MODULE: Power Manager *
* PURPOSE: Power Manager Module API *
* *
****************************************************************************/
#ifndef _POWER_MGR_API_H_
#define _POWER_MGR_API_H_
#include "tidef.h"
#include "paramOut.h"
#include "DrvMainModules.h"
/*****************************************************************************
** Constants **
*****************************************************************************/
/*****************************************************************************
** Enumerations **
*****************************************************************************/
/*****************************************************************************
** Typedefs **
*****************************************************************************/
/*****************************************************************************
** Structures **
*****************************************************************************/
/*****************************************************************************
** External data definitions **
*****************************************************************************/
/*****************************************************************************
** External functions definitions **
*****************************************************************************/
/*****************************************************************************
** Public Function prototypes **
*****************************************************************************/
/**
* \
* \date 24-Oct-2005\n
* \brief Creates the object of the power Manager.
*
* Function Scope \e Public.\n
* Parameters:\n
* 1) TI_HANDLE - handle to the OS.\n
* Return Value: TI_HANDLE - handle to the PowerMgr object.\n
*/
TI_HANDLE PowerMgr_create(TI_HANDLE theOsHandle);
/**
* \
* \date 24-Oct-2005\n
* \brief Destroy the object of the power Manager.
*
* Function Scope \e Public.\n
* Parameters:\n
* 1) TI_HANDLE - handle to the PowerMgr object.\n
* Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n
*/
TI_STATUS PowerMgr_destroy(TI_HANDLE thePowerMgrHandle);
/**
* \
* \date 24-Oct-2005\n
* \brief Initialization of the PowerMgr module.
*
* Function Scope \e Public.\n
* Parameters: pStadHandles - The driver modules handles \n
* Return Value: void \n
*/
void PowerMgr_init (TStadHandlesList *pStadHandles);
TI_STATUS PowerMgr_SetDefaults (TI_HANDLE hPowerMgr, PowerMgrInitParams_t* pPowerMgrInitParams);
/**
* \
* \date 24-Oct-2005\n
* \brief Start the power save algorithm of the driver and also the 802.11 PS.
*
* Function Scope \e Public.\n
* Parameters:\n
* 1) TI_HANDLE - handle to the PowerMgr object.\n
* Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n
* \b Description:\n
* PsEnable = true, and decide on the proper power mode.
*/
TI_STATUS PowerMgr_startPS(TI_HANDLE thePowerMgrHandle);
/**
* \
* \date 24-Oct-2005\n
* \brief stop the power save algorithm of the driver and also the 802.11 PS.
*
* Function Scope \e Public.\n
* Parameters:\n
* 1) TI_HANDLE - handle to the PowerMgr object.\n
* 2) TI_BOOL - indicates if this is roaming (FALSE) or disconnect (TRUE)
* Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n
* \b Description:\n
* PsEnable = false, and set the power mode to active.
*/
TI_STATUS PowerMgr_stopPS(TI_HANDLE thePowerMgrHandle, TI_BOOL bDisconnect);
/**
* \
* \date 24-Oct-2005\n
* \brief returns the 802.11 power save status (enable / disable).
*
* Function Scope \e Public.\n
* Parameters:\n
* 1) TI_HANDLE - handle to the PowerMgr object.\n
* Return Value: TI_BOOL - TI_TRUE if enable else TI_FALSE.\n
*/
TI_BOOL PowerMgr_getPsStatus(TI_HANDLE thePowerMgrHandle);
/**
* \
* \date 24-Oct-2005\n
* \brief Configure of the PowerMode (auto / active / short doze / long doze).
*
* Function Scope \e Public.\n
* Parameters:\n
* 1) TI_HANDLE - handle to the PowerMgr object.\n
* 2) PowerMgr_PowerMode_e - the requested power mode (auto / active / short doze / long doze).
* Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n
* \b Description:\n
* desiredPowerModeProfile = PowerMode input parameter, and set the proper power mode.
*/
TI_STATUS PowerMgr_setPowerMode(TI_HANDLE thePowerMgrHandle);
/**
* \
* \date 24-Oct-2005\n
* \brief Get the current PowerMode of the PowerMgr module.
*
* Function Scope \e Public.\n
* Parameters:\n
* 1) TI_HANDLE - handle to the PowerMgr object.\n
* Return Value: PowerMgr_PowerMode_e .\n
*/
PowerMgr_PowerMode_e PowerMgr_getPowerMode(TI_HANDLE thePowerMgrHandle);
TI_STATUS powerMgr_getParam(TI_HANDLE thePowerMgrHandle,
paramInfo_t *theParamP);
TI_STATUS powerMgr_setParam(TI_HANDLE thePowerMgrHandle,
paramInfo_t *theParamP);
/**
* \
* \date 20-July-2004\n
* \brief print configuration of the PowerMgr object - use for debug!
*
* Function Scope \e Public.\n
* Parameters:\n
* 1) TI_HANDLE - handle to the PowerMgr object.\n
* Return Value: void.\n
*/
void PowerMgr_printObject(TI_HANDLE thePowerMgrHandle);
/**
* \date 10-April-2007\n
* \brief reset PM upon recovery event.
*
* Function Scope \e Public.\n
* Parameters:\n
* 1) TI_HANDLE - handle to the PowerMgr object.\n
* Return Value: void.\n
*/
TI_STATUS PowerMgr_notifyFWReset(TI_HANDLE hPowerMgr);
TI_BOOL PowerMgr_getReAuthActivePriority(TI_HANDLE thePowerMgrHandle);
#endif /*_POWER_MGR_API_H_*/