Go to the documentation of this file.00001
00037
00038
00039
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085 #ifndef _PM_H_
00086 #define _PM_H_
00087
00088 #include <arch/avr32.h>
00089 #include <avr32/io.h>
00090 #include "preprocessor.h"
00091
00092
00103 #define SLEEP(mode) {__asm__ __volatile__ ("sleep "STRINGZ(mode));}
00104
00110 extern void pm_enable_osc0_crystal(unsigned int fosc0);
00111
00112
00118 extern void pm_enable_clk0(unsigned int startup);
00119
00120
00125 extern void pm_disable_clk0(volatile avr32_pm_t *pm);
00126
00127
00133 extern void pm_enable_clk0_no_wait(volatile avr32_pm_t *pm, unsigned int startup);
00134
00135
00140 extern void pm_wait_for_clk0_ready(volatile avr32_pm_t *pm);
00141
00142
00147 extern void pm_enable_osc1_ext_clock(volatile avr32_pm_t *pm);
00148
00149
00155 extern void pm_enable_osc1_crystal(volatile avr32_pm_t *pm, unsigned int fosc1);
00156
00157
00163 extern void pm_enable_clk1(volatile avr32_pm_t *pm, unsigned int startup);
00164
00165
00170 extern void pm_disable_clk1(volatile avr32_pm_t *pm);
00171
00172
00178 extern void pm_enable_clk1_no_wait(volatile avr32_pm_t *pm, unsigned int startup);
00179
00180
00185 extern void pm_wait_for_clk1_ready(volatile avr32_pm_t *pm);
00186
00187
00192 extern void pm_enable_osc32_ext_clock(volatile avr32_pm_t *pm);
00193
00194
00199 extern void pm_enable_osc32_crystal(volatile avr32_pm_t *pm);
00200
00201
00207 extern void pm_enable_clk32(volatile avr32_pm_t *pm, unsigned int startup);
00208
00209
00214 extern void pm_disable_clk32(volatile avr32_pm_t *pm);
00215
00216
00222 extern void pm_enable_clk32_no_wait(volatile avr32_pm_t *pm, unsigned int startup);
00223
00224
00229 extern void pm_wait_for_clk32_ready(volatile avr32_pm_t *pm);
00230
00231
00242 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);
00243
00244
00245
00255 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);
00256
00257
00266 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);
00267
00268
00275 extern unsigned int pm_pll_get_option(volatile avr32_pm_t *pm, unsigned int pll);
00276
00277
00283 extern void pm_pll_enable(volatile avr32_pm_t *pm, unsigned int pll);
00284
00285
00291 extern void pm_pll_disable(volatile avr32_pm_t *pm, unsigned int pll);
00292
00293
00298 extern void pm_wait_for_pll0_locked(volatile avr32_pm_t *pm);
00299
00300
00305 extern void pm_wait_for_pll1_locked(volatile avr32_pm_t *pm);
00306
00307
00313 extern void pm_switch_to_clock(unsigned long clock);
00314
00315
00322 extern void pm_switch_to_osc0(unsigned int fosc0, unsigned int startup);
00323
00324
00329 extern void pm_bod_enable_irq(volatile avr32_pm_t *pm);
00330
00331
00336 extern void pm_bod_disable_irq(volatile avr32_pm_t *pm);
00337
00338
00343 extern void pm_bod_clear_irq(volatile avr32_pm_t *pm);
00344
00345
00353 extern unsigned long pm_bod_get_irq_status(volatile avr32_pm_t *pm);
00354
00355
00363 extern unsigned long pm_bod_get_irq_enable_bit(volatile avr32_pm_t *pm);
00364
00365
00373 extern unsigned long pm_bod_get_level(volatile avr32_pm_t *pm);
00374
00375
00383 extern unsigned long pm_read_gplp(volatile avr32_pm_t *pm, unsigned long gplp);
00384
00385
00392 extern void pm_write_gplp(volatile avr32_pm_t *pm, unsigned long gplp, unsigned long value);
00393
00394
00406 extern long pm_enable_module(volatile avr32_pm_t *pm, unsigned long module);
00407
00419 extern long pm_disable_module(volatile avr32_pm_t *pm, unsigned long module);
00420
00426 extern void pm_configure_usb_clock(void);
00427
00428 extern void Avr32InitClockTree(void);
00429
00430 #endif // _PM_H_