forked from Minki/linux
56f5f59052
- Disable all bits in SIC_IWR unless we are going into a real (DPMC) power saving mode. Any Interrupt can wake the core form it's idle state. - Remove deep sleep mode as it is not going to be used anywhere: We support sleep, sleep deeper and hibernate. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
58 lines
1.2 KiB
C
58 lines
1.2 KiB
C
/*
|
|
* include/asm-blackfin/dpmc.h - Miscellaneous IOCTL commands for Dynamic Power
|
|
* Management Controller Driver.
|
|
* Copyright (C) 2004-2008 Analog Device Inc.
|
|
*
|
|
*/
|
|
#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_*/
|