8#ifndef __SOF_DRIVERS_MICFIL_H__
9#define __SOF_DRIVERS_MICFIL_H__
15#include <sof/trace/trace.h>
28#define REG_MICFIL_CTRL1 0x00
29#define REG_MICFIL_CTRL2 0x04
30#define REG_MICFIL_STAT 0x08
31#define REG_MICFIL_FIFO_CTRL 0x10
32#define REG_MICFIL_FIFO_STAT 0x14
33#define REG_MICFIL_DATACH0 0x24
34#define REG_MICFIL_DATACH1 0x28
35#define REG_MICFIL_DATACH2 0x2C
36#define REG_MICFIL_DATACH3 0x30
37#define REG_MICFIL_DATACH4 0x34
38#define REG_MICFIL_DATACH5 0x38
39#define REG_MICFIL_DATACH6 0x3C
40#define REG_MICFIL_DATACH7 0x40
41#define REG_MICFIL_DC_CTRL 0x64
42#define REG_MICFIL_OUT_CTRL 0x74
43#define REG_MICFIL_OUT_STAT 0x7C
44#define REG_MICFIL_VAD0_CTRL1 0x90
45#define REG_MICFIL_VAD0_CTRL2 0x94
47#define REG_MICFIL_VAD0_STAT 0x98
48#define REG_MICFIL_VAD0_SCONFIG 0x9C
49#define REG_MICFIL_VAD0_NCONFIG 0xA0
50#define REG_MICFIL_VAD0_NDATA 0xA4
51#define REG_MICFIL_VAD0_ZCD 0xA8
54#define MICFIL_CTRL1_MDIS BIT(31)
55#define MICFIL_CTRL1_DOZEN BIT(30)
56#define MICFIL_CTRL1_PDMIEN BIT(29)
57#define MICFIL_CTRL1_DBG BIT(28)
58#define MICFIL_CTRL1_SRES BIT(27)
59#define MICFIL_CTRL1_DBGE BIT(26)
60#define MICFIL_CTRL1_CHNEN MASK(7, 0)
62#define MICFIL_CTRL1_DISEL_DISABLE 0
63#define MICFIL_CTRL1_DISEL_DMA 1
64#define MICFIL_CTRL1_DISEL_IRQ 2
65#define MICFIL_CTRL1_DISEL_BITS(x) SET_BITS(25, 24, x)
66#define MICFIL_CTRL1_DISEL MASK(25, 24)
67#define MICFIL_CTRL1_ERREN BIT(23)
68#define MICFIL_CTRL1_CHEN(ch) BIT(ch)
71#define MICFIL_CTRL2_QSEL_SHIFT 25
72#define MICFIL_CTRL2_QSEL MASK(27, 25)
73#define MICFIL_CTRL2_QSEL_BITS(x) SET_BITS(27, 25, x)
74#define MICFIL_QSEL_MEDIUM_QUALITY 0
75#define MICFIL_QSEL_HIGH_QUALITY 1
76#define MICFIL_QSEL_LOW_QUALITY 7
77#define MICFIL_QSEL_VLOW0_QUALITY 6
78#define MICFIL_QSEL_VLOW1_QUALITY 5
79#define MICFIL_QSEL_VLOW2_QUALITY 4
81#define MICFIL_CTRL2_CICOSR MASK(19, 16)
82#define MICFIL_CTRL2_CICOSR_SHIFT 16
83#define MICFIL_CTRL2_CICOSR_BITS(x) SET_BITS(19, 16, x)
84#define MICFIL_CTRL2_CLKDIV MASK(7, 0)
85#define MICFIL_CTRL2_CLKDIV_BITS(x) SET_BITS(7, 0, x)
88#define MICFIL_STAT_BSY_FIL BIT(31)
89#define MICFIL_STAT_FIR_RDY BIT(30)
90#define MICFIL_STAT_LOWFREQF BIT(29)
91#define MICFIL_STAT_CHXF(ch) BIT(ch)
94#define MICFIL_FIFO_CTRL_FIFOWMK MASK(2, 0)
95#define MICFIL_FIFO_CTRL_FIFOWMK_BITS(x) SET_BITS(2, 0, x)
98#define MICFIL_FIFO_STAT_FIFOX_OVER(ch) BIT(ch)
99#define MICFIL_FIFO_STAT_FIFOX_UNDER(ch) BIT((ch) + 8)
102#define MICFIL_DC_CTRL_CONFIG MASK(15, 0)
103#define MICFIL_DC_CHX_SHIFT(ch) ((ch) << 1)
104#define MICFIL_DC_CHX(ch) MASK((((ch) << 1) + 1), ((ch) << 1))
105#define MICFIL_DC_CUTOFF_21HZ 0
106#define MICFIL_DC_CUTOFF_83HZ 1
107#define MICFIL_DC_CUTOFF_152Hz 2
108#define MICFIL_DC_BYPASS 3
111#define MICFIL_VAD0_CTRL1_CHSEL MASK(26, 24)
112#define MICFIL_VAD0_CTRL1_CICOSR MASK(19, 16)
113#define MICFIL_VAD0_CTRL1_INITT MASK(12, 8)
114#define MICFIL_VAD0_CTRL1_ST10 BIT(4)
115#define MICFIL_VAD0_CTRL1_ERIE BIT(3)
116#define MICFIL_VAD0_CTRL1_IE BIT(2)
117#define MICFIL_VAD0_CTRL1_RST BIT(1)
118#define MICFIL_VAD0_CTRL1_EN BIT(0)
121#define MICFIL_VAD0_CTRL2_FRENDIS BIT(31)
122#define MICFIL_VAD0_CTRL2_PREFEN BIT(30)
123#define MICFIL_VAD0_CTRL2_FOUTDIS BIT(28)
124#define MICFIL_VAD0_CTRL2_FRAMET MASK(21, 16)
125#define MICFIL_VAD0_CTRL2_INPGAIN MASK(11, 8)
126#define MICFIL_VAD0_CTRL2_HPF MASK(1, 0)
129#define MICFIL_VAD0_SCONFIG_SFILEN BIT(31)
130#define MICFIL_VAD0_SCONFIG_SMAXEN BIT(30)
131#define MICFIL_VAD0_SCONFIG_SGAIN MASK(3, 0)
134#define MICFIL_VAD0_NCONFIG_NFILAUT BIT(31)
135#define MICFIL_VAD0_NCONFIG_NMINEN BIT(30)
136#define MICFIL_VAD0_NCONFIG_NDECEN BIT(29)
137#define MICFIL_VAD0_NCONFIG_NOREN BIT(28)
138#define MICFIL_VAD0_NCONFIG_NFILADJ MASK(12, 8)
139#define MICFIL_VAD0_NCONFIG_NGAIN MASK(3, 0)
142#define MICFIL_VAD0_ZCD_ZCDTH MASK(25, 16)
143#define MICFIL_VAD0_ZCD_ZCDADJ MASK(11, 8)
144#define MICFIL_VAD0_ZCD_ZCDAND BIT(4)
145#define MICFIL_VAD0_ZCD_ZCDAUT BIT(2)
146#define MICFIL_VAD0_ZCD_ZCDEN BIT(0)
149#define MICFIL_VAD0_STAT_INITF BIT(31)
150#define MICFIL_VAD0_STAT_INSATF BIT(16)
151#define MICFIL_VAD0_STAT_EF BIT(15)
152#define MICFIL_VAD0_STAT_IF BIT(0)
155#define MICFIL_OUTGAIN_CHX_SHIFT(v) (4 * (v))
158#define MICFIL_OUTPUT_CHANNELS 8
159#define MICFIL_FIFO_NUM 8
162#define FIFO_LEN BIT(FIFO_PTRWID)
164#define MICFIL_IRQ_LINES 4
165#define MICFIL_MAX_RETRY 25
166#define MICFIL_SLEEP_MIN 90000
167#define MICFIL_SLEEP_MAX 100000
168#define MICFIL_DMA_MAXBURST_RX 6
171#define MICFIL_HWVAD_ENVELOPE_MODE 0
172#define MICFIL_HWVAD_ENERGY_MODE 1
const struct dai_driver micfil_driver
int quality
Definition micfil.h:22
struct sof_ipc_dai_config config
Definition micfil.h:23
struct sof_ipc_dai_micfil_params params
Definition micfil.h:24