Commit | Line | Data |
---|---|---|
1394f032 BW |
1 | /* |
2 | * include/asm-blackfin/dpmc.h - Miscellaneous IOCTL commands for Dynamic Power | |
3 | * Management Controller Driver. | |
14b03204 | 4 | * Copyright (C) 2004-2008 Analog Device Inc. |
1394f032 BW |
5 | * |
6 | */ | |
7 | #ifndef _BLACKFIN_DPMC_H_ | |
8 | #define _BLACKFIN_DPMC_H_ | |
9 | ||
1394f032 | 10 | #ifdef __KERNEL__ |
1efc80b5 | 11 | #ifndef __ASSEMBLY__ |
1394f032 | 12 | |
cfefe3c6 MH |
13 | void sleep_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); |
14 | void deep_sleep(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); | |
15 | void hibernate_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); | |
16 | void sleep_deeper(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); | |
1efc80b5 MH |
17 | void do_hibernate(int wakeup); |
18 | void set_dram_srfs(void); | |
19 | void unset_dram_srfs(void); | |
1394f032 | 20 | |
1efc80b5 | 21 | #define VRPAIR(vlev, freq) (((vlev) << 16) | ((freq) >> 16)) |
1394f032 | 22 | |
14b03204 MH |
23 | struct bfin_dpmc_platform_data { |
24 | const unsigned int *tuple_tab; | |
25 | unsigned short tabsize; | |
26 | unsigned short vr_settling_time; /* in us */ | |
27 | }; | |
28 | ||
1efc80b5 MH |
29 | #else |
30 | ||
31 | #define PM_PUSH(x) \ | |
32 | R0 = [P0 + (x - SRAM_BASE_ADDRESS)];\ | |
33 | [--SP] = R0;\ | |
34 | ||
35 | #define PM_POP(x) \ | |
36 | R0 = [SP++];\ | |
37 | [P0 + (x - SRAM_BASE_ADDRESS)] = R0;\ | |
38 | ||
39 | #define PM_SYS_PUSH(x) \ | |
40 | R0 = [P0 + (x - PLL_CTL)];\ | |
41 | [--SP] = R0;\ | |
42 | ||
43 | #define PM_SYS_POP(x) \ | |
44 | R0 = [SP++];\ | |
45 | [P0 + (x - PLL_CTL)] = R0;\ | |
46 | ||
47 | #define PM_SYS_PUSH16(x) \ | |
48 | R0 = w[P0 + (x - PLL_CTL)];\ | |
49 | [--SP] = R0;\ | |
50 | ||
51 | #define PM_SYS_POP16(x) \ | |
52 | R0 = [SP++];\ | |
53 | w[P0 + (x - PLL_CTL)] = R0;\ | |
14b03204 | 54 | |
1efc80b5 | 55 | #endif |
1394f032 BW |
56 | #endif /* __KERNEL__ */ |
57 | ||
58 | #endif /*_BLACKFIN_DPMC_H_*/ |