dpmc.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. #define SLEEP_MODE 1
  10. #define DEEP_SLEEP_MODE 2
  11. #define ACTIVE_PLL_DISABLED 3
  12. #define FULLON_MODE 4
  13. #define ACTIVE_PLL_ENABLED 5
  14. #define HIBERNATE_MODE 6
  15. #define IOCTL_FULL_ON_MODE _IO('s', 0xA0)
  16. #define IOCTL_ACTIVE_MODE _IO('s', 0xA1)
  17. #define IOCTL_SLEEP_MODE _IO('s', 0xA2)
  18. #define IOCTL_DEEP_SLEEP_MODE _IO('s', 0xA3)
  19. #define IOCTL_HIBERNATE_MODE _IO('s', 0xA4)
  20. #define IOCTL_CHANGE_FREQUENCY _IOW('s', 0xA5, unsigned long)
  21. #define IOCTL_CHANGE_VOLTAGE _IOW('s', 0xA6, unsigned long)
  22. #define IOCTL_SET_CCLK _IOW('s', 0xA7, unsigned long)
  23. #define IOCTL_SET_SCLK _IOW('s', 0xA8, unsigned long)
  24. #define IOCTL_GET_PLLSTATUS _IOW('s', 0xA9, unsigned long)
  25. #define IOCTL_GET_CORECLOCK _IOW('s', 0xAA, unsigned long)
  26. #define IOCTL_GET_SYSTEMCLOCK _IOW('s', 0xAB, unsigned long)
  27. #define IOCTL_GET_VCO _IOW('s', 0xAC, unsigned long)
  28. #define IOCTL_DISABLE_WDOG_TIMER _IO('s', 0xAD)
  29. #define IOCTL_UNMASK_WDOG_WAKEUP_EVENT _IO('s',0xAE)
  30. #define IOCTL_PROGRAM_WDOG_TIMER _IOW('s',0xAF,unsigned long)
  31. #define IOCTL_CLEAR_WDOG_WAKEUP_EVENT _IO('s',0xB0)
  32. #define IOCTL_SLEEP_DEEPER_MODE _IO('s',0xB1)
  33. #define DPMC_MINOR 254
  34. #define ON 0
  35. #define OFF 1
  36. #ifdef __KERNEL__
  37. unsigned long calc_volt(void);
  38. int calc_vlev(int vlt);
  39. unsigned long change_voltage(unsigned long volt);
  40. int calc_msel(int vco_hz);
  41. unsigned long change_frequency(unsigned long vco_mhz);
  42. int set_pll_div(unsigned short sel, unsigned char flag);
  43. int get_vco(void);
  44. unsigned long change_system_clock(unsigned long clock);
  45. unsigned long change_core_clock(unsigned long clock);
  46. unsigned long get_pll_status(void);
  47. void change_baud(int baud);
  48. void fullon_mode(void);
  49. void active_mode(void);
  50. void sleep_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
  51. void deep_sleep(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
  52. void hibernate_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
  53. void sleep_deeper(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
  54. void program_wdog_timer(unsigned long);
  55. void unmask_wdog_wakeup_evt(void);
  56. void clear_wdog_wakeup_evt(void);
  57. void disable_wdog_timer(void);
  58. extern unsigned long get_cclk(void);
  59. extern unsigned long get_sclk(void);
  60. struct bfin_dpmc_platform_data {
  61. const unsigned int *tuple_tab;
  62. unsigned short tabsize;
  63. unsigned short vr_settling_time; /* in us */
  64. };
  65. #define VRPAIR(vlev, freq) (((vlev) << 16) | ((freq) >> 16))
  66. #endif /* __KERNEL__ */
  67. #endif /*_BLACKFIN_DPMC_H_*/