bsp_ustimer.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**************************************************************************//**
  2. * @file bsp_ustimer.h
  3. * @brief TIMER register definition header file
  4. *
  5. * SPDX-License-Identifier: Apache-2.0
  6. * @copyright (C) 2024-2034 HaiYang Technology Corp. All rights reserved.
  7. *****************************************************************************/
  8. #ifndef __BSP_US_TIMER_H__
  9. #define __BSP_US_TIMER_H__
  10. #include <linux/types.h>
  11. #define TIMER_BASE (0x03008000UL)
  12. #define TIMER_VH_OFFSET 32
  13. #define TIMER_VL_MASK 0xFFFFFFFF
  14. #define TIMER_VH_MASK 0xFFFFFF
  15. #define TIMER_IRQ_EN_REG 0x00
  16. #define TIMER_IRQ_EN(val) (1 << val)
  17. #define TIMER_IRQ_ST_REG 0x04
  18. #define TIMER_IRQ_ST(val) (1 << val)
  19. #define TIMER_CTL_REG(val) (0x10 * val + 0x10)
  20. #define TIMER_CTL_ENABLE (1 << 0)
  21. #define TIMER_CTL_AUTORELOAD (1 << 1)
  22. #define TIMER_CTL_MODE_MASK (1 << 7)
  23. #define TIMER_CTL_PERIODIC (0 << 7)
  24. #define TIMER_CTL_ONESHOT (1 << 7)
  25. #define TIMER_INTVAL_REG(val) (0x10 * val + 0x14)
  26. #define TIMER_CNTVAL_REG(val) (0x10 * val + 0x18)
  27. #define BSP_USTIMER_US 1
  28. #define BSP_USTIMER_MS (1000*BSP_USTIMER_US)
  29. #define BSP_USTIMER_SEC (1000*BSP_USTIMER_US)
  30. int bsp_ustimer_init(void);
  31. int bsp_ustimer_exit(void);
  32. unsigned long bsp_ustimer_get_origin(void);
  33. unsigned long bsp_ustimer_delay(unsigned long us);
  34. unsigned long bsp_ustimer_delay_origin(unsigned long origin,unsigned long us);
  35. unsigned long bsp_ustimer_get_duration(unsigned long origin);
  36. #endif