blob: de28e6e018b33a01e0938c0f18119884f3496e59 [file] [log] [blame]
Bryan Wu1394f032007-05-06 14:50:22 -07001/*
2 * include/asm-blackfin/dpmc.h - Miscellaneous IOCTL commands for Dynamic Power
3 * Management Controller Driver.
Michael Hennerich14b03202008-05-07 11:41:26 +08004 * Copyright (C) 2004-2008 Analog Device Inc.
Bryan Wu1394f032007-05-06 14:50:22 -07005 *
6 */
7#ifndef _BLACKFIN_DPMC_H_
8#define _BLACKFIN_DPMC_H_
9
Bryan Wu1394f032007-05-06 14:50:22 -070010#ifdef __KERNEL__
Michael Hennerich1efc80b2008-07-19 16:57:32 +080011#ifndef __ASSEMBLY__
Bryan Wu1394f032007-05-06 14:50:22 -070012
Michael Hennerichcfefe3c2008-02-09 04:12:37 +080013void sleep_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
14void deep_sleep(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
15void hibernate_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
16void sleep_deeper(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
Michael Hennerich1efc80b2008-07-19 16:57:32 +080017void do_hibernate(int wakeup);
18void set_dram_srfs(void);
19void unset_dram_srfs(void);
Bryan Wu1394f032007-05-06 14:50:22 -070020
Michael Hennerich1efc80b2008-07-19 16:57:32 +080021#define VRPAIR(vlev, freq) (((vlev) << 16) | ((freq) >> 16))
Bryan Wu1394f032007-05-06 14:50:22 -070022
Michael Hennerich14b03202008-05-07 11:41:26 +080023struct bfin_dpmc_platform_data {
24 const unsigned int *tuple_tab;
25 unsigned short tabsize;
26 unsigned short vr_settling_time; /* in us */
27};
28
Michael Hennerich1efc80b2008-07-19 16:57:32 +080029#else
Michael Hennerich14b03202008-05-07 11:41:26 +080030
Michael Hennerich1efc80b2008-07-19 16:57:32 +080031#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;\
54
55#endif
Bryan Wu1394f032007-05-06 14:50:22 -070056#endif /* __KERNEL__ */
57
58#endif /*_BLACKFIN_DPMC_H_*/