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