The official mbed C/C SDK provides the software platform and libraries to build your applications.

Fork of mbed by mbed official

LPC11U24/power_api.h

Committer:
emilmont
Date:
2012-11-21
Revision:
44:24d45a770a51
Parent:
40:976df7c37ad5
Child:
46:890817bdcffb

File content as of revision 44:24d45a770a51:

/****************************************************************************
 *   $Id:: power_api.h 6249 2011-01-25 19:23:47Z usb01267                   $
 *   Project: NXP LPC11Uxx software example  
 *
 *   Description:
 *     Power API Header File for NXP LPC11Uxx Device Series 
 *
 ****************************************************************************
 * Software that is described herein is for illustrative purposes only
 * which provides customers with programming information regarding the
 * products. This software is supplied "AS IS" without any warranties.
 * NXP Semiconductors assumes no responsibility or liability for the
 * use of the software, conveys no license or title under any patent,
 * copyright, or mask work right to the product. NXP Semiconductors
 * reserves the right to make changes in the software without
 * notification. NXP Semiconductors also make no representation or
 * warranty that such application will be suitable for the specified
 * use without further testing or modification.
****************************************************************************/
#ifndef __LPC11UXX_POWER_API_H__
#define __LPC11UXX_POWER_API_H__

#ifdef __cplusplus
 extern "C" {
#endif 

#define PWRROMD_PRESENT

typedef    struct _PWRD {
  void (*set_pll)(unsigned int cmd[], unsigned int resp[]);
  void (*set_power)(unsigned int cmd[], unsigned int resp[]);
}  PWRD;

typedef    struct _ROM {
#ifdef USBROMD_PRESENT
   const USB * pUSBD;
#else
   const unsigned p_usbd;
#endif /* USBROMD_PRESENT */
   const unsigned p_clib;
   const unsigned p_cand;
#ifdef PWRROMD_PRESENT
   const PWRD * pPWRD;
#else
   const unsigned p_pwrd;
#endif /* PWRROMD_PRESENT */
   const unsigned p_dev1;
   const unsigned p_dev2;
   const unsigned p_dev3;
   const unsigned p_dev4; 
}  ROM;

//PLL setup related definitions
#define    CPU_FREQ_EQU          0       //main PLL freq must be equal to the specified 
#define    CPU_FREQ_LTE        1       //main PLL freq must be less than or equal the specified
#define    CPU_FREQ_GTE        2       //main PLL freq must be greater than or equal the specified
#define    CPU_FREQ_APPROX        3       //main PLL freq must be as close as possible the specified

#define    PLL_CMD_SUCCESS        0       //PLL setup successfully found
#define    PLL_INVALID_FREQ    1       //specified freq out of range (either input or output)
#define    PLL_INVALID_MODE    2       //invalid mode (see above for valid) specified
#define    PLL_FREQ_NOT_FOUND    3       //specified freq not found under specified conditions
#define    PLL_NOT_LOCKED        4       //PLL not locked => no changes to the PLL setup

//power setup elated definitions
#define    PARAM_DEFAULT            0   //default power settings (voltage regulator, flash interface)
#define    PARAM_CPU_PERFORMANCE    1   //setup for maximum CPU performance (higher current, more computation)
#define    PARAM_EFFICIENCY        2   //balanced setting (power vs CPU performance)
#define    PARAM_LOW_CURRENT        3   //lowest active current, lowest CPU performance

#define    PARAM_CMD_SUCCESS        0   //power setting successfully found
#define    PARAM_INVALID_FREQ        1   //specified freq out of range (=0 or > 50 MHz)
#define    PARAM_INVALID_MODE        2   //specified mode not valid (see above for valid)

#define MAX_CLOCK_KHZ_PARAM                50000

#ifdef __cplusplus
}
#endif

#endif  /* __LPC11UXX_POWER_API_H__ */