ustimer.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /**************************************************************************//**
  2. * @file 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 __US_TIMER_H__
  9. #define __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. int ustimer_init(void);
  28. int ustimer_exit(void);
  29. unsigned long ustimer_get_origin(void);
  30. #endif