83 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/****************************************************************************
							 | 
						||
| 
								 | 
							
								 *   $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__ */
							 | 
						||
| 
								 | 
							
								
							 |