13 #include "hpm_dao_regs.h"
15 #include "hpm_soc_feature.h"
27 #define DAO_CHANNEL_LEFT_ONLY DAO_CTRL_LEFT_EN_MASK
28 #define DAO_CHANNEL_RIGHT_ONLY DAO_CTRL_RIGHT_EN_MASK
29 #define DAO_CHANNEL_BOTH \
30 (DAO_CTRL_RIGHT_EN_MASK | DAO_CTRL_LEFT_EN_MASK)
35 #define DAO_DEFAULT_OUTPUT_ALL_LOW (0U)
36 #define DAO_DEFAULT_OUTPUT_ALL_HIGH (1U)
37 #define DAO_DEFAULT_OUTPUT_P_HIGH_N_LOW (2U)
38 #define DAO_DEFAULT_OUTPUT_DISABLED (3U)
47 #if defined(HPM_IP_FEATURE_DAO_DATA_FORMAT_CONFIG) && (HPM_IP_FEATURE_DAO_DATA_FORMAT_CONFIG == 1)
49 bool frame_start_at_rising_edge;
51 uint8_t channel_length;
#define DAO_CTRL_FALSE_LEVEL_SET(x)
Definition: hpm_dao_regs.h:96
#define DAO_CTRL_HPF_EN_MASK
Definition: hpm_dao_regs.h:29
#define DAO_HPF_MA_COEF_SET(x)
Definition: hpm_dao_regs.h:164
#define DAO_CMD_SFTRST_MASK
Definition: hpm_dao_regs.h:115
#define DAO_CTRL_FALSE_RUN_SET(x)
Definition: hpm_dao_regs.h:106
#define DAO_CTRL_MONO_MASK
Definition: hpm_dao_regs.h:39
#define DAO_CTRL_INVERT_MASK
Definition: hpm_dao_regs.h:80
#define DAO_CTRL_LEFT_EN_MASK
Definition: hpm_dao_regs.h:59
#define DAO_CMD_RUN_MASK
Definition: hpm_dao_regs.h:125
#define DAO_CTRL_FALSE_LEVEL_MASK
Definition: hpm_dao_regs.h:94
#define DAO_CTRL_REMAP_MASK
Definition: hpm_dao_regs.h:70
#define DAO_CTRL_INVERT_SET(x)
Definition: hpm_dao_regs.h:82
#define DAO_CTRL_FALSE_RUN_MASK
Definition: hpm_dao_regs.h:104
#define DAO_CTRL_RIGHT_EN_MASK
Definition: hpm_dao_regs.h:49
#define DAO_HPF_B_COEF_SET(x)
Definition: hpm_dao_regs.h:175
uint32_t hpm_stat_t
Definition: hpm_common.h:123
static void dao_config_hpf(DAO_Type *ptr, uint32_t hpf_coef_ma, uint32_t hpf_coef_b, bool enable)
config high pass filter
Definition: hpm_dao_drv.h:76
static void dao_disable_channel(DAO_Type *ptr, uint32_t ch)
disable channel
Definition: hpm_dao_drv.h:124
hpm_stat_t dao_init(DAO_Type *ptr, dao_config_t *config)
initlization
Definition: hpm_dao_drv.c:26
dao_channel_t
Definition: hpm_dao_drv.h:57
static void dao_invert_output(DAO_Type *ptr, bool invert)
invert output
Definition: hpm_dao_drv.h:177
static void dao_enable_remap(DAO_Type *ptr)
enable remap
Definition: hpm_dao_drv.h:154
static void dao_enable_hpf(DAO_Type *ptr)
enable high pass filter
Definition: hpm_dao_drv.h:92
static void dao_stop(DAO_Type *ptr)
stop
Definition: hpm_dao_drv.h:246
void dao_get_default_config(DAO_Type *ptr, dao_config_t *config)
get default config
Definition: hpm_dao_drv.c:10
static void dao_force_output(DAO_Type *ptr, uint8_t output)
force pads output with certain level
Definition: hpm_dao_drv.h:189
static void dao_enable_false_run(DAO_Type *ptr, bool enable)
enable false run when false run mode is enabled, the module continues to consume data,...
Definition: hpm_dao_drv.h:203
static void dao_software_reset(DAO_Type *ptr)
software reset
Definition: hpm_dao_drv.h:214
static void dao_disable_mono_output(DAO_Type *ptr)
disable mono output
Definition: hpm_dao_drv.h:144
static bool dao_is_running(DAO_Type *ptr)
check whether DAO is running
Definition: hpm_dao_drv.h:226
static void dao_enable_mono_output(DAO_Type *ptr)
enable mono output
Definition: hpm_dao_drv.h:134
static void dao_disable_remap(DAO_Type *ptr)
disable remap
Definition: hpm_dao_drv.h:164
static void dao_start(DAO_Type *ptr)
start
Definition: hpm_dao_drv.h:236
struct dao_config dao_config_t
DAO config.
static void dao_disable_hpf(DAO_Type *ptr)
disable high pass filter
Definition: hpm_dao_drv.h:102
static void dao_enable_channel(DAO_Type *ptr, uint32_t ch)
enable channel
Definition: hpm_dao_drv.h:113
@ dao_right_channel
Definition: hpm_dao_drv.h:58
@ dao_left_channel
Definition: hpm_dao_drv.h:59
Definition: hpm_dao_regs.h:12
__RW uint32_t HPF_MA
Definition: hpm_dao_regs.h:18
__RW uint32_t HPF_B
Definition: hpm_dao_regs.h:19
__RW uint32_t CTRL
Definition: hpm_dao_regs.h:13
__RW uint32_t CMD
Definition: hpm_dao_regs.h:15
DAO config.
Definition: hpm_dao_drv.h:43
uint8_t channel_count
Definition: hpm_dao_drv.h:46
bool enable_mono_output
Definition: hpm_dao_drv.h:44
uint8_t default_output_level
Definition: hpm_dao_drv.h:45
uint8_t channel_slot_mask
Definition: hpm_dao_drv.h:54