VSF Documented
Data Structures | Macros | Typedefs | Functions
timer.c File Reference
#include "../driver.h"
#include "hal/vsf_hal.h"
#include "hal/driver/AIC/AIC8800/vendor/plf/aic8800/src/driver/pmic/pmic_api.h"
#include "hal/driver/AIC/AIC8800/vendor/plf/aic8800/src/driver/sysctrl/sysctrl_api.h"
#include "hal/driver/AIC/AIC8800/vendor/plf/aic8800/src/driver/ticker/reg_timer.h"
#include "hal/driver/common/timer/timer_template.inc"

Data Structures

struct  AIC_TIM_REG_T
 
struct  vsf_hw_timer_const_t
 
struct  vsf_hw_timer_t
 

Macros

#define VSF_HW_TIMER_CFG_MULTI_CLASS   VSF_TIMER_CFG_MULTI_CLASS
 
#define TIMER_CLOCK_FREQ   (26000000U)
 
#define VSF_TIMER_CFG_CAPABILITY_IRQ_MASK   VSF_TIMER_IRQ_ALL_BITS_MASK
 
#define VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN   32
 
#define VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM   0
 
#define VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT   0
 
#define VSF_TIMER_CFG_IMP_PREFIX   vsf_hw
 
#define VSF_TIMER_CFG_IMP_UPCASE_PREFIX   VSF_HW
 
#define VSF_TIMER_CFG_IMP_LV0(__IDX, __HAL_OP)
 

Typedefs

typedef struct AIC_TIM_REG_T AIC_TIM_REG_T
 
typedef struct vsf_hw_timer_const_t vsf_hw_timer_const_t
 
typedef struct vsf_hw_timer_t vsf_hw_timer_t
 

Functions

vsf_err_t vsf_hw_timer_init (vsf_hw_timer_t *timer_ptr, vsf_timer_cfg_t *cfg_ptr)
 
void vsf_hw_timer_fini (vsf_hw_timer_t *timer_ptr)
 
fsm_rt_t vsf_hw_timer_enable (vsf_hw_timer_t *timer_ptr)
 
fsm_rt_t vsf_hw_timer_disable (vsf_hw_timer_t *timer_ptr)
 
void vsf_hw_timer_irq_enable (vsf_hw_timer_t *timer_ptr, vsf_timer_irq_mask_t irq_mask)
 
void vsf_hw_timer_irq_disable (vsf_hw_timer_t *timer_ptr, vsf_timer_irq_mask_t irq_mask)
 
vsf_err_t vsf_hw_timer_set_period (vsf_hw_timer_t *timer_ptr, uint32_t period)
 

Macro Definition Documentation

◆ VSF_HW_TIMER_CFG_MULTI_CLASS

#define VSF_HW_TIMER_CFG_MULTI_CLASS   VSF_TIMER_CFG_MULTI_CLASS

◆ TIMER_CLOCK_FREQ

#define TIMER_CLOCK_FREQ   (26000000U)

◆ VSF_TIMER_CFG_CAPABILITY_IRQ_MASK

#define VSF_TIMER_CFG_CAPABILITY_IRQ_MASK   VSF_TIMER_IRQ_ALL_BITS_MASK

◆ VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN

#define VSF_TIMER_CFG_CAPABILITY_TIMER_BITLEN   32

◆ VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM

#define VSF_TIMER_CFG_CAPABILITY_SUPPORT_PWM   0

◆ VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT

#define VSF_TIMER_CFG_CAPABILITY_PWM_CHANNEL_CNT   0

◆ VSF_TIMER_CFG_IMP_PREFIX

#define VSF_TIMER_CFG_IMP_PREFIX   vsf_hw

◆ VSF_TIMER_CFG_IMP_UPCASE_PREFIX

#define VSF_TIMER_CFG_IMP_UPCASE_PREFIX   VSF_HW

◆ VSF_TIMER_CFG_IMP_LV0

#define VSF_TIMER_CFG_IMP_LV0 (   __IDX,
  __HAL_OP 
)
Value:
static const vsf_hw_timer_const_t __vsf_hw_timer ## __IDX ## _const = { \
.reg = (AIC_TIM_REG_T *)VSF_HW_TIMER ## __IDX ## _BASE_ADDRESS, \
.irqn = VSF_HW_TIMER ## __IDX ## _IRQN, \
.pclk = VSF_HW_TIMER ## __IDX ## _PCLK_EN_BIT, \
.oclk = VSF_HW_TIMER ## __IDX ## _OCLK_EN_BIT, \
}; \
vsf_hw_timer_t vsf_hw_timer ## __IDX = { \
.timer_const = &__vsf_hw_timer ## __IDX ## _const, \
__HAL_OP \
}; \
void VSF_HW_TIMER ## __IDX ## _IRQHandler(void) \
{ \
__vsf_hw_timer_irq_handler(&vsf_hw_timer ## __IDX); \
vsf_hal_irq_leave(ctx); \
}
uint32_t uintptr_t
Definition stdint.h:38
Definition timer.c:39
Definition timer.c:50
AIC_TIM_REG_T * reg
Definition timer.c:51
Definition timer.c:59
const vsf_hw_timer_const_t * timer_const
Definition timer.c:64
uintptr_t vsf_hal_irq_enter(void)
Definition vsf_hal.c:59

Typedef Documentation

◆ AIC_TIM_REG_T

typedef struct AIC_TIM_REG_T AIC_TIM_REG_T

◆ vsf_hw_timer_const_t

◆ vsf_hw_timer_t

Function Documentation

◆ vsf_hw_timer_init()

vsf_err_t vsf_hw_timer_init ( vsf_hw_timer_t timer_ptr,
vsf_timer_cfg_t cfg_ptr 
)

◆ vsf_hw_timer_fini()

void vsf_hw_timer_fini ( vsf_hw_timer_t timer_ptr)

◆ vsf_hw_timer_enable()

fsm_rt_t vsf_hw_timer_enable ( vsf_hw_timer_t timer_ptr)

◆ vsf_hw_timer_disable()

fsm_rt_t vsf_hw_timer_disable ( vsf_hw_timer_t timer_ptr)

◆ vsf_hw_timer_irq_enable()

void vsf_hw_timer_irq_enable ( vsf_hw_timer_t timer_ptr,
vsf_timer_irq_mask_t  irq_mask 
)

◆ vsf_hw_timer_irq_disable()

void vsf_hw_timer_irq_disable ( vsf_hw_timer_t timer_ptr,
vsf_timer_irq_mask_t  irq_mask 
)

◆ vsf_hw_timer_set_period()

vsf_err_t vsf_hw_timer_set_period ( vsf_hw_timer_t timer_ptr,
uint32_t  period 
)