VSF Documented
Data Structures | Macros | Typedefs | Functions
aic_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 "hal/driver/common/pwm/pwm_template.inc"

Data Structures

struct  vsf_aic_pwm_const_t
 
struct  vsf_aic_pwm_t
 

Macros

#define AIC_PWM_REG(__N)    ((__IO uint32_t *)((uint32_t)&AIC_PWM->__N + hw_pwm_ptr->index * 0x10))
 
#define VSF_HW_PWM_CFG_MULTI_CLASS   VSF_PWM_CFG_MULTI_CLASS
 
#define AIC_PWM_CLOCK   (32 * 1000)
 
#define VSF_PWM_CFG_CAPABILITY_MAX_FREQ   AIC_PWM_CLOCK
 
#define VSF_PWM_CFG_CAPABILITY_MIN_FREQ   (AIC_PWM_CLOCK / 256)
 
#define VSF_PWM_CFG_IMP_PREFIX   vsf_aic
 
#define VSF_PWM_CFG_IMP_UPCASE_PREFIX   VSF_AIC
 
#define VSF_PWM_CFG_IMP_LV0(__IDX, __HAL_OP)
 

Typedefs

typedef struct vsf_aic_pwm_const_t vsf_aic_pwm_const_t
 
typedef struct vsf_aic_pwm_t vsf_aic_pwm_t
 

Functions

vsf_err_t vsf_aic_pwm_init (vsf_aic_pwm_t *hw_pwm_ptr, vsf_pwm_cfg_t *cfg_ptr)
 
fsm_rt_t vsf_aic_pwm_enable (vsf_aic_pwm_t *hw_pwm_ptr)
 
fsm_rt_t vsf_aic_pwm_disable (vsf_aic_pwm_t *hw_pwm_ptr)
 
vsf_err_t vsf_aic_pwm_set (vsf_aic_pwm_t *hw_pwm_ptr, uint8_t channel, uint32_t period, uint32_t pulse)
 
uint32_t vsf_aic_pwm_get_freq (vsf_aic_pwm_t *hw_pwm_ptr)
 

Macro Definition Documentation

◆ AIC_PWM_REG

#define AIC_PWM_REG (   __N)     ((__IO uint32_t *)((uint32_t)&AIC_PWM->__N + hw_pwm_ptr->index * 0x10))

◆ VSF_HW_PWM_CFG_MULTI_CLASS

#define VSF_HW_PWM_CFG_MULTI_CLASS   VSF_PWM_CFG_MULTI_CLASS

◆ AIC_PWM_CLOCK

#define AIC_PWM_CLOCK   (32 * 1000)

◆ VSF_PWM_CFG_CAPABILITY_MAX_FREQ

#define VSF_PWM_CFG_CAPABILITY_MAX_FREQ   AIC_PWM_CLOCK

◆ VSF_PWM_CFG_CAPABILITY_MIN_FREQ

#define VSF_PWM_CFG_CAPABILITY_MIN_FREQ   (AIC_PWM_CLOCK / 256)

◆ VSF_PWM_CFG_IMP_PREFIX

#define VSF_PWM_CFG_IMP_PREFIX   vsf_aic

◆ VSF_PWM_CFG_IMP_UPCASE_PREFIX

#define VSF_PWM_CFG_IMP_UPCASE_PREFIX   VSF_AIC

◆ VSF_PWM_CFG_IMP_LV0

#define VSF_PWM_CFG_IMP_LV0 (   __IDX,
  __HAL_OP 
)
Value:
static const vsf_aic_pwm_const_t vsf_aic_pwm ## __IDX ## _const= { \
.max_chn_cnt = VSF_AIC_PWM ## __IDX ## _CHANNAL_COUNT, \
.pclk_mask = CSC_PCLKME_PWM_EN_BIT, \
.oclk_mask = CSC_OCLKME_PWM_EN_BIT, \
}; \
vsf_aic_pwm_t vsf_aic_pwm ## __IDX = { \
.index = __IDX, \
.pwm_const = &vsf_aic_pwm ## __IDX ## _const, \
__HAL_OP \
};
Definition aic_pwm.c:42
uint8_t max_chn_cnt
Definition aic_pwm.c:43
Definition aic_pwm.c:49
uint8_t index
Definition aic_pwm.c:53

Typedef Documentation

◆ vsf_aic_pwm_const_t

◆ vsf_aic_pwm_t

typedef struct vsf_aic_pwm_t vsf_aic_pwm_t

Function Documentation

◆ vsf_aic_pwm_init()

vsf_err_t vsf_aic_pwm_init ( vsf_aic_pwm_t hw_pwm_ptr,
vsf_pwm_cfg_t cfg_ptr 
)

◆ vsf_aic_pwm_enable()

fsm_rt_t vsf_aic_pwm_enable ( vsf_aic_pwm_t hw_pwm_ptr)

◆ vsf_aic_pwm_disable()

fsm_rt_t vsf_aic_pwm_disable ( vsf_aic_pwm_t hw_pwm_ptr)

◆ vsf_aic_pwm_set()

vsf_err_t vsf_aic_pwm_set ( vsf_aic_pwm_t hw_pwm_ptr,
uint8_t  channel,
uint32_t  period,
uint32_t  pulse 
)

◆ vsf_aic_pwm_get_freq()

uint32_t vsf_aic_pwm_get_freq ( vsf_aic_pwm_t hw_pwm_ptr)