mt_pwm_hal_pub.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * This program is distributed and in hope it will be useful, but WITHOUT
  3. * ANY WARRNTY; without even the implied warranty of MERCHANTABITLITY or
  4. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  5. * more details.
  6. *
  7. *
  8. ********************************************************************************
  9. * Author : Chagnlei Gao (changlei.gao@mediatek.com)
  10. ********************************************************************************
  11. */
  12. #ifndef __MT_PWM_HAL_PUB_H__
  13. #define __MT_PWM_HAL_PUB_H__
  14. #include <linux/types.h>
  15. #include <linux/platform_device.h>
  16. /*********************************
  17. * Define Error Number
  18. **********************************/
  19. #define RSUCCESS 0
  20. #define EEXCESSPWMNO 1
  21. #define EPARMNOSUPPORT 2
  22. #define ERROR 3
  23. #define EBADADDR 4
  24. #define EEXCESSBITS 5
  25. #define EINVALID 6
  26. #define PWM_DEBUG
  27. #ifdef PWM_DEBUG
  28. #define PWMDBG(fmt, args ...) pr_debug("pwm %5d: " fmt, __LINE__, ##args)
  29. #else
  30. #define PWMDBG(fmt, args ...)
  31. #endif
  32. #define PWMMSG(fmt, args ...) pr_debug(fmt, ##args)
  33. #define PWM_DEVICE "mt-pwm"
  34. #if !defined(CONFIG_MTK_LEGACY)
  35. #ifdef CONFIG_OF
  36. extern void __iomem *pwm_base;
  37. #endif
  38. #endif
  39. void mt_pwm_power_on_hal(uint32_t pwm_no, bool pmic_pad, unsigned long *power_flag);
  40. void mt_pwm_power_off_hal(uint32_t pwm_no, bool pmic_pad, unsigned long *power_flag);
  41. void mt_pwm_init_power_flag(unsigned long *power_flag);
  42. int32_t mt_pwm_sel_pmic_hal(uint32_t pwm_no);
  43. int32_t mt_pwm_sel_ap_hal(uint32_t pwm_no);
  44. void mt_set_pwm_enable_hal(uint32_t pwm_no);
  45. void mt_set_pwm_disable_hal(uint32_t pwm_no);
  46. void mt_set_pwm_enable_seqmode_hal(void);
  47. void mt_set_pwm_disable_seqmode_hal(void);
  48. int32_t mt_set_pwm_test_sel_hal(uint32_t val);
  49. void mt_set_pwm_clk_hal(uint32_t pwm_no, uint32_t clksrc, uint32_t div);
  50. int32_t mt_get_pwm_clk_hal(uint32_t pwm_no);
  51. int32_t mt_set_pwm_con_datasrc_hal(uint32_t pwm_no, uint32_t val);
  52. int32_t mt_set_pwm_con_mode_hal(uint32_t pwm_no, uint32_t val);
  53. int32_t mt_set_pwm_con_idleval_hal(uint32_t pwm_no, uint16_t val);
  54. int32_t mt_set_pwm_con_guardval_hal(uint32_t pwm_no, uint16_t val);
  55. void mt_set_pwm_con_stpbit_hal(uint32_t pwm_no, uint32_t stpbit, uint32_t srcsel);
  56. int32_t mt_set_pwm_con_oldmode_hal(uint32_t pwm_no, uint32_t val);
  57. void mt_set_pwm_HiDur_hal(uint32_t pwm_no, uint16_t DurVal);
  58. void mt_set_pwm_LowDur_hal(uint32_t pwm_no, uint16_t DurVal);
  59. void mt_set_pwm_GuardDur_hal(uint32_t pwm_no, uint16_t DurVal);
  60. void mt_set_pwm_send_data0_hal(uint32_t pwm_no, uint32_t data);
  61. void mt_set_pwm_send_data1_hal(uint32_t pwm_no, uint32_t data);
  62. void mt_set_pwm_wave_num_hal(uint32_t pwm_no, uint16_t num);
  63. void mt_set_pwm_data_width_hal(uint32_t pwm_no, uint16_t width);
  64. void mt_set_pwm_thresh_hal(uint32_t pwm_no, uint16_t thresh);
  65. int32_t mt_get_pwm_send_wavenum_hal(uint32_t pwm_no);
  66. void mt_set_intr_enable_hal(uint32_t pwm_intr_enable_bit);
  67. int32_t mt_get_intr_status_hal(uint32_t pwm_intr_status_bit);
  68. void mt_set_intr_ack_hal(uint32_t pwm_intr_ack_bit);
  69. void mt_pwm_dump_regs_hal(void);
  70. void pwm_debug_store_hal(void);
  71. void pwm_debug_show_hal(void);
  72. void mt_set_pwm_buf0_addr_hal(uint32_t pwm_no, uint32_t *addr);
  73. void mt_set_pwm_buf0_size_hal(uint32_t pwm_no, uint16_t size);
  74. int mt_get_pwm_clk_src(struct platform_device *pdev);
  75. #endif