db5500-prcmu.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. /*
  2. * Copyright (C) ST-Ericsson SA 2010
  3. *
  4. * License Terms: GNU General Public License v2
  5. *
  6. * U5500 PRCMU API.
  7. */
  8. #ifndef __MFD_DB5500_PRCMU_H
  9. #define __MFD_DB5500_PRCMU_H
  10. #ifdef CONFIG_MFD_DB5500_PRCMU
  11. void db5500_prcmu_early_init(void);
  12. int db5500_prcmu_set_epod(u16 epod_id, u8 epod_state);
  13. int db5500_prcmu_set_display_clocks(void);
  14. int db5500_prcmu_disable_dsipll(void);
  15. int db5500_prcmu_enable_dsipll(void);
  16. int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size);
  17. int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size);
  18. void db5500_prcmu_enable_wakeups(u32 wakeups);
  19. int db5500_prcmu_request_clock(u8 clock, bool enable);
  20. void db5500_prcmu_config_abb_event_readout(u32 abb_events);
  21. void db5500_prcmu_get_abb_event_buffer(void __iomem **buf);
  22. int prcmu_resetout(u8 resoutn, u8 state);
  23. int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk,
  24. bool keep_ap_pll);
  25. int db5500_prcmu_config_esram0_deep_sleep(u8 state);
  26. void db5500_prcmu_system_reset(u16 reset_code);
  27. u16 db5500_prcmu_get_reset_code(void);
  28. bool db5500_prcmu_is_ac_wake_requested(void);
  29. int db5500_prcmu_set_arm_opp(u8 opp);
  30. int db5500_prcmu_get_arm_opp(void);
  31. #else /* !CONFIG_UX500_SOC_DB5500 */
  32. static inline void db5500_prcmu_early_init(void) {}
  33. static inline int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size)
  34. {
  35. return -ENOSYS;
  36. }
  37. static inline int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size)
  38. {
  39. return -ENOSYS;
  40. }
  41. static inline int db5500_prcmu_request_clock(u8 clock, bool enable)
  42. {
  43. return 0;
  44. }
  45. static inline int db5500_prcmu_set_display_clocks(void)
  46. {
  47. return 0;
  48. }
  49. static inline int db5500_prcmu_disable_dsipll(void)
  50. {
  51. return 0;
  52. }
  53. static inline int db5500_prcmu_enable_dsipll(void)
  54. {
  55. return 0;
  56. }
  57. static inline int db5500_prcmu_config_esram0_deep_sleep(u8 state)
  58. {
  59. return 0;
  60. }
  61. static inline void db5500_prcmu_enable_wakeups(u32 wakeups) {}
  62. static inline int prcmu_resetout(u8 resoutn, u8 state)
  63. {
  64. return 0;
  65. }
  66. static inline int db5500_prcmu_set_epod(u16 epod_id, u8 epod_state)
  67. {
  68. return 0;
  69. }
  70. static inline void db5500_prcmu_get_abb_event_buffer(void __iomem **buf) {}
  71. static inline void db5500_prcmu_config_abb_event_readout(u32 abb_events) {}
  72. static inline int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk,
  73. bool keep_ap_pll)
  74. {
  75. return 0;
  76. }
  77. static inline void db5500_prcmu_system_reset(u16 reset_code) {}
  78. static inline u16 db5500_prcmu_get_reset_code(void)
  79. {
  80. return 0;
  81. }
  82. static inline bool db5500_prcmu_is_ac_wake_requested(void)
  83. {
  84. return 0;
  85. }
  86. static inline int db5500_prcmu_set_arm_opp(u8 opp)
  87. {
  88. return 0;
  89. }
  90. static inline int db5500_prcmu_get_arm_opp(void)
  91. {
  92. return 0;
  93. }
  94. #endif /* CONFIG_MFD_DB5500_PRCMU */
  95. #endif /* __MFD_DB5500_PRCMU_H */