VSF Documented
Data Structures | Macros | Typedefs | Functions
pwm.c File Reference
#include "../driver.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/pwm/reg_pwm.h"
#include "./i_reg_pwm.h"
#include "hal/driver/common/pwm/pwm_template.inc"

Data Structures

struct  vsf_hw_pwm_t
 

Macros

#define VSF_HW_PWM_CFG_MULTI_CLASS   VSF_PWM_CFG_MULTI_CLASS
 
#define PWM_PWM_TMR_SEL(n)   (((n) & 3) << 16)
 
#define PWM_MAX_FREQ   (26ul * 1000 * 1000)
 
#define VSF_PWM_CFG_CAPABILITY_MIN_FREQ   (PWM_MAX_FREQ / 255)
 
#define VSF_PWM_CFG_CAPABILITY_MAX_FREQ   (PWM_MAX_FREQ)
 
#define VSF_PWM_CFG_IMP_PREFIX   vsf_hw
 
#define VSF_PWM_CFG_IMP_UPCASE_PREFIX   VSF_HW
 
#define VSF_PWM_CFG_IMP_LV0(__IDX, __HAL_OP)
 

Typedefs

typedef struct vsf_hw_pwm_t vsf_hw_pwm_t
 

Functions

vsf_err_t vsf_hw_pwm_init (vsf_hw_pwm_t *hw_pwm_ptr, vsf_pwm_cfg_t *cfg_ptr)
 
void vsf_hw_pwm_fini (vsf_hw_pwm_t *hw_pwm_ptr)
 
fsm_rt_t vsf_hw_pwm_enable (vsf_hw_pwm_t *hw_pwm_ptr)
 
fsm_rt_t vsf_hw_pwm_disable (vsf_hw_pwm_t *hw_pwm_ptr)
 
vsf_err_t vsf_hw_pwm_set (vsf_hw_pwm_t *hw_pwm_ptr, uint8_t channel, uint32_t period, uint32_t pulse)
 
uint32_t vsf_hw_pwm_get_freq (vsf_hw_pwm_t *hw_pwm_ptr)
 

Macro Definition Documentation

◆ VSF_HW_PWM_CFG_MULTI_CLASS

#define VSF_HW_PWM_CFG_MULTI_CLASS   VSF_PWM_CFG_MULTI_CLASS

◆ PWM_PWM_TMR_SEL

#define PWM_PWM_TMR_SEL (   n)    (((n) & 3) << 16)

◆ PWM_MAX_FREQ

#define PWM_MAX_FREQ   (26ul * 1000 * 1000)

◆ VSF_PWM_CFG_CAPABILITY_MIN_FREQ

#define VSF_PWM_CFG_CAPABILITY_MIN_FREQ   (PWM_MAX_FREQ / 255)

◆ VSF_PWM_CFG_CAPABILITY_MAX_FREQ

#define VSF_PWM_CFG_CAPABILITY_MAX_FREQ   (PWM_MAX_FREQ)

◆ VSF_PWM_CFG_IMP_PREFIX

#define VSF_PWM_CFG_IMP_PREFIX   vsf_hw

◆ VSF_PWM_CFG_IMP_UPCASE_PREFIX

#define VSF_PWM_CFG_IMP_UPCASE_PREFIX   VSF_HW

◆ VSF_PWM_CFG_IMP_LV0

#define VSF_PWM_CFG_IMP_LV0 (   __IDX,
  __HAL_OP 
)
Value:
vsf_hw_pwm_t vsf_hw_pwm ## __IDX = { \
.reg = (PWM_REG_T *)VSF_HW_PWM ##__IDX ##_BASE_ADDRESS, \
__HAL_OP \
};
Definition i_reg_pwm.h:130
Definition pwm.c:41
PWM_REG_T * reg
Definition pwm.c:46

Typedef Documentation

◆ vsf_hw_pwm_t

typedef struct vsf_hw_pwm_t vsf_hw_pwm_t

Function Documentation

◆ vsf_hw_pwm_init()

vsf_err_t vsf_hw_pwm_init ( vsf_hw_pwm_t hw_pwm_ptr,
vsf_pwm_cfg_t cfg_ptr 
)

◆ vsf_hw_pwm_fini()

void vsf_hw_pwm_fini ( vsf_hw_pwm_t hw_pwm_ptr)

◆ vsf_hw_pwm_enable()

fsm_rt_t vsf_hw_pwm_enable ( vsf_hw_pwm_t hw_pwm_ptr)

◆ vsf_hw_pwm_disable()

fsm_rt_t vsf_hw_pwm_disable ( vsf_hw_pwm_t hw_pwm_ptr)

◆ vsf_hw_pwm_set()

vsf_err_t vsf_hw_pwm_set ( vsf_hw_pwm_t hw_pwm_ptr,
uint8_t  channel,
uint32_t  period,
uint32_t  pulse 
)

◆ vsf_hw_pwm_get_freq()

uint32_t vsf_hw_pwm_get_freq ( vsf_hw_pwm_t hw_pwm_ptr)