12 #include "hpm_pdm_regs.h"
24 #define PDM_EVENT_FILT_CRX_ERROR (PDM_ST_FILT_CRX_ERR_MASK)
25 #define PDM_EVENT_OFIFO_OVERFLOW_ERROR (PDM_ST_OFIFO_OVFL_ERR_MASK)
26 #define PDM_EVENT_CIC_OVERLOAD_ERROR (PDM_ST_CIC_OVLD_ERR_MASK)
27 #define PDM_EVENT_CIC_SAT_ERROR (PDM_ST_CIC_SAT_ERR_MASK)
32 #define PDM_CIC_SIGMA_DELTA_ORDER_5 (2U)
33 #define PDM_CIC_SIGMA_DELTA_ORDER_6 (1U)
34 #define PDM_CIC_SIGMA_DELTA_ORDER_7 (0U)
129 uint16_t channel_disable_mask)
142 uint16_t capture_high_level_mask,
143 uint16_t channel_enable_mask)
178 uint8_t sigma_delta_order,
#define PDM_CIC_CFG_POST_SCALE_SET(x)
Definition: hpm_pdm_regs.h:333
#define PDM_CTRL_CIC_SAT_ERR_IE_SHIFT
Definition: hpm_pdm_regs.h:99
#define PDM_CH_CTRL_CH_POL_SET(x)
Definition: hpm_pdm_regs.h:175
#define PDM_CTRL_PDM_CLK_OE_MASK
Definition: hpm_pdm_regs.h:152
#define PDM_CIC_CFG_SGD_SET(x)
Definition: hpm_pdm_regs.h:347
#define PDM_CIC_CFG_CIC_DEC_RATIO_SET(x)
Definition: hpm_pdm_regs.h:357
#define PDM_CTRL_HPF_EN_MASK
Definition: hpm_pdm_regs.h:162
#define PDM_CH_CTRL_CH_EN_SET(x)
Definition: hpm_pdm_regs.h:187
#define PDM_CTRL_SFTRST_MASK
Definition: hpm_pdm_regs.h:35
#define PDM_ST_CIC_SAT_ERR_SHIFT
Definition: hpm_pdm_regs.h:227
#define PDM_HPF_B_COEF_SET(x)
Definition: hpm_pdm_regs.h:486
#define PDM_RUN_PDM_EN_MASK
Definition: hpm_pdm_regs.h:439
#define PDM_HPF_MA_COEF_SET(x)
Definition: hpm_pdm_regs.h:475
uint32_t hpm_stat_t
Definition: hpm_common.h:126
static void pdm_enable_channel(PDM_Type *ptr, uint16_t capture_high_level_mask, uint16_t channel_enable_mask)
enable channel
Definition: hpm_pdm_drv.h:141
static void pdm_enable_hpf(PDM_Type *ptr)
enable high pass filter
Definition: hpm_pdm_drv.h:76
static void pdm_disable_pdm_clock_out(PDM_Type *ptr)
disable pdm clock out
Definition: hpm_pdm_drv.h:154
static void pdm_stop(PDM_Type *ptr)
stop pdm
Definition: hpm_pdm_drv.h:107
static void pdm_disable_channel(PDM_Type *ptr, uint16_t channel_disable_mask)
disable channel
Definition: hpm_pdm_drv.h:128
static void pdm_enable_irq(PDM_Type *ptr, uint8_t mask)
pdm enable irq
Definition: hpm_pdm_drv.h:204
static void pdm_config_hpf(PDM_Type *ptr, uint32_t hpf_coef_ma, uint32_t hpf_coef_b)
config high pass filter
Definition: hpm_pdm_drv.h:63
static void pdm_config_cic(PDM_Type *ptr, uint8_t sigma_delta_order, uint8_t div, uint8_t post_scale)
pdm config cic
Definition: hpm_pdm_drv.h:177
struct pdm_config pdm_config_t
PDM config.
hpm_stat_t pdm_init(PDM_Type *ptr, pdm_config_t *config)
pdm initialization
Definition: hpm_pdm_drv.c:25
static void pdm_disable_hpf(PDM_Type *ptr)
disable high pass filter
Definition: hpm_pdm_drv.h:86
static void pdm_enable_pdm_clock_out(PDM_Type *ptr)
enable pdm clock out
Definition: hpm_pdm_drv.h:164
void pdm_get_default_config(PDM_Type *ptr, pdm_config_t *config)
pdm get default config
Definition: hpm_pdm_drv.c:10
static void pdm_start(PDM_Type *ptr)
start pdm
Definition: hpm_pdm_drv.h:117
static void pdm_disable_irq(PDM_Type *ptr, uint8_t mask)
pdm disable irq
Definition: hpm_pdm_drv.h:215
static bool pdm_is_running(PDM_Type *ptr)
check whether PDM is running
Definition: hpm_pdm_drv.h:97
static void pdm_software_reset(PDM_Type *ptr)
pdm software reset
Definition: hpm_pdm_drv.h:192
Definition: hpm_pdm_regs.h:12
__RW uint32_t CH_CTRL
Definition: hpm_pdm_regs.h:14
__RW uint32_t HPF_MA
Definition: hpm_pdm_regs.h:24
__RW uint32_t HPF_B
Definition: hpm_pdm_regs.h:25
__RW uint32_t RUN
Definition: hpm_pdm_regs.h:21
__RW uint32_t CIC_CFG
Definition: hpm_pdm_regs.h:17
__RW uint32_t CTRL
Definition: hpm_pdm_regs.h:13
PDM config.
Definition: hpm_pdm_drv.h:39
bool enable_pdm_clk_out
Definition: hpm_pdm_drv.h:42
bool bypass_pdm_clk_div
Definition: hpm_pdm_drv.h:41
uint8_t sigma_delta_order
Definition: hpm_pdm_drv.h:48
uint8_t cic_dec_ratio
Definition: hpm_pdm_drv.h:49
uint8_t post_scale
Definition: hpm_pdm_drv.h:47
uint8_t pdm_clk_div
Definition: hpm_pdm_drv.h:44
bool enable_hpf
Definition: hpm_pdm_drv.h:43
uint8_t capture_delay
Definition: hpm_pdm_drv.h:45
bool sof_at_ref_clk_falling_edge
Definition: hpm_pdm_drv.h:40
uint8_t dec_after_cic
Definition: hpm_pdm_drv.h:46