![Michael Hennerich](/assets/img/avatar_default.png)
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
79 lines
2.5 KiB
C
79 lines
2.5 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_
|
|
|
|
#define SLEEP_MODE 1
|
|
#define DEEP_SLEEP_MODE 2
|
|
#define ACTIVE_PLL_DISABLED 3
|
|
#define FULLON_MODE 4
|
|
#define ACTIVE_PLL_ENABLED 5
|
|
#define HIBERNATE_MODE 6
|
|
|
|
#define IOCTL_FULL_ON_MODE _IO('s', 0xA0)
|
|
#define IOCTL_ACTIVE_MODE _IO('s', 0xA1)
|
|
#define IOCTL_SLEEP_MODE _IO('s', 0xA2)
|
|
#define IOCTL_DEEP_SLEEP_MODE _IO('s', 0xA3)
|
|
#define IOCTL_HIBERNATE_MODE _IO('s', 0xA4)
|
|
#define IOCTL_CHANGE_FREQUENCY _IOW('s', 0xA5, unsigned long)
|
|
#define IOCTL_CHANGE_VOLTAGE _IOW('s', 0xA6, unsigned long)
|
|
#define IOCTL_SET_CCLK _IOW('s', 0xA7, unsigned long)
|
|
#define IOCTL_SET_SCLK _IOW('s', 0xA8, unsigned long)
|
|
#define IOCTL_GET_PLLSTATUS _IOW('s', 0xA9, unsigned long)
|
|
#define IOCTL_GET_CORECLOCK _IOW('s', 0xAA, unsigned long)
|
|
#define IOCTL_GET_SYSTEMCLOCK _IOW('s', 0xAB, unsigned long)
|
|
#define IOCTL_GET_VCO _IOW('s', 0xAC, unsigned long)
|
|
#define IOCTL_DISABLE_WDOG_TIMER _IO('s', 0xAD)
|
|
#define IOCTL_UNMASK_WDOG_WAKEUP_EVENT _IO('s',0xAE)
|
|
#define IOCTL_PROGRAM_WDOG_TIMER _IOW('s',0xAF,unsigned long)
|
|
#define IOCTL_CLEAR_WDOG_WAKEUP_EVENT _IO('s',0xB0)
|
|
#define IOCTL_SLEEP_DEEPER_MODE _IO('s',0xB1)
|
|
|
|
#define DPMC_MINOR 254
|
|
|
|
#define ON 0
|
|
#define OFF 1
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
unsigned long calc_volt(void);
|
|
int calc_vlev(int vlt);
|
|
unsigned long change_voltage(unsigned long volt);
|
|
int calc_msel(int vco_hz);
|
|
unsigned long change_frequency(unsigned long vco_mhz);
|
|
int set_pll_div(unsigned short sel, unsigned char flag);
|
|
int get_vco(void);
|
|
unsigned long change_system_clock(unsigned long clock);
|
|
unsigned long change_core_clock(unsigned long clock);
|
|
unsigned long get_pll_status(void);
|
|
void change_baud(int baud);
|
|
void fullon_mode(void);
|
|
void active_mode(void);
|
|
void sleep_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
|
|
void deep_sleep(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 program_wdog_timer(unsigned long);
|
|
void unmask_wdog_wakeup_evt(void);
|
|
void clear_wdog_wakeup_evt(void);
|
|
void disable_wdog_timer(void);
|
|
|
|
extern unsigned long get_cclk(void);
|
|
extern unsigned long get_sclk(void);
|
|
|
|
struct bfin_dpmc_platform_data {
|
|
const unsigned int *tuple_tab;
|
|
unsigned short tabsize;
|
|
unsigned short vr_settling_time; /* in us */
|
|
};
|
|
|
|
#define VRPAIR(vlev, freq) (((vlev) << 16) | ((freq) >> 16))
|
|
|
|
#endif /* __KERNEL__ */
|
|
|
|
#endif /*_BLACKFIN_DPMC_H_*/
|