60 lines
1.2 KiB
C
60 lines
1.2 KiB
C
|
/*
|
||
|
* Miscellaneous IOCTL commands for Dynamic Power Management Controller Driver
|
||
|
*
|
||
|
* Copyright (C) 2004-2008 Analog Device Inc.
|
||
|
*
|
||
|
* Licensed under the GPL-2
|
||
|
*/
|
||
|
|
||
|
#ifndef _BLACKFIN_DPMC_H_
|
||
|
#define _BLACKFIN_DPMC_H_
|
||
|
|
||
|
#ifdef __KERNEL__
|
||
|
#ifndef __ASSEMBLY__
|
||
|
|
||
|
void sleep_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
|
||
|
void hibernate_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
|
||
|
void sleep_deeper(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
|
||
|
void do_hibernate(int wakeup);
|
||
|
void set_dram_srfs(void);
|
||
|
void unset_dram_srfs(void);
|
||
|
|
||
|
#define VRPAIR(vlev, freq) (((vlev) << 16) | ((freq) >> 16))
|
||
|
|
||
|
struct bfin_dpmc_platform_data {
|
||
|
const unsigned int *tuple_tab;
|
||
|
unsigned short tabsize;
|
||
|
unsigned short vr_settling_time; /* in us */
|
||
|
};
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define PM_PUSH(x) \
|
||
|
R0 = [P0 + (x - SRAM_BASE_ADDRESS)];\
|
||
|
[--SP] = R0;\
|
||
|
|
||
|
#define PM_POP(x) \
|
||
|
R0 = [SP++];\
|
||
|
[P0 + (x - SRAM_BASE_ADDRESS)] = R0;\
|
||
|
|
||
|
#define PM_SYS_PUSH(x) \
|
||
|
R0 = [P0 + (x - PLL_CTL)];\
|
||
|
[--SP] = R0;\
|
||
|
|
||
|
#define PM_SYS_POP(x) \
|
||
|
R0 = [SP++];\
|
||
|
[P0 + (x - PLL_CTL)] = R0;\
|
||
|
|
||
|
#define PM_SYS_PUSH16(x) \
|
||
|
R0 = w[P0 + (x - PLL_CTL)];\
|
||
|
[--SP] = R0;\
|
||
|
|
||
|
#define PM_SYS_POP16(x) \
|
||
|
R0 = [SP++];\
|
||
|
w[P0 + (x - PLL_CTL)] = R0;\
|
||
|
|
||
|
#endif
|
||
|
#endif /* __KERNEL__ */
|
||
|
|
||
|
#endif /*_BLACKFIN_DPMC_H_*/
|