mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-17 05:32:55 +08:00
89 lines
3.3 KiB
C
89 lines
3.3 KiB
C
/****************************************************************************
|
|
* $Id:: power_api.h 6249 2011-01-25 19:23:47Z usb01267 $
|
|
* Project: NXP LPC13Uxx software example
|
|
*
|
|
* Description:
|
|
* Power API Header File for NXP LPC13Uxx 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 __LPC13UXX_POWER_API_H__
|
|
#define __LPC13UXX_POWER_API_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define PWRROMD_PRESENT
|
|
|
|
#define USBROMD_PRESENT
|
|
|
|
#ifdef USBROMD_PRESENT
|
|
#include "mw_usbd_rom_api.h"
|
|
#endif
|
|
|
|
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 USBD_API_T * 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 /* __LPC13UXX_POWER_API_H__ */
|
|
|