22 #define PWM_V1_CH_MAX 5 30 #define PWM_INTSTS_REPT_CH0 (1 << 0) 31 #define PWM_INTSTS_REPT_CH1 (1 << 1) 32 #define PWM_INTSTS_REPT_CH2 (1 << 2) 33 #define PWM_INTSTS_REPT_CH3 (1 << 3) 34 #define PWM_INTSTS_REPT_CH4 (1 << 4) 42 #define PWM_INTCLR_REPT_CH0 (1 << 8) 43 #define PWM_INTCLR_REPT_CH1 (1 << 9) 44 #define PWM_INTCLR_REPT_CH2 (1 << 10) 45 #define PWM_INTCLR_REPT_CH3 (1 << 11) 46 #define PWM_INTCLR_REPT_CH4 (1 << 12) 54 #define PWM_CMD_SET_STOP_MODE (0x01) 55 #define PWM_CMD_SET_OUT_INVERT (0x02) 56 #define PWM_CMD_SET_SW_MODE (0x03) 57 #define PWM_CMD_SET_SW_FORCE_VALUE (0x04) 58 #define PWM_CMD_SET_REPT_COUNT (0x05) 66 #define PWM_STOP_MODE_ABRUPT 0 67 #define PWM_STOP_MODE_GRACEFUL 1 void bflb_pwm_v1_channel_set_threshold(struct bflb_device_s *dev, uint8_t ch, uint16_t low_threhold, uint16_t high_threhold)
Set pwm dutycycle. Dutycycle(%) = (high_threhold - low_threhold)/period * 100%.
void bflb_pwm_v1_int_clear(struct bflb_device_s *dev, uint32_t int_clear)
Clear pwm interrupt status.
void bflb_pwm_v1_channel_deinit(struct bflb_device_s *dev, uint8_t ch)
Deinitialize pwm channel.
void bflb_pwm_v1_set_period(struct bflb_device_s *dev, uint8_t ch, uint16_t period)
Set pwm channel period to change pwm frequence. Frequcence(hz) = pwm source clock /div/period...
void bflb_pwm_v1_stop(struct bflb_device_s *dev, uint8_t ch)
Stop pwm channel output.
void bflb_pwm_v1_start(struct bflb_device_s *dev, uint8_t ch)
Start pwm channel output.
PWM configuration structure.
void bflb_pwm_v1_channel_init(struct bflb_device_s *dev, uint8_t ch, const struct bflb_pwm_v1_channel_config_s *config)
Initialize pwm channel.
uint32_t bflb_pwm_v1_get_intstatus(struct bflb_device_s *dev)
Get pwm interrupt status.
int bflb_pwm_v1_feature_control(struct bflb_device_s *dev, uint8_t ch, int cmd, size_t arg)
void bflb_pwm_v1_int_enable(struct bflb_device_s *dev, uint8_t ch, bool enable)
Enable pwm interrupt.