pm.h
Go to the documentation of this file.00001
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef _PM_H_
00045 #define _PM_H_
00046
00047 #include <arch/avr32.h>
00048 #include <avr32/io.h>
00049
00050
00051
00062 #define SLEEP(mode) {__asm__ __volatile__ ("sleep "STRINGZ(mode));}
00063
00064
00072 extern INLINE unsigned int pm_get_reset_cause(volatile avr32_pm_t *pm)
00073 {
00074 return pm->rcause;
00075 }
00076
00077
00082 extern void pm_enable_osc0_ext_clock(volatile avr32_pm_t *pm);
00083
00084
00090 extern void pm_enable_osc0_crystal(volatile avr32_pm_t *pm, unsigned int fosc0);
00091
00092
00098 extern void pm_enable_clk0(volatile avr32_pm_t *pm, unsigned int startup);
00099
00100
00105 extern void pm_disable_clk0(volatile avr32_pm_t *pm);
00106
00107
00113 extern void pm_enable_clk0_no_wait(volatile avr32_pm_t *pm, unsigned int startup);
00114
00115
00120 extern void pm_wait_for_clk0_ready(volatile avr32_pm_t *pm);
00121
00122
00127 extern void pm_enable_osc1_ext_clock(volatile avr32_pm_t *pm);
00128
00129
00135 extern void pm_enable_osc1_crystal(volatile avr32_pm_t *pm, unsigned int fosc1);
00136
00137
00143 extern void pm_enable_clk1(volatile avr32_pm_t *pm, unsigned int startup);
00144
00145
00150 extern void pm_disable_clk1(volatile avr32_pm_t *pm);
00151
00152
00158 extern void pm_enable_clk1_no_wait(volatile avr32_pm_t *pm, unsigned int startup);
00159
00160
00165 extern void pm_wait_for_clk1_ready(volatile avr32_pm_t *pm);
00166
00167
00172 extern void pm_enable_osc32_ext_clock(volatile avr32_pm_t *pm);
00173
00174
00179 extern void pm_enable_osc32_crystal(volatile avr32_pm_t *pm);
00180
00181
00187 extern void pm_enable_clk32(volatile avr32_pm_t *pm, unsigned int startup);
00188
00189
00194 extern void pm_disable_clk32(volatile avr32_pm_t *pm);
00195
00196
00202 extern void pm_enable_clk32_no_wait(volatile avr32_pm_t *pm, unsigned int startup);
00203
00204
00209 extern void pm_wait_for_clk32_ready(volatile avr32_pm_t *pm);
00210
00211
00222 extern void pm_cksel(volatile avr32_pm_t *pm, unsigned int pbadiv, unsigned int pbasel, unsigned int pbbdiv, unsigned int pbbsel, unsigned int hsbdiv, unsigned int hsbsel);
00223
00224
00234 extern void pm_gc_setup(volatile avr32_pm_t *pm, unsigned int gc, unsigned int osc_or_pll, unsigned int pll_osc, unsigned int diven, unsigned int div);
00235
00236
00242 extern void pm_gc_enable(volatile avr32_pm_t *pm, unsigned int gc);
00243
00244
00250 extern void pm_gc_disable(volatile avr32_pm_t *pm, unsigned int gc);
00251
00252
00262 extern void pm_pll_setup(volatile avr32_pm_t *pm, unsigned int pll, unsigned int mul, unsigned int div, unsigned int osc, unsigned int lockcount);
00263
00264
00273 extern void pm_pll_set_option(volatile avr32_pm_t *pm, unsigned int pll, unsigned int pll_freq, unsigned int pll_div2, unsigned int pll_wbwdisable);
00274
00275
00282 extern unsigned int pm_pll_get_option(volatile avr32_pm_t *pm, unsigned int pll);
00283
00284
00290 extern void pm_pll_enable(volatile avr32_pm_t *pm, unsigned int pll);
00291
00292
00298 extern void pm_pll_disable(volatile avr32_pm_t *pm, unsigned int pll);
00299
00300
00305 extern void pm_wait_for_pll0_locked(volatile avr32_pm_t *pm);
00306
00307
00312 extern void pm_wait_for_pll1_locked(volatile avr32_pm_t *pm);
00313
00314
00320 extern void pm_switch_to_clock(volatile avr32_pm_t *pm, unsigned long clock);
00321
00322
00329 extern void pm_switch_to_osc0(volatile avr32_pm_t *pm, unsigned int fosc0, unsigned int startup);
00330
00331
00332 #endif // _PM_H_