Files
2025-12-03 11:12:34 +08:00

50 lines
1.0 KiB
C

#ifndef _AUD_PDM_H_
#define _AUD_PDM_H_
#include "generic/typedef.h"
typedef enum {
DIGITAL_MIC_DATA,
ANALOG_MIC_DATA,
} PLNK_MIC_SEL;
/*通道0输入模式选择*/
typedef enum {
DATA0_SCLK_RISING_EDGE,
DATA0_SCLK_FALLING_EDGE,
DATA1_SCLK_RISING_EDGE,
DATA1_SCLK_FALLING_EDGE,
} PLNK_CH_MD;
struct plnk_ch_cfg {
u8 en;
PLNK_CH_MD mode;
PLNK_MIC_SEL mic_type;
};
struct plnk_data_cfg {
u8 en;
u8 io;
};
typedef struct _PLNK_PARM {
u8 sclk_io; //时钟IO
u32 sclk_fre; //时钟频率推荐2M
struct plnk_ch_cfg ch_cfg[4]; //通道内部配置
struct plnk_data_cfg data_cfg[4]; //数据IO配置
u8 ch_num; /*使能多少个通道*/
u32 sr; /*采样率*/
u32 dma_len; /*一次中断byte数*/
void *buf;
void (*isr_cb)(void *priv, void *buf, u32 len);
void *private_data; //音频私有数据
} PLNK_PARM;
void *plnk_init(void *hw_plink);
void plnk_start(void *hw_plink);
void plnk_stop(void *hw_plink);
void plnk_uninit(void *hw_plink);
#endif/*_AUD_PDM_H_*/