0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef __CS53L30_H__
0012 #define __CS53L30_H__
0013
0014
0015 #define CS53L30_DEVID_AB 0x01
0016 #define CS53L30_DEVID_CD 0x02
0017 #define CS53L30_DEVID_E 0x03
0018 #define CS53L30_REVID 0x05
0019 #define CS53L30_PWRCTL 0x06
0020 #define CS53L30_MCLKCTL 0x07
0021 #define CS53L30_INT_SR_CTL 0x08
0022 #define CS53L30_MICBIAS_CTL 0x0A
0023 #define CS53L30_ASPCFG_CTL 0x0C
0024 #define CS53L30_ASP_CTL1 0x0D
0025 #define CS53L30_ASP_TDMTX_CTL1 0x0E
0026 #define CS53L30_ASP_TDMTX_CTL2 0x0F
0027 #define CS53L30_ASP_TDMTX_CTL3 0x10
0028 #define CS53L30_ASP_TDMTX_CTL4 0x11
0029 #define CS53L30_ASP_TDMTX_EN1 0x12
0030 #define CS53L30_ASP_TDMTX_EN2 0x13
0031 #define CS53L30_ASP_TDMTX_EN3 0x14
0032 #define CS53L30_ASP_TDMTX_EN4 0x15
0033 #define CS53L30_ASP_TDMTX_EN5 0x16
0034 #define CS53L30_ASP_TDMTX_EN6 0x17
0035 #define CS53L30_ASP_CTL2 0x18
0036 #define CS53L30_SFT_RAMP 0x1A
0037 #define CS53L30_LRCK_CTL1 0x1B
0038 #define CS53L30_LRCK_CTL2 0x1C
0039 #define CS53L30_MUTEP_CTL1 0x1F
0040 #define CS53L30_MUTEP_CTL2 0x20
0041 #define CS53L30_INBIAS_CTL1 0x21
0042 #define CS53L30_INBIAS_CTL2 0x22
0043 #define CS53L30_DMIC1_STR_CTL 0x23
0044 #define CS53L30_DMIC2_STR_CTL 0x24
0045 #define CS53L30_ADCDMIC1_CTL1 0x25
0046 #define CS53L30_ADCDMIC1_CTL2 0x26
0047 #define CS53L30_ADC1_CTL3 0x27
0048 #define CS53L30_ADC1_NG_CTL 0x28
0049 #define CS53L30_ADC1A_AFE_CTL 0x29
0050 #define CS53L30_ADC1B_AFE_CTL 0x2A
0051 #define CS53L30_ADC1A_DIG_VOL 0x2B
0052 #define CS53L30_ADC1B_DIG_VOL 0x2C
0053 #define CS53L30_ADCDMIC2_CTL1 0x2D
0054 #define CS53L30_ADCDMIC2_CTL2 0x2E
0055 #define CS53L30_ADC2_CTL3 0x2F
0056 #define CS53L30_ADC2_NG_CTL 0x30
0057 #define CS53L30_ADC2A_AFE_CTL 0x31
0058 #define CS53L30_ADC2B_AFE_CTL 0x32
0059 #define CS53L30_ADC2A_DIG_VOL 0x33
0060 #define CS53L30_ADC2B_DIG_VOL 0x34
0061 #define CS53L30_INT_MASK 0x35
0062 #define CS53L30_IS 0x36
0063 #define CS53L30_MAX_REGISTER 0x36
0064
0065 #define CS53L30_TDM_SLOT_MAX 4
0066 #define CS53L30_ASP_TDMTX_CTL(x) (CS53L30_ASP_TDMTX_CTL1 + (x))
0067
0068 #define CS53L30_ASP_TDMTX_ENx(x) (CS53L30_ASP_TDMTX_EN6 - (x))
0069 #define CS53L30_ASP_TDMTX_ENn(n) CS53L30_ASP_TDMTX_ENx((n) >> 3)
0070 #define CS53L30_ASP_TDMTX_ENx_MAX 6
0071
0072
0073 #define CS53L30_DEVID 0x53A30
0074
0075
0076
0077
0078
0079 #define CS53L30_PDN_POLL_MAX 90
0080
0081
0082
0083
0084 #define CS53L30_PDN_ULP_SHIFT 7
0085 #define CS53L30_PDN_ULP_MASK (1 << CS53L30_PDN_ULP_SHIFT)
0086 #define CS53L30_PDN_ULP (1 << CS53L30_PDN_ULP_SHIFT)
0087 #define CS53L30_PDN_LP_SHIFT 6
0088 #define CS53L30_PDN_LP_MASK (1 << CS53L30_PDN_LP_SHIFT)
0089 #define CS53L30_PDN_LP (1 << CS53L30_PDN_LP_SHIFT)
0090 #define CS53L30_DISCHARGE_FILT_SHIFT 5
0091 #define CS53L30_DISCHARGE_FILT_MASK (1 << CS53L30_DISCHARGE_FILT_SHIFT)
0092 #define CS53L30_DISCHARGE_FILT (1 << CS53L30_DISCHARGE_FILT_SHIFT)
0093 #define CS53L30_THMS_PDN_SHIFT 4
0094 #define CS53L30_THMS_PDN_MASK (1 << CS53L30_THMS_PDN_SHIFT)
0095 #define CS53L30_THMS_PDN (1 << CS53L30_THMS_PDN_SHIFT)
0096
0097 #define CS53L30_PWRCTL_DEFAULT (CS53L30_THMS_PDN)
0098
0099
0100 #define CS53L30_MCLK_DIS_SHIFT 7
0101 #define CS53L30_MCLK_DIS_MASK (1 << CS53L30_MCLK_DIS_SHIFT)
0102 #define CS53L30_MCLK_DIS (1 << CS53L30_MCLK_DIS_SHIFT)
0103 #define CS53L30_MCLK_INT_SCALE_SHIFT 6
0104 #define CS53L30_MCLK_INT_SCALE_MASK (1 << CS53L30_MCLK_INT_SCALE_SHIFT)
0105 #define CS53L30_MCLK_INT_SCALE (1 << CS53L30_MCLK_INT_SCALE_SHIFT)
0106 #define CS53L30_DMIC_DRIVE_SHIFT 5
0107 #define CS53L30_DMIC_DRIVE_MASK (1 << CS53L30_DMIC_DRIVE_SHIFT)
0108 #define CS53L30_DMIC_DRIVE (1 << CS53L30_DMIC_DRIVE_SHIFT)
0109 #define CS53L30_MCLK_DIV_SHIFT 2
0110 #define CS53L30_MCLK_DIV_WIDTH 2
0111 #define CS53L30_MCLK_DIV_MASK (((1 << CS53L30_MCLK_DIV_WIDTH) - 1) << CS53L30_MCLK_DIV_SHIFT)
0112 #define CS53L30_MCLK_DIV_BY_1 (0x0 << CS53L30_MCLK_DIV_SHIFT)
0113 #define CS53L30_MCLK_DIV_BY_2 (0x1 << CS53L30_MCLK_DIV_SHIFT)
0114 #define CS53L30_MCLK_DIV_BY_3 (0x2 << CS53L30_MCLK_DIV_SHIFT)
0115 #define CS53L30_SYNC_EN_SHIFT 1
0116 #define CS53L30_SYNC_EN_MASK (1 << CS53L30_SYNC_EN_SHIFT)
0117 #define CS53L30_SYNC_EN (1 << CS53L30_SYNC_EN_SHIFT)
0118
0119 #define CS53L30_MCLKCTL_DEFAULT (CS53L30_MCLK_DIV_BY_2)
0120
0121
0122 #define CS53L30_INTRNL_FS_RATIO_SHIFT 4
0123 #define CS53L30_INTRNL_FS_RATIO_MASK (1 << CS53L30_INTRNL_FS_RATIO_SHIFT)
0124 #define CS53L30_INTRNL_FS_RATIO (1 << CS53L30_INTRNL_FS_RATIO_SHIFT)
0125 #define CS53L30_MCLK_19MHZ_EN_SHIFT 0
0126 #define CS53L30_MCLK_19MHZ_EN_MASK (1 << CS53L30_MCLK_19MHZ_EN_SHIFT)
0127 #define CS53L30_MCLK_19MHZ_EN (1 << CS53L30_MCLK_19MHZ_EN_SHIFT)
0128
0129
0130 #define CS53L30_INT_SR_CTL_DEFAULT (CS53L30_INTRNL_FS_RATIO | 0x6 << 1)
0131
0132
0133 #define CS53L30_MIC4_BIAS_PDN_SHIFT 7
0134 #define CS53L30_MIC4_BIAS_PDN_MASK (1 << CS53L30_MIC4_BIAS_PDN_SHIFT)
0135 #define CS53L30_MIC4_BIAS_PDN (1 << CS53L30_MIC4_BIAS_PDN_SHIFT)
0136 #define CS53L30_MIC3_BIAS_PDN_SHIFT 6
0137 #define CS53L30_MIC3_BIAS_PDN_MASK (1 << CS53L30_MIC3_BIAS_PDN_SHIFT)
0138 #define CS53L30_MIC3_BIAS_PDN (1 << CS53L30_MIC3_BIAS_PDN_SHIFT)
0139 #define CS53L30_MIC2_BIAS_PDN_SHIFT 5
0140 #define CS53L30_MIC2_BIAS_PDN_MASK (1 << CS53L30_MIC2_BIAS_PDN_SHIFT)
0141 #define CS53L30_MIC2_BIAS_PDN (1 << CS53L30_MIC2_BIAS_PDN_SHIFT)
0142 #define CS53L30_MIC1_BIAS_PDN_SHIFT 4
0143 #define CS53L30_MIC1_BIAS_PDN_MASK (1 << CS53L30_MIC1_BIAS_PDN_SHIFT)
0144 #define CS53L30_MIC1_BIAS_PDN (1 << CS53L30_MIC1_BIAS_PDN_SHIFT)
0145 #define CS53L30_MICx_BIAS_PDN (0xf << CS53L30_MIC1_BIAS_PDN_SHIFT)
0146 #define CS53L30_VP_MIN_SHIFT 2
0147 #define CS53L30_VP_MIN_MASK (1 << CS53L30_VP_MIN_SHIFT)
0148 #define CS53L30_VP_MIN (1 << CS53L30_VP_MIN_SHIFT)
0149 #define CS53L30_MIC_BIAS_CTRL_SHIFT 0
0150 #define CS53L30_MIC_BIAS_CTRL_WIDTH 2
0151 #define CS53L30_MIC_BIAS_CTRL_MASK (((1 << CS53L30_MIC_BIAS_CTRL_WIDTH) - 1) << CS53L30_MIC_BIAS_CTRL_SHIFT)
0152 #define CS53L30_MIC_BIAS_CTRL_HIZ (0 << CS53L30_MIC_BIAS_CTRL_SHIFT)
0153 #define CS53L30_MIC_BIAS_CTRL_1V8 (1 << CS53L30_MIC_BIAS_CTRL_SHIFT)
0154 #define CS53L30_MIC_BIAS_CTRL_2V75 (2 << CS53L30_MIC_BIAS_CTRL_SHIFT)
0155
0156 #define CS53L30_MICBIAS_CTL_DEFAULT (CS53L30_MICx_BIAS_PDN | CS53L30_VP_MIN)
0157
0158
0159 #define CS53L30_ASP_MS_SHIFT 7
0160 #define CS53L30_ASP_MS_MASK (1 << CS53L30_ASP_MS_SHIFT)
0161 #define CS53L30_ASP_MS (1 << CS53L30_ASP_MS_SHIFT)
0162 #define CS53L30_ASP_SCLK_INV_SHIFT 4
0163 #define CS53L30_ASP_SCLK_INV_MASK (1 << CS53L30_ASP_SCLK_INV_SHIFT)
0164 #define CS53L30_ASP_SCLK_INV (1 << CS53L30_ASP_SCLK_INV_SHIFT)
0165 #define CS53L30_ASP_RATE_SHIFT 0
0166 #define CS53L30_ASP_RATE_WIDTH 4
0167 #define CS53L30_ASP_RATE_MASK (((1 << CS53L30_ASP_RATE_WIDTH) - 1) << CS53L30_ASP_RATE_SHIFT)
0168 #define CS53L30_ASP_RATE_48K (0xc << CS53L30_ASP_RATE_SHIFT)
0169
0170 #define CS53L30_ASPCFG_CTL_DEFAULT (CS53L30_ASP_RATE_48K)
0171
0172
0173 #define CS53L30_ASP_TDM_PDN_SHIFT 7
0174 #define CS53L30_ASP_TDM_PDN_MASK (1 << CS53L30_ASP_TDM_PDN_SHIFT)
0175 #define CS53L30_ASP_TDM_PDN (1 << CS53L30_ASP_TDM_PDN_SHIFT)
0176 #define CS53L30_ASP_SDOUTx_PDN_SHIFT 6
0177 #define CS53L30_ASP_SDOUTx_PDN_MASK (1 << CS53L30_ASP_SDOUTx_PDN_SHIFT)
0178 #define CS53L30_ASP_SDOUTx_PDN (1 << CS53L30_ASP_SDOUTx_PDN_SHIFT)
0179 #define CS53L30_ASP_3ST_SHIFT 5
0180 #define CS53L30_ASP_3ST_MASK (1 << CS53L30_ASP_3ST_SHIFT)
0181 #define CS53L30_ASP_3ST (1 << CS53L30_ASP_3ST_SHIFT)
0182 #define CS53L30_SHIFT_LEFT_SHIFT 4
0183 #define CS53L30_SHIFT_LEFT_MASK (1 << CS53L30_SHIFT_LEFT_SHIFT)
0184 #define CS53L30_SHIFT_LEFT (1 << CS53L30_SHIFT_LEFT_SHIFT)
0185 #define CS53L30_ASP_SDOUTx_DRIVE_SHIFT 0
0186 #define CS53L30_ASP_SDOUTx_DRIVE_MASK (1 << CS53L30_ASP_SDOUTx_DRIVE_SHIFT)
0187 #define CS53L30_ASP_SDOUTx_DRIVE (1 << CS53L30_ASP_SDOUTx_DRIVE_SHIFT)
0188
0189 #define CS53L30_ASP_CTL1_DEFAULT (CS53L30_ASP_TDM_PDN)
0190 #define CS53L30_ASP_CTL2_DEFAULT (0)
0191
0192
0193 #define CS53L30_ASP_CHx_TX_STATE_SHIFT 7
0194 #define CS53L30_ASP_CHx_TX_STATE_MASK (1 << CS53L30_ASP_CHx_TX_STATE_SHIFT)
0195 #define CS53L30_ASP_CHx_TX_STATE (1 << CS53L30_ASP_CHx_TX_STATE_SHIFT)
0196 #define CS53L30_ASP_CHx_TX_LOC_SHIFT 0
0197 #define CS53L30_ASP_CHx_TX_LOC_WIDTH 6
0198 #define CS53L30_ASP_CHx_TX_LOC_MASK (((1 << CS53L30_ASP_CHx_TX_LOC_WIDTH) - 1) << CS53L30_ASP_CHx_TX_LOC_SHIFT)
0199 #define CS53L30_ASP_CHx_TX_LOC_MAX (47 << CS53L30_ASP_CHx_TX_LOC_SHIFT)
0200 #define CS53L30_ASP_CHx_TX_LOC(x) ((x) << CS53L30_ASP_CHx_TX_LOC_SHIFT)
0201
0202 #define CS53L30_ASP_TDMTX_CTLx_DEFAULT (CS53L30_ASP_CHx_TX_LOC_MAX)
0203
0204
0205 #define CS53L30_ASP_TDMTX_ENx_DEFAULT (0)
0206
0207
0208 #define CS53L30_DIGSFT_SHIFT 5
0209 #define CS53L30_DIGSFT_MASK (1 << CS53L30_DIGSFT_SHIFT)
0210 #define CS53L30_DIGSFT (1 << CS53L30_DIGSFT_SHIFT)
0211
0212 #define CS53L30_SFT_RMP_DEFAULT (0)
0213
0214
0215 #define CS53L30_LRCK_50_NPW_SHIFT 3
0216 #define CS53L30_LRCK_50_NPW_MASK (1 << CS53L30_LRCK_50_NPW_SHIFT)
0217 #define CS53L30_LRCK_50_NPW (1 << CS53L30_LRCK_50_NPW_SHIFT)
0218 #define CS53L30_LRCK_TPWH_SHIFT 0
0219 #define CS53L30_LRCK_TPWH_WIDTH 3
0220 #define CS53L30_LRCK_TPWH_MASK (((1 << CS53L30_LRCK_TPWH_WIDTH) - 1) << CS53L30_LRCK_TPWH_SHIFT)
0221 #define CS53L30_LRCK_TPWH(x) (((x) << CS53L30_LRCK_TPWH_SHIFT) & CS53L30_LRCK_TPWH_MASK)
0222
0223 #define CS53L30_LRCK_CTLx_DEFAULT (0)
0224
0225
0226 #define CS53L30_MUTE_PDN_ULP_SHIFT 7
0227 #define CS53L30_MUTE_PDN_ULP_MASK (1 << CS53L30_MUTE_PDN_ULP_SHIFT)
0228 #define CS53L30_MUTE_PDN_ULP (1 << CS53L30_MUTE_PDN_ULP_SHIFT)
0229 #define CS53L30_MUTE_PDN_LP_SHIFT 6
0230 #define CS53L30_MUTE_PDN_LP_MASK (1 << CS53L30_MUTE_PDN_LP_SHIFT)
0231 #define CS53L30_MUTE_PDN_LP (1 << CS53L30_MUTE_PDN_LP_SHIFT)
0232 #define CS53L30_MUTE_M4B_PDN_SHIFT 4
0233 #define CS53L30_MUTE_M4B_PDN_MASK (1 << CS53L30_MUTE_M4B_PDN_SHIFT)
0234 #define CS53L30_MUTE_M4B_PDN (1 << CS53L30_MUTE_M4B_PDN_SHIFT)
0235 #define CS53L30_MUTE_M3B_PDN_SHIFT 3
0236 #define CS53L30_MUTE_M3B_PDN_MASK (1 << CS53L30_MUTE_M3B_PDN_SHIFT)
0237 #define CS53L30_MUTE_M3B_PDN (1 << CS53L30_MUTE_M3B_PDN_SHIFT)
0238 #define CS53L30_MUTE_M2B_PDN_SHIFT 2
0239 #define CS53L30_MUTE_M2B_PDN_MASK (1 << CS53L30_MUTE_M2B_PDN_SHIFT)
0240 #define CS53L30_MUTE_M2B_PDN (1 << CS53L30_MUTE_M2B_PDN_SHIFT)
0241 #define CS53L30_MUTE_M1B_PDN_SHIFT 1
0242 #define CS53L30_MUTE_M1B_PDN_MASK (1 << CS53L30_MUTE_M1B_PDN_SHIFT)
0243 #define CS53L30_MUTE_M1B_PDN (1 << CS53L30_MUTE_M1B_PDN_SHIFT)
0244
0245 #define CS53L30_MUTE_MxB_PDN_SHIFT(x) (CS53L30_MUTE_M1B_PDN_SHIFT + (x))
0246 #define CS53L30_MUTE_MxB_PDN_MASK(x) (1 << CS53L30_MUTE_MxB_PDN_SHIFT(x))
0247 #define CS53L30_MUTE_MxB_PDN(x) (1 << CS53L30_MUTE_MxB_PDN_SHIFT(x))
0248 #define CS53L30_MUTE_MB_ALL_PDN_SHIFT 0
0249 #define CS53L30_MUTE_MB_ALL_PDN_MASK (1 << CS53L30_MUTE_MB_ALL_PDN_SHIFT)
0250 #define CS53L30_MUTE_MB_ALL_PDN (1 << CS53L30_MUTE_MB_ALL_PDN_SHIFT)
0251
0252 #define CS53L30_MUTEP_CTL1_MUTEALL (0xdf)
0253 #define CS53L30_MUTEP_CTL1_DEFAULT (0)
0254
0255
0256 #define CS53L30_MUTE_PIN_POLARITY_SHIFT 7
0257 #define CS53L30_MUTE_PIN_POLARITY_MASK (1 << CS53L30_MUTE_PIN_POLARITY_SHIFT)
0258 #define CS53L30_MUTE_PIN_POLARITY (1 << CS53L30_MUTE_PIN_POLARITY_SHIFT)
0259 #define CS53L30_MUTE_ASP_TDM_PDN_SHIFT 6
0260 #define CS53L30_MUTE_ASP_TDM_PDN_MASK (1 << CS53L30_MUTE_ASP_TDM_PDN_SHIFT)
0261 #define CS53L30_MUTE_ASP_TDM_PDN (1 << CS53L30_MUTE_ASP_TDM_PDN_SHIFT)
0262 #define CS53L30_MUTE_ASP_SDOUT2_PDN_SHIFT 5
0263 #define CS53L30_MUTE_ASP_SDOUT2_PDN_MASK (1 << CS53L30_MUTE_ASP_SDOUT2_PDN_SHIFT)
0264 #define CS53L30_MUTE_ASP_SDOUT2_PDN (1 << CS53L30_MUTE_ASP_SDOUT2_PDN_SHIFT)
0265 #define CS53L30_MUTE_ASP_SDOUT1_PDN_SHIFT 4
0266 #define CS53L30_MUTE_ASP_SDOUT1_PDN_MASK (1 << CS53L30_MUTE_ASP_SDOUT1_PDN_SHIFT)
0267 #define CS53L30_MUTE_ASP_SDOUT1_PDN (1 << CS53L30_MUTE_ASP_SDOUT1_PDN_SHIFT)
0268
0269 #define CS53L30_MUTE_ASP_SDOUTx_PDN_SHIFT(x) ((x) + CS53L30_MUTE_ASP_SDOUT1_PDN_SHIFT)
0270 #define CS53L30_MUTE_ASP_SDOUTx_PDN_MASK(x) (1 << CS53L30_MUTE_ASP_SDOUTx_PDN_SHIFT(x))
0271 #define CS53L30_MUTE_ASP_SDOUTx_PDN (1 << CS53L30_MUTE_ASP_SDOUTx_PDN_SHIFT(x))
0272 #define CS53L30_MUTE_ADC2B_PDN_SHIFT 3
0273 #define CS53L30_MUTE_ADC2B_PDN_MASK (1 << CS53L30_MUTE_ADC2B_PDN_SHIFT)
0274 #define CS53L30_MUTE_ADC2B_PDN (1 << CS53L30_MUTE_ADC2B_PDN_SHIFT)
0275 #define CS53L30_MUTE_ADC2A_PDN_SHIFT 2
0276 #define CS53L30_MUTE_ADC2A_PDN_MASK (1 << CS53L30_MUTE_ADC2A_PDN_SHIFT)
0277 #define CS53L30_MUTE_ADC2A_PDN (1 << CS53L30_MUTE_ADC2A_PDN_SHIFT)
0278 #define CS53L30_MUTE_ADC1B_PDN_SHIFT 1
0279 #define CS53L30_MUTE_ADC1B_PDN_MASK (1 << CS53L30_MUTE_ADC1B_PDN_SHIFT)
0280 #define CS53L30_MUTE_ADC1B_PDN (1 << CS53L30_MUTE_ADC1B_PDN_SHIFT)
0281 #define CS53L30_MUTE_ADC1A_PDN_SHIFT 0
0282 #define CS53L30_MUTE_ADC1A_PDN_MASK (1 << CS53L30_MUTE_ADC1A_PDN_SHIFT)
0283 #define CS53L30_MUTE_ADC1A_PDN (1 << CS53L30_MUTE_ADC1A_PDN_SHIFT)
0284
0285 #define CS53L30_MUTEP_CTL2_DEFAULT (CS53L30_MUTE_PIN_POLARITY)
0286
0287
0288 #define CS53L30_IN4M_BIAS_SHIFT 6
0289 #define CS53L30_IN4M_BIAS_WIDTH 2
0290 #define CS53L30_IN4M_BIAS_MASK (((1 << CS53L30_IN4M_BIAS_WIDTH) - 1) << CS53L30_IN4M_BIAS_SHIFT)
0291 #define CS53L30_IN4M_BIAS_OPEN (0 << CS53L30_IN4M_BIAS_SHIFT)
0292 #define CS53L30_IN4M_BIAS_PULL_DOWN (1 << CS53L30_IN4M_BIAS_SHIFT)
0293 #define CS53L30_IN4M_BIAS_VCM (2 << CS53L30_IN4M_BIAS_SHIFT)
0294 #define CS53L30_IN4P_BIAS_SHIFT 4
0295 #define CS53L30_IN4P_BIAS_WIDTH 2
0296 #define CS53L30_IN4P_BIAS_MASK (((1 << CS53L30_IN4P_BIAS_WIDTH) - 1) << CS53L30_IN4P_BIAS_SHIFT)
0297 #define CS53L30_IN4P_BIAS_OPEN (0 << CS53L30_IN4P_BIAS_SHIFT)
0298 #define CS53L30_IN4P_BIAS_PULL_DOWN (1 << CS53L30_IN4P_BIAS_SHIFT)
0299 #define CS53L30_IN4P_BIAS_VCM (2 << CS53L30_IN4P_BIAS_SHIFT)
0300 #define CS53L30_IN3M_BIAS_SHIFT 2
0301 #define CS53L30_IN3M_BIAS_WIDTH 2
0302 #define CS53L30_IN3M_BIAS_MASK (((1 << CS53L30_IN3M_BIAS_WIDTH) - 1) << CS53L30_IN4M_BIAS_SHIFT)
0303 #define CS53L30_IN3M_BIAS_OPEN (0 << CS53L30_IN3M_BIAS_SHIFT)
0304 #define CS53L30_IN3M_BIAS_PULL_DOWN (1 << CS53L30_IN3M_BIAS_SHIFT)
0305 #define CS53L30_IN3M_BIAS_VCM (2 << CS53L30_IN3M_BIAS_SHIFT)
0306 #define CS53L30_IN3P_BIAS_SHIFT 0
0307 #define CS53L30_IN3P_BIAS_WIDTH 2
0308 #define CS53L30_IN3P_BIAS_MASK (((1 << CS53L30_IN3P_BIAS_WIDTH) - 1) << CS53L30_IN3P_BIAS_SHIFT)
0309 #define CS53L30_IN3P_BIAS_OPEN (0 << CS53L30_IN3P_BIAS_SHIFT)
0310 #define CS53L30_IN3P_BIAS_PULL_DOWN (1 << CS53L30_IN3P_BIAS_SHIFT)
0311 #define CS53L30_IN3P_BIAS_VCM (2 << CS53L30_IN3P_BIAS_SHIFT)
0312
0313 #define CS53L30_INBIAS_CTL1_DEFAULT (CS53L30_IN4M_BIAS_VCM | CS53L30_IN4P_BIAS_VCM |\
0314 CS53L30_IN3M_BIAS_VCM | CS53L30_IN3P_BIAS_VCM)
0315
0316
0317 #define CS53L30_IN2M_BIAS_SHIFT 6
0318 #define CS53L30_IN2M_BIAS_WIDTH 2
0319 #define CS53L30_IN2M_BIAS_MASK (((1 << CS53L30_IN2M_BIAS_WIDTH) - 1) << CS53L30_IN2M_BIAS_SHIFT)
0320 #define CS53L30_IN2M_BIAS_OPEN (0 << CS53L30_IN2M_BIAS_SHIFT)
0321 #define CS53L30_IN2M_BIAS_PULL_DOWN (1 << CS53L30_IN2M_BIAS_SHIFT)
0322 #define CS53L30_IN2M_BIAS_VCM (2 << CS53L30_IN2M_BIAS_SHIFT)
0323 #define CS53L30_IN2P_BIAS_SHIFT 4
0324 #define CS53L30_IN2P_BIAS_WIDTH 2
0325 #define CS53L30_IN2P_BIAS_MASK (((1 << CS53L30_IN2P_BIAS_WIDTH) - 1) << CS53L30_IN2P_BIAS_SHIFT)
0326 #define CS53L30_IN2P_BIAS_OPEN (0 << CS53L30_IN2P_BIAS_SHIFT)
0327 #define CS53L30_IN2P_BIAS_PULL_DOWN (1 << CS53L30_IN2P_BIAS_SHIFT)
0328 #define CS53L30_IN2P_BIAS_VCM (2 << CS53L30_IN2P_BIAS_SHIFT)
0329 #define CS53L30_IN1M_BIAS_SHIFT 2
0330 #define CS53L30_IN1M_BIAS_WIDTH 2
0331 #define CS53L30_IN1M_BIAS_MASK (((1 << CS53L30_IN1M_BIAS_WIDTH) - 1) << CS53L30_IN1M_BIAS_SHIFT)
0332 #define CS53L30_IN1M_BIAS_OPEN (0 << CS53L30_IN1M_BIAS_SHIFT)
0333 #define CS53L30_IN1M_BIAS_PULL_DOWN (1 << CS53L30_IN1M_BIAS_SHIFT)
0334 #define CS53L30_IN1M_BIAS_VCM (2 << CS53L30_IN1M_BIAS_SHIFT)
0335 #define CS53L30_IN1P_BIAS_SHIFT 0
0336 #define CS53L30_IN1P_BIAS_WIDTH 2
0337 #define CS53L30_IN1P_BIAS_MASK (((1 << CS53L30_IN1P_BIAS_WIDTH) - 1) << CS53L30_IN1P_BIAS_SHIFT)
0338 #define CS53L30_IN1P_BIAS_OPEN (0 << CS53L30_IN1P_BIAS_SHIFT)
0339 #define CS53L30_IN1P_BIAS_PULL_DOWN (1 << CS53L30_IN1P_BIAS_SHIFT)
0340 #define CS53L30_IN1P_BIAS_VCM (2 << CS53L30_IN1P_BIAS_SHIFT)
0341
0342 #define CS53L30_INBIAS_CTL2_DEFAULT (CS53L30_IN2M_BIAS_VCM | CS53L30_IN2P_BIAS_VCM |\
0343 CS53L30_IN1M_BIAS_VCM | CS53L30_IN1P_BIAS_VCM)
0344
0345
0346 #define CS53L30_DMICx_STEREO_ENB_SHIFT 5
0347 #define CS53L30_DMICx_STEREO_ENB_MASK (1 << CS53L30_DMICx_STEREO_ENB_SHIFT)
0348 #define CS53L30_DMICx_STEREO_ENB (1 << CS53L30_DMICx_STEREO_ENB_SHIFT)
0349
0350
0351 #define CS53L30_DMIC1_STR_CTL_DEFAULT (CS53L30_DMICx_STEREO_ENB | 0x88)
0352 #define CS53L30_DMIC2_STR_CTL_DEFAULT (CS53L30_DMICx_STEREO_ENB | 0xCC)
0353
0354
0355 #define CS53L30_ADCxB_PDN_SHIFT 7
0356 #define CS53L30_ADCxB_PDN_MASK (1 << CS53L30_ADCxB_PDN_SHIFT)
0357 #define CS53L30_ADCxB_PDN (1 << CS53L30_ADCxB_PDN_SHIFT)
0358 #define CS53L30_ADCxA_PDN_SHIFT 6
0359 #define CS53L30_ADCxA_PDN_MASK (1 << CS53L30_ADCxA_PDN_SHIFT)
0360 #define CS53L30_ADCxA_PDN (1 << CS53L30_ADCxA_PDN_SHIFT)
0361 #define CS53L30_DMICx_PDN_SHIFT 2
0362 #define CS53L30_DMICx_PDN_MASK (1 << CS53L30_DMICx_PDN_SHIFT)
0363 #define CS53L30_DMICx_PDN (1 << CS53L30_DMICx_PDN_SHIFT)
0364 #define CS53L30_DMICx_SCLK_DIV_SHIFT 1
0365 #define CS53L30_DMICx_SCLK_DIV_MASK (1 << CS53L30_DMICx_SCLK_DIV_SHIFT)
0366 #define CS53L30_DMICx_SCLK_DIV (1 << CS53L30_DMICx_SCLK_DIV_SHIFT)
0367 #define CS53L30_CH_TYPE_SHIFT 0
0368 #define CS53L30_CH_TYPE_MASK (1 << CS53L30_CH_TYPE_SHIFT)
0369 #define CS53L30_CH_TYPE (1 << CS53L30_CH_TYPE_SHIFT)
0370
0371 #define CS53L30_ADCDMICx_PDN_MASK 0xFF
0372 #define CS53L30_ADCDMICx_CTL1_DEFAULT (CS53L30_DMICx_PDN)
0373
0374
0375 #define CS53L30_ADCx_NOTCH_DIS_SHIFT 7
0376 #define CS53L30_ADCx_NOTCH_DIS_MASK (1 << CS53L30_ADCx_NOTCH_DIS_SHIFT)
0377 #define CS53L30_ADCx_NOTCH_DIS (1 << CS53L30_ADCx_NOTCH_DIS_SHIFT)
0378 #define CS53L30_ADCxB_INV_SHIFT 5
0379 #define CS53L30_ADCxB_INV_MASK (1 << CS53L30_ADCxB_INV_SHIFT)
0380 #define CS53L30_ADCxB_INV (1 << CS53L30_ADCxB_INV_SHIFT)
0381 #define CS53L30_ADCxA_INV_SHIFT 4
0382 #define CS53L30_ADCxA_INV_MASK (1 << CS53L30_ADCxA_INV_SHIFT)
0383 #define CS53L30_ADCxA_INV (1 << CS53L30_ADCxA_INV_SHIFT)
0384 #define CS53L30_ADCxB_DIG_BOOST_SHIFT 1
0385 #define CS53L30_ADCxB_DIG_BOOST_MASK (1 << CS53L30_ADCxB_DIG_BOOST_SHIFT)
0386 #define CS53L30_ADCxB_DIG_BOOST (1 << CS53L30_ADCxB_DIG_BOOST_SHIFT)
0387 #define CS53L30_ADCxA_DIG_BOOST_SHIFT 0
0388 #define CS53L30_ADCxA_DIG_BOOST_MASK (1 << CS53L30_ADCxA_DIG_BOOST_SHIFT)
0389 #define CS53L30_ADCxA_DIG_BOOST (1 << CS53L30_ADCxA_DIG_BOOST_SHIFT)
0390
0391 #define CS53L30_ADCDMIC1_CTL2_DEFAULT (0)
0392
0393
0394 #define CS53L30_ADCx_HPF_EN_SHIFT 3
0395 #define CS53L30_ADCx_HPF_EN_MASK (1 << CS53L30_ADCx_HPF_EN_SHIFT)
0396 #define CS53L30_ADCx_HPF_EN (1 << CS53L30_ADCx_HPF_EN_SHIFT)
0397 #define CS53L30_ADCx_HPF_CF_SHIFT 1
0398 #define CS53L30_ADCx_HPF_CF_WIDTH 2
0399 #define CS53L30_ADCx_HPF_CF_MASK (((1 << CS53L30_ADCx_HPF_CF_WIDTH) - 1) << CS53L30_ADCx_HPF_CF_SHIFT)
0400 #define CS53L30_ADCx_HPF_CF_1HZ86 (0 << CS53L30_ADCx_HPF_CF_SHIFT)
0401 #define CS53L30_ADCx_HPF_CF_120HZ (1 << CS53L30_ADCx_HPF_CF_SHIFT)
0402 #define CS53L30_ADCx_HPF_CF_235HZ (2 << CS53L30_ADCx_HPF_CF_SHIFT)
0403 #define CS53L30_ADCx_HPF_CF_466HZ (3 << CS53L30_ADCx_HPF_CF_SHIFT)
0404 #define CS53L30_ADCx_NG_ALL_SHIFT 0
0405 #define CS53L30_ADCx_NG_ALL_MASK (1 << CS53L30_ADCx_NG_ALL_SHIFT)
0406 #define CS53L30_ADCx_NG_ALL (1 << CS53L30_ADCx_NG_ALL_SHIFT)
0407
0408 #define CS53L30_ADCx_CTL3_DEFAULT (CS53L30_ADCx_HPF_EN)
0409
0410
0411 #define CS53L30_ADCxB_NG_SHIFT 7
0412 #define CS53L30_ADCxB_NG_MASK (1 << CS53L30_ADCxB_NG_SHIFT)
0413 #define CS53L30_ADCxB_NG (1 << CS53L30_ADCxB_NG_SHIFT)
0414 #define CS53L30_ADCxA_NG_SHIFT 6
0415 #define CS53L30_ADCxA_NG_MASK (1 << CS53L30_ADCxA_NG_SHIFT)
0416 #define CS53L30_ADCxA_NG (1 << CS53L30_ADCxA_NG_SHIFT)
0417 #define CS53L30_ADCx_NG_BOOST_SHIFT 5
0418 #define CS53L30_ADCx_NG_BOOST_MASK (1 << CS53L30_ADCx_NG_BOOST_SHIFT)
0419 #define CS53L30_ADCx_NG_BOOST (1 << CS53L30_ADCx_NG_BOOST_SHIFT)
0420 #define CS53L30_ADCx_NG_THRESH_SHIFT 2
0421 #define CS53L30_ADCx_NG_THRESH_WIDTH 3
0422 #define CS53L30_ADCx_NG_THRESH_MASK (((1 << CS53L30_ADCx_NG_THRESH_WIDTH) - 1) << CS53L30_ADCx_NG_THRESH_SHIFT)
0423 #define CS53L30_ADCx_NG_DELAY_SHIFT 0
0424 #define CS53L30_ADCx_NG_DELAY_WIDTH 2
0425 #define CS53L30_ADCx_NG_DELAY_MASK (((1 << CS53L30_ADCx_NG_DELAY_WIDTH) - 1) << CS53L30_ADCx_NG_DELAY_SHIFT)
0426
0427 #define CS53L30_ADCx_NG_CTL_DEFAULT (0)
0428
0429
0430 #define CS53L30_ADCxy_PREAMP_SHIFT 6
0431 #define CS53L30_ADCxy_PREAMP_WIDTH 2
0432 #define CS53L30_ADCxy_PREAMP_MASK (((1 << CS53L30_ADCxy_PREAMP_WIDTH) - 1) << CS53L30_ADCxy_PREAMP_SHIFT)
0433 #define CS53L30_ADCxy_PGA_VOL_SHIFT 0
0434 #define CS53L30_ADCxy_PGA_VOL_WIDTH 6
0435 #define CS53L30_ADCxy_PGA_VOL_MASK (((1 << CS53L30_ADCxy_PGA_VOL_WIDTH) - 1) << CS53L30_ADCxy_PGA_VOL_SHIFT)
0436
0437 #define CS53L30_ADCxy_AFE_CTL_DEFAULT (0)
0438
0439
0440 #define CS53L30_ADCxy_VOL_MUTE (0x80)
0441
0442 #define CS53L30_ADCxy_DIG_VOL_DEFAULT (0x0)
0443
0444
0445 #define CS53L30_PDN_DONE (1 << 7)
0446 #define CS53L30_THMS_TRIP (1 << 6)
0447 #define CS53L30_SYNC_DONE (1 << 5)
0448 #define CS53L30_ADC2B_OVFL (1 << 4)
0449 #define CS53L30_ADC2A_OVFL (1 << 3)
0450 #define CS53L30_ADC1B_OVFL (1 << 2)
0451 #define CS53L30_ADC1A_OVFL (1 << 1)
0452 #define CS53L30_MUTE_PIN (1 << 0)
0453 #define CS53L30_DEVICE_INT_MASK 0xFF
0454
0455 #endif