0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _WM8903_H
0010 #define _WM8903_H
0011
0012 #include <linux/i2c.h>
0013
0014 extern int wm8903_mic_detect(struct snd_soc_component *component,
0015 struct snd_soc_jack *jack,
0016 int det, int shrt);
0017
0018
0019
0020
0021
0022 #define WM8903_SW_RESET_AND_ID 0x00
0023 #define WM8903_REVISION_NUMBER 0x01
0024 #define WM8903_BIAS_CONTROL_0 0x04
0025 #define WM8903_VMID_CONTROL_0 0x05
0026 #define WM8903_MIC_BIAS_CONTROL_0 0x06
0027 #define WM8903_ANALOGUE_DAC_0 0x08
0028 #define WM8903_ANALOGUE_ADC_0 0x0A
0029 #define WM8903_POWER_MANAGEMENT_0 0x0C
0030 #define WM8903_POWER_MANAGEMENT_1 0x0D
0031 #define WM8903_POWER_MANAGEMENT_2 0x0E
0032 #define WM8903_POWER_MANAGEMENT_3 0x0F
0033 #define WM8903_POWER_MANAGEMENT_4 0x10
0034 #define WM8903_POWER_MANAGEMENT_5 0x11
0035 #define WM8903_POWER_MANAGEMENT_6 0x12
0036 #define WM8903_CLOCK_RATES_0 0x14
0037 #define WM8903_CLOCK_RATES_1 0x15
0038 #define WM8903_CLOCK_RATES_2 0x16
0039 #define WM8903_AUDIO_INTERFACE_0 0x18
0040 #define WM8903_AUDIO_INTERFACE_1 0x19
0041 #define WM8903_AUDIO_INTERFACE_2 0x1A
0042 #define WM8903_AUDIO_INTERFACE_3 0x1B
0043 #define WM8903_DAC_DIGITAL_VOLUME_LEFT 0x1E
0044 #define WM8903_DAC_DIGITAL_VOLUME_RIGHT 0x1F
0045 #define WM8903_DAC_DIGITAL_0 0x20
0046 #define WM8903_DAC_DIGITAL_1 0x21
0047 #define WM8903_ADC_DIGITAL_VOLUME_LEFT 0x24
0048 #define WM8903_ADC_DIGITAL_VOLUME_RIGHT 0x25
0049 #define WM8903_ADC_DIGITAL_0 0x26
0050 #define WM8903_DIGITAL_MICROPHONE_0 0x27
0051 #define WM8903_DRC_0 0x28
0052 #define WM8903_DRC_1 0x29
0053 #define WM8903_DRC_2 0x2A
0054 #define WM8903_DRC_3 0x2B
0055 #define WM8903_ANALOGUE_LEFT_INPUT_0 0x2C
0056 #define WM8903_ANALOGUE_RIGHT_INPUT_0 0x2D
0057 #define WM8903_ANALOGUE_LEFT_INPUT_1 0x2E
0058 #define WM8903_ANALOGUE_RIGHT_INPUT_1 0x2F
0059 #define WM8903_ANALOGUE_LEFT_MIX_0 0x32
0060 #define WM8903_ANALOGUE_RIGHT_MIX_0 0x33
0061 #define WM8903_ANALOGUE_SPK_MIX_LEFT_0 0x34
0062 #define WM8903_ANALOGUE_SPK_MIX_LEFT_1 0x35
0063 #define WM8903_ANALOGUE_SPK_MIX_RIGHT_0 0x36
0064 #define WM8903_ANALOGUE_SPK_MIX_RIGHT_1 0x37
0065 #define WM8903_ANALOGUE_OUT1_LEFT 0x39
0066 #define WM8903_ANALOGUE_OUT1_RIGHT 0x3A
0067 #define WM8903_ANALOGUE_OUT2_LEFT 0x3B
0068 #define WM8903_ANALOGUE_OUT2_RIGHT 0x3C
0069 #define WM8903_ANALOGUE_OUT3_LEFT 0x3E
0070 #define WM8903_ANALOGUE_OUT3_RIGHT 0x3F
0071 #define WM8903_ANALOGUE_SPK_OUTPUT_CONTROL_0 0x41
0072 #define WM8903_DC_SERVO_0 0x43
0073 #define WM8903_DC_SERVO_2 0x45
0074 #define WM8903_DC_SERVO_4 0x47
0075 #define WM8903_DC_SERVO_5 0x48
0076 #define WM8903_DC_SERVO_6 0x49
0077 #define WM8903_DC_SERVO_7 0x4A
0078 #define WM8903_DC_SERVO_READBACK_1 0x51
0079 #define WM8903_DC_SERVO_READBACK_2 0x52
0080 #define WM8903_DC_SERVO_READBACK_3 0x53
0081 #define WM8903_DC_SERVO_READBACK_4 0x54
0082 #define WM8903_ANALOGUE_HP_0 0x5A
0083 #define WM8903_ANALOGUE_LINEOUT_0 0x5E
0084 #define WM8903_CHARGE_PUMP_0 0x62
0085 #define WM8903_CLASS_W_0 0x68
0086 #define WM8903_WRITE_SEQUENCER_0 0x6C
0087 #define WM8903_WRITE_SEQUENCER_1 0x6D
0088 #define WM8903_WRITE_SEQUENCER_2 0x6E
0089 #define WM8903_WRITE_SEQUENCER_3 0x6F
0090 #define WM8903_WRITE_SEQUENCER_4 0x70
0091 #define WM8903_CONTROL_INTERFACE 0x72
0092 #define WM8903_GPIO_CONTROL_1 0x74
0093 #define WM8903_GPIO_CONTROL_2 0x75
0094 #define WM8903_GPIO_CONTROL_3 0x76
0095 #define WM8903_GPIO_CONTROL_4 0x77
0096 #define WM8903_GPIO_CONTROL_5 0x78
0097 #define WM8903_INTERRUPT_STATUS_1 0x79
0098 #define WM8903_INTERRUPT_STATUS_1_MASK 0x7A
0099 #define WM8903_INTERRUPT_POLARITY_1 0x7B
0100 #define WM8903_INTERRUPT_CONTROL 0x7E
0101 #define WM8903_CLOCK_RATE_TEST_4 0xA4
0102 #define WM8903_ANALOGUE_OUTPUT_BIAS_0 0xAC
0103
0104 #define WM8903_REGISTER_COUNT 75
0105 #define WM8903_MAX_REGISTER 0xAC
0106
0107
0108
0109
0110
0111
0112
0113
0114 #define WM8903_SW_RESET_DEV_ID1_MASK 0xFFFF
0115 #define WM8903_SW_RESET_DEV_ID1_SHIFT 0
0116 #define WM8903_SW_RESET_DEV_ID1_WIDTH 16
0117
0118
0119
0120
0121 #define WM8903_CHIP_REV_MASK 0x000F
0122 #define WM8903_CHIP_REV_SHIFT 0
0123 #define WM8903_CHIP_REV_WIDTH 4
0124
0125
0126
0127
0128 #define WM8903_POBCTRL 0x0010
0129 #define WM8903_POBCTRL_MASK 0x0010
0130 #define WM8903_POBCTRL_SHIFT 4
0131 #define WM8903_POBCTRL_WIDTH 1
0132 #define WM8903_ISEL_MASK 0x000C
0133 #define WM8903_ISEL_SHIFT 2
0134 #define WM8903_ISEL_WIDTH 2
0135 #define WM8903_STARTUP_BIAS_ENA 0x0002
0136 #define WM8903_STARTUP_BIAS_ENA_MASK 0x0002
0137 #define WM8903_STARTUP_BIAS_ENA_SHIFT 1
0138 #define WM8903_STARTUP_BIAS_ENA_WIDTH 1
0139 #define WM8903_BIAS_ENA 0x0001
0140 #define WM8903_BIAS_ENA_MASK 0x0001
0141 #define WM8903_BIAS_ENA_SHIFT 0
0142 #define WM8903_BIAS_ENA_WIDTH 1
0143
0144
0145
0146
0147 #define WM8903_VMID_TIE_ENA 0x0080
0148 #define WM8903_VMID_TIE_ENA_MASK 0x0080
0149 #define WM8903_VMID_TIE_ENA_SHIFT 7
0150 #define WM8903_VMID_TIE_ENA_WIDTH 1
0151 #define WM8903_BUFIO_ENA 0x0040
0152 #define WM8903_BUFIO_ENA_MASK 0x0040
0153 #define WM8903_BUFIO_ENA_SHIFT 6
0154 #define WM8903_BUFIO_ENA_WIDTH 1
0155 #define WM8903_VMID_IO_ENA 0x0020
0156 #define WM8903_VMID_IO_ENA_MASK 0x0020
0157 #define WM8903_VMID_IO_ENA_SHIFT 5
0158 #define WM8903_VMID_IO_ENA_WIDTH 1
0159 #define WM8903_VMID_SOFT_MASK 0x0018
0160 #define WM8903_VMID_SOFT_SHIFT 3
0161 #define WM8903_VMID_SOFT_WIDTH 2
0162 #define WM8903_VMID_RES_MASK 0x0006
0163 #define WM8903_VMID_RES_SHIFT 1
0164 #define WM8903_VMID_RES_WIDTH 2
0165 #define WM8903_VMID_BUF_ENA 0x0001
0166 #define WM8903_VMID_BUF_ENA_MASK 0x0001
0167 #define WM8903_VMID_BUF_ENA_SHIFT 0
0168 #define WM8903_VMID_BUF_ENA_WIDTH 1
0169
0170 #define WM8903_VMID_RES_50K 2
0171 #define WM8903_VMID_RES_250K 4
0172 #define WM8903_VMID_RES_5K 6
0173
0174
0175
0176
0177 #define WM8903_DACBIAS_SEL_MASK 0x0018
0178 #define WM8903_DACBIAS_SEL_SHIFT 3
0179 #define WM8903_DACBIAS_SEL_WIDTH 2
0180 #define WM8903_DACVMID_BIAS_SEL_MASK 0x0006
0181 #define WM8903_DACVMID_BIAS_SEL_SHIFT 1
0182 #define WM8903_DACVMID_BIAS_SEL_WIDTH 2
0183
0184
0185
0186
0187 #define WM8903_ADC_OSR128 0x0001
0188 #define WM8903_ADC_OSR128_MASK 0x0001
0189 #define WM8903_ADC_OSR128_SHIFT 0
0190 #define WM8903_ADC_OSR128_WIDTH 1
0191
0192
0193
0194
0195 #define WM8903_INL_ENA 0x0002
0196 #define WM8903_INL_ENA_MASK 0x0002
0197 #define WM8903_INL_ENA_SHIFT 1
0198 #define WM8903_INL_ENA_WIDTH 1
0199 #define WM8903_INR_ENA 0x0001
0200 #define WM8903_INR_ENA_MASK 0x0001
0201 #define WM8903_INR_ENA_SHIFT 0
0202 #define WM8903_INR_ENA_WIDTH 1
0203
0204
0205
0206
0207 #define WM8903_MIXOUTL_ENA 0x0002
0208 #define WM8903_MIXOUTL_ENA_MASK 0x0002
0209 #define WM8903_MIXOUTL_ENA_SHIFT 1
0210 #define WM8903_MIXOUTL_ENA_WIDTH 1
0211 #define WM8903_MIXOUTR_ENA 0x0001
0212 #define WM8903_MIXOUTR_ENA_MASK 0x0001
0213 #define WM8903_MIXOUTR_ENA_SHIFT 0
0214 #define WM8903_MIXOUTR_ENA_WIDTH 1
0215
0216
0217
0218
0219 #define WM8903_HPL_PGA_ENA 0x0002
0220 #define WM8903_HPL_PGA_ENA_MASK 0x0002
0221 #define WM8903_HPL_PGA_ENA_SHIFT 1
0222 #define WM8903_HPL_PGA_ENA_WIDTH 1
0223 #define WM8903_HPR_PGA_ENA 0x0001
0224 #define WM8903_HPR_PGA_ENA_MASK 0x0001
0225 #define WM8903_HPR_PGA_ENA_SHIFT 0
0226 #define WM8903_HPR_PGA_ENA_WIDTH 1
0227
0228
0229
0230
0231 #define WM8903_LINEOUTL_PGA_ENA 0x0002
0232 #define WM8903_LINEOUTL_PGA_ENA_MASK 0x0002
0233 #define WM8903_LINEOUTL_PGA_ENA_SHIFT 1
0234 #define WM8903_LINEOUTL_PGA_ENA_WIDTH 1
0235 #define WM8903_LINEOUTR_PGA_ENA 0x0001
0236 #define WM8903_LINEOUTR_PGA_ENA_MASK 0x0001
0237 #define WM8903_LINEOUTR_PGA_ENA_SHIFT 0
0238 #define WM8903_LINEOUTR_PGA_ENA_WIDTH 1
0239
0240
0241
0242
0243 #define WM8903_MIXSPKL_ENA 0x0002
0244 #define WM8903_MIXSPKL_ENA_MASK 0x0002
0245 #define WM8903_MIXSPKL_ENA_SHIFT 1
0246 #define WM8903_MIXSPKL_ENA_WIDTH 1
0247 #define WM8903_MIXSPKR_ENA 0x0001
0248 #define WM8903_MIXSPKR_ENA_MASK 0x0001
0249 #define WM8903_MIXSPKR_ENA_SHIFT 0
0250 #define WM8903_MIXSPKR_ENA_WIDTH 1
0251
0252
0253
0254
0255 #define WM8903_SPKL_ENA 0x0002
0256 #define WM8903_SPKL_ENA_MASK 0x0002
0257 #define WM8903_SPKL_ENA_SHIFT 1
0258 #define WM8903_SPKL_ENA_WIDTH 1
0259 #define WM8903_SPKR_ENA 0x0001
0260 #define WM8903_SPKR_ENA_MASK 0x0001
0261 #define WM8903_SPKR_ENA_SHIFT 0
0262 #define WM8903_SPKR_ENA_WIDTH 1
0263
0264
0265
0266
0267 #define WM8903_DACL_ENA 0x0008
0268 #define WM8903_DACL_ENA_MASK 0x0008
0269 #define WM8903_DACL_ENA_SHIFT 3
0270 #define WM8903_DACL_ENA_WIDTH 1
0271 #define WM8903_DACR_ENA 0x0004
0272 #define WM8903_DACR_ENA_MASK 0x0004
0273 #define WM8903_DACR_ENA_SHIFT 2
0274 #define WM8903_DACR_ENA_WIDTH 1
0275 #define WM8903_ADCL_ENA 0x0002
0276 #define WM8903_ADCL_ENA_MASK 0x0002
0277 #define WM8903_ADCL_ENA_SHIFT 1
0278 #define WM8903_ADCL_ENA_WIDTH 1
0279 #define WM8903_ADCR_ENA 0x0001
0280 #define WM8903_ADCR_ENA_MASK 0x0001
0281 #define WM8903_ADCR_ENA_SHIFT 0
0282 #define WM8903_ADCR_ENA_WIDTH 1
0283
0284
0285
0286
0287 #define WM8903_MCLKDIV2 0x0001
0288 #define WM8903_MCLKDIV2_MASK 0x0001
0289 #define WM8903_MCLKDIV2_SHIFT 0
0290 #define WM8903_MCLKDIV2_WIDTH 1
0291
0292
0293
0294
0295 #define WM8903_CLK_SYS_RATE_MASK 0x3C00
0296 #define WM8903_CLK_SYS_RATE_SHIFT 10
0297 #define WM8903_CLK_SYS_RATE_WIDTH 4
0298 #define WM8903_CLK_SYS_MODE_MASK 0x0300
0299 #define WM8903_CLK_SYS_MODE_SHIFT 8
0300 #define WM8903_CLK_SYS_MODE_WIDTH 2
0301 #define WM8903_SAMPLE_RATE_MASK 0x000F
0302 #define WM8903_SAMPLE_RATE_SHIFT 0
0303 #define WM8903_SAMPLE_RATE_WIDTH 4
0304
0305
0306
0307
0308 #define WM8903_CLK_SYS_ENA 0x0004
0309 #define WM8903_CLK_SYS_ENA_MASK 0x0004
0310 #define WM8903_CLK_SYS_ENA_SHIFT 2
0311 #define WM8903_CLK_SYS_ENA_WIDTH 1
0312 #define WM8903_CLK_DSP_ENA 0x0002
0313 #define WM8903_CLK_DSP_ENA_MASK 0x0002
0314 #define WM8903_CLK_DSP_ENA_SHIFT 1
0315 #define WM8903_CLK_DSP_ENA_WIDTH 1
0316 #define WM8903_TO_ENA 0x0001
0317 #define WM8903_TO_ENA_MASK 0x0001
0318 #define WM8903_TO_ENA_SHIFT 0
0319 #define WM8903_TO_ENA_WIDTH 1
0320
0321
0322
0323
0324 #define WM8903_DACL_DATINV 0x1000
0325 #define WM8903_DACL_DATINV_MASK 0x1000
0326 #define WM8903_DACL_DATINV_SHIFT 12
0327 #define WM8903_DACL_DATINV_WIDTH 1
0328 #define WM8903_DACR_DATINV 0x0800
0329 #define WM8903_DACR_DATINV_MASK 0x0800
0330 #define WM8903_DACR_DATINV_SHIFT 11
0331 #define WM8903_DACR_DATINV_WIDTH 1
0332 #define WM8903_DAC_BOOST_MASK 0x0600
0333 #define WM8903_DAC_BOOST_SHIFT 9
0334 #define WM8903_DAC_BOOST_WIDTH 2
0335 #define WM8903_LOOPBACK 0x0100
0336 #define WM8903_LOOPBACK_MASK 0x0100
0337 #define WM8903_LOOPBACK_SHIFT 8
0338 #define WM8903_LOOPBACK_WIDTH 1
0339 #define WM8903_AIFADCL_SRC 0x0080
0340 #define WM8903_AIFADCL_SRC_MASK 0x0080
0341 #define WM8903_AIFADCL_SRC_SHIFT 7
0342 #define WM8903_AIFADCL_SRC_WIDTH 1
0343 #define WM8903_AIFADCR_SRC 0x0040
0344 #define WM8903_AIFADCR_SRC_MASK 0x0040
0345 #define WM8903_AIFADCR_SRC_SHIFT 6
0346 #define WM8903_AIFADCR_SRC_WIDTH 1
0347 #define WM8903_AIFDACL_SRC 0x0020
0348 #define WM8903_AIFDACL_SRC_MASK 0x0020
0349 #define WM8903_AIFDACL_SRC_SHIFT 5
0350 #define WM8903_AIFDACL_SRC_WIDTH 1
0351 #define WM8903_AIFDACR_SRC 0x0010
0352 #define WM8903_AIFDACR_SRC_MASK 0x0010
0353 #define WM8903_AIFDACR_SRC_SHIFT 4
0354 #define WM8903_AIFDACR_SRC_WIDTH 1
0355 #define WM8903_ADC_COMP 0x0008
0356 #define WM8903_ADC_COMP_MASK 0x0008
0357 #define WM8903_ADC_COMP_SHIFT 3
0358 #define WM8903_ADC_COMP_WIDTH 1
0359 #define WM8903_ADC_COMPMODE 0x0004
0360 #define WM8903_ADC_COMPMODE_MASK 0x0004
0361 #define WM8903_ADC_COMPMODE_SHIFT 2
0362 #define WM8903_ADC_COMPMODE_WIDTH 1
0363 #define WM8903_DAC_COMP 0x0002
0364 #define WM8903_DAC_COMP_MASK 0x0002
0365 #define WM8903_DAC_COMP_SHIFT 1
0366 #define WM8903_DAC_COMP_WIDTH 1
0367 #define WM8903_DAC_COMPMODE 0x0001
0368 #define WM8903_DAC_COMPMODE_MASK 0x0001
0369 #define WM8903_DAC_COMPMODE_SHIFT 0
0370 #define WM8903_DAC_COMPMODE_WIDTH 1
0371
0372
0373
0374
0375 #define WM8903_AIFDAC_TDM 0x2000
0376 #define WM8903_AIFDAC_TDM_MASK 0x2000
0377 #define WM8903_AIFDAC_TDM_SHIFT 13
0378 #define WM8903_AIFDAC_TDM_WIDTH 1
0379 #define WM8903_AIFDAC_TDM_CHAN 0x1000
0380 #define WM8903_AIFDAC_TDM_CHAN_MASK 0x1000
0381 #define WM8903_AIFDAC_TDM_CHAN_SHIFT 12
0382 #define WM8903_AIFDAC_TDM_CHAN_WIDTH 1
0383 #define WM8903_AIFADC_TDM 0x0800
0384 #define WM8903_AIFADC_TDM_MASK 0x0800
0385 #define WM8903_AIFADC_TDM_SHIFT 11
0386 #define WM8903_AIFADC_TDM_WIDTH 1
0387 #define WM8903_AIFADC_TDM_CHAN 0x0400
0388 #define WM8903_AIFADC_TDM_CHAN_MASK 0x0400
0389 #define WM8903_AIFADC_TDM_CHAN_SHIFT 10
0390 #define WM8903_AIFADC_TDM_CHAN_WIDTH 1
0391 #define WM8903_LRCLK_DIR 0x0200
0392 #define WM8903_LRCLK_DIR_MASK 0x0200
0393 #define WM8903_LRCLK_DIR_SHIFT 9
0394 #define WM8903_LRCLK_DIR_WIDTH 1
0395 #define WM8903_AIF_BCLK_INV 0x0080
0396 #define WM8903_AIF_BCLK_INV_MASK 0x0080
0397 #define WM8903_AIF_BCLK_INV_SHIFT 7
0398 #define WM8903_AIF_BCLK_INV_WIDTH 1
0399 #define WM8903_BCLK_DIR 0x0040
0400 #define WM8903_BCLK_DIR_MASK 0x0040
0401 #define WM8903_BCLK_DIR_SHIFT 6
0402 #define WM8903_BCLK_DIR_WIDTH 1
0403 #define WM8903_AIF_LRCLK_INV 0x0010
0404 #define WM8903_AIF_LRCLK_INV_MASK 0x0010
0405 #define WM8903_AIF_LRCLK_INV_SHIFT 4
0406 #define WM8903_AIF_LRCLK_INV_WIDTH 1
0407 #define WM8903_AIF_WL_MASK 0x000C
0408 #define WM8903_AIF_WL_SHIFT 2
0409 #define WM8903_AIF_WL_WIDTH 2
0410 #define WM8903_AIF_FMT_MASK 0x0003
0411 #define WM8903_AIF_FMT_SHIFT 0
0412 #define WM8903_AIF_FMT_WIDTH 2
0413
0414
0415
0416
0417 #define WM8903_BCLK_DIV_MASK 0x001F
0418 #define WM8903_BCLK_DIV_SHIFT 0
0419 #define WM8903_BCLK_DIV_WIDTH 5
0420
0421
0422
0423
0424 #define WM8903_LRCLK_RATE_MASK 0x07FF
0425 #define WM8903_LRCLK_RATE_SHIFT 0
0426 #define WM8903_LRCLK_RATE_WIDTH 11
0427
0428
0429
0430
0431 #define WM8903_DACVU 0x0100
0432 #define WM8903_DACVU_MASK 0x0100
0433 #define WM8903_DACVU_SHIFT 8
0434 #define WM8903_DACVU_WIDTH 1
0435 #define WM8903_DACL_VOL_MASK 0x00FF
0436 #define WM8903_DACL_VOL_SHIFT 0
0437 #define WM8903_DACL_VOL_WIDTH 8
0438
0439
0440
0441
0442 #define WM8903_DACVU 0x0100
0443 #define WM8903_DACVU_MASK 0x0100
0444 #define WM8903_DACVU_SHIFT 8
0445 #define WM8903_DACVU_WIDTH 1
0446 #define WM8903_DACR_VOL_MASK 0x00FF
0447 #define WM8903_DACR_VOL_SHIFT 0
0448 #define WM8903_DACR_VOL_WIDTH 8
0449
0450
0451
0452
0453 #define WM8903_ADCL_DAC_SVOL_MASK 0x0F00
0454 #define WM8903_ADCL_DAC_SVOL_SHIFT 8
0455 #define WM8903_ADCL_DAC_SVOL_WIDTH 4
0456 #define WM8903_ADCR_DAC_SVOL_MASK 0x00F0
0457 #define WM8903_ADCR_DAC_SVOL_SHIFT 4
0458 #define WM8903_ADCR_DAC_SVOL_WIDTH 4
0459 #define WM8903_ADC_TO_DACL_MASK 0x000C
0460 #define WM8903_ADC_TO_DACL_SHIFT 2
0461 #define WM8903_ADC_TO_DACL_WIDTH 2
0462 #define WM8903_ADC_TO_DACR_MASK 0x0003
0463 #define WM8903_ADC_TO_DACR_SHIFT 0
0464 #define WM8903_ADC_TO_DACR_WIDTH 2
0465
0466
0467
0468
0469 #define WM8903_DAC_MONO 0x1000
0470 #define WM8903_DAC_MONO_MASK 0x1000
0471 #define WM8903_DAC_MONO_SHIFT 12
0472 #define WM8903_DAC_MONO_WIDTH 1
0473 #define WM8903_DAC_SB_FILT 0x0800
0474 #define WM8903_DAC_SB_FILT_MASK 0x0800
0475 #define WM8903_DAC_SB_FILT_SHIFT 11
0476 #define WM8903_DAC_SB_FILT_WIDTH 1
0477 #define WM8903_DAC_MUTERATE 0x0400
0478 #define WM8903_DAC_MUTERATE_MASK 0x0400
0479 #define WM8903_DAC_MUTERATE_SHIFT 10
0480 #define WM8903_DAC_MUTERATE_WIDTH 1
0481 #define WM8903_DAC_MUTEMODE 0x0200
0482 #define WM8903_DAC_MUTEMODE_MASK 0x0200
0483 #define WM8903_DAC_MUTEMODE_SHIFT 9
0484 #define WM8903_DAC_MUTEMODE_WIDTH 1
0485 #define WM8903_DAC_MUTE 0x0008
0486 #define WM8903_DAC_MUTE_MASK 0x0008
0487 #define WM8903_DAC_MUTE_SHIFT 3
0488 #define WM8903_DAC_MUTE_WIDTH 1
0489 #define WM8903_DEEMPH_MASK 0x0006
0490 #define WM8903_DEEMPH_SHIFT 1
0491 #define WM8903_DEEMPH_WIDTH 2
0492
0493
0494
0495
0496 #define WM8903_ADCVU 0x0100
0497 #define WM8903_ADCVU_MASK 0x0100
0498 #define WM8903_ADCVU_SHIFT 8
0499 #define WM8903_ADCVU_WIDTH 1
0500 #define WM8903_ADCL_VOL_MASK 0x00FF
0501 #define WM8903_ADCL_VOL_SHIFT 0
0502 #define WM8903_ADCL_VOL_WIDTH 8
0503
0504
0505
0506
0507 #define WM8903_ADCVU 0x0100
0508 #define WM8903_ADCVU_MASK 0x0100
0509 #define WM8903_ADCVU_SHIFT 8
0510 #define WM8903_ADCVU_WIDTH 1
0511 #define WM8903_ADCR_VOL_MASK 0x00FF
0512 #define WM8903_ADCR_VOL_SHIFT 0
0513 #define WM8903_ADCR_VOL_WIDTH 8
0514
0515
0516
0517
0518 #define WM8903_ADC_HPF_CUT_MASK 0x0060
0519 #define WM8903_ADC_HPF_CUT_SHIFT 5
0520 #define WM8903_ADC_HPF_CUT_WIDTH 2
0521 #define WM8903_ADC_HPF_ENA 0x0010
0522 #define WM8903_ADC_HPF_ENA_MASK 0x0010
0523 #define WM8903_ADC_HPF_ENA_SHIFT 4
0524 #define WM8903_ADC_HPF_ENA_WIDTH 1
0525 #define WM8903_ADCL_DATINV 0x0002
0526 #define WM8903_ADCL_DATINV_MASK 0x0002
0527 #define WM8903_ADCL_DATINV_SHIFT 1
0528 #define WM8903_ADCL_DATINV_WIDTH 1
0529 #define WM8903_ADCR_DATINV 0x0001
0530 #define WM8903_ADCR_DATINV_MASK 0x0001
0531 #define WM8903_ADCR_DATINV_SHIFT 0
0532 #define WM8903_ADCR_DATINV_WIDTH 1
0533
0534
0535
0536
0537 #define WM8903_DIGMIC_MODE_SEL 0x0100
0538 #define WM8903_DIGMIC_MODE_SEL_MASK 0x0100
0539 #define WM8903_DIGMIC_MODE_SEL_SHIFT 8
0540 #define WM8903_DIGMIC_MODE_SEL_WIDTH 1
0541 #define WM8903_DIGMIC_CLK_SEL_L_MASK 0x00C0
0542 #define WM8903_DIGMIC_CLK_SEL_L_SHIFT 6
0543 #define WM8903_DIGMIC_CLK_SEL_L_WIDTH 2
0544 #define WM8903_DIGMIC_CLK_SEL_R_MASK 0x0030
0545 #define WM8903_DIGMIC_CLK_SEL_R_SHIFT 4
0546 #define WM8903_DIGMIC_CLK_SEL_R_WIDTH 2
0547 #define WM8903_DIGMIC_CLK_SEL_RT_MASK 0x000C
0548 #define WM8903_DIGMIC_CLK_SEL_RT_SHIFT 2
0549 #define WM8903_DIGMIC_CLK_SEL_RT_WIDTH 2
0550 #define WM8903_DIGMIC_CLK_SEL_MASK 0x0003
0551 #define WM8903_DIGMIC_CLK_SEL_SHIFT 0
0552 #define WM8903_DIGMIC_CLK_SEL_WIDTH 2
0553
0554
0555
0556
0557 #define WM8903_DRC_ENA 0x8000
0558 #define WM8903_DRC_ENA_MASK 0x8000
0559 #define WM8903_DRC_ENA_SHIFT 15
0560 #define WM8903_DRC_ENA_WIDTH 1
0561 #define WM8903_DRC_THRESH_HYST_MASK 0x1800
0562 #define WM8903_DRC_THRESH_HYST_SHIFT 11
0563 #define WM8903_DRC_THRESH_HYST_WIDTH 2
0564 #define WM8903_DRC_STARTUP_GAIN_MASK 0x07C0
0565 #define WM8903_DRC_STARTUP_GAIN_SHIFT 6
0566 #define WM8903_DRC_STARTUP_GAIN_WIDTH 5
0567 #define WM8903_DRC_FF_DELAY 0x0020
0568 #define WM8903_DRC_FF_DELAY_MASK 0x0020
0569 #define WM8903_DRC_FF_DELAY_SHIFT 5
0570 #define WM8903_DRC_FF_DELAY_WIDTH 1
0571 #define WM8903_DRC_SMOOTH_ENA 0x0008
0572 #define WM8903_DRC_SMOOTH_ENA_MASK 0x0008
0573 #define WM8903_DRC_SMOOTH_ENA_SHIFT 3
0574 #define WM8903_DRC_SMOOTH_ENA_WIDTH 1
0575 #define WM8903_DRC_QR_ENA 0x0004
0576 #define WM8903_DRC_QR_ENA_MASK 0x0004
0577 #define WM8903_DRC_QR_ENA_SHIFT 2
0578 #define WM8903_DRC_QR_ENA_WIDTH 1
0579 #define WM8903_DRC_ANTICLIP_ENA 0x0002
0580 #define WM8903_DRC_ANTICLIP_ENA_MASK 0x0002
0581 #define WM8903_DRC_ANTICLIP_ENA_SHIFT 1
0582 #define WM8903_DRC_ANTICLIP_ENA_WIDTH 1
0583 #define WM8903_DRC_HYST_ENA 0x0001
0584 #define WM8903_DRC_HYST_ENA_MASK 0x0001
0585 #define WM8903_DRC_HYST_ENA_SHIFT 0
0586 #define WM8903_DRC_HYST_ENA_WIDTH 1
0587
0588
0589
0590
0591 #define WM8903_DRC_ATTACK_RATE_MASK 0xF000
0592 #define WM8903_DRC_ATTACK_RATE_SHIFT 12
0593 #define WM8903_DRC_ATTACK_RATE_WIDTH 4
0594 #define WM8903_DRC_DECAY_RATE_MASK 0x0F00
0595 #define WM8903_DRC_DECAY_RATE_SHIFT 8
0596 #define WM8903_DRC_DECAY_RATE_WIDTH 4
0597 #define WM8903_DRC_THRESH_QR_MASK 0x00C0
0598 #define WM8903_DRC_THRESH_QR_SHIFT 6
0599 #define WM8903_DRC_THRESH_QR_WIDTH 2
0600 #define WM8903_DRC_RATE_QR_MASK 0x0030
0601 #define WM8903_DRC_RATE_QR_SHIFT 4
0602 #define WM8903_DRC_RATE_QR_WIDTH 2
0603 #define WM8903_DRC_MINGAIN_MASK 0x000C
0604 #define WM8903_DRC_MINGAIN_SHIFT 2
0605 #define WM8903_DRC_MINGAIN_WIDTH 2
0606 #define WM8903_DRC_MAXGAIN_MASK 0x0003
0607 #define WM8903_DRC_MAXGAIN_SHIFT 0
0608 #define WM8903_DRC_MAXGAIN_WIDTH 2
0609
0610
0611
0612
0613 #define WM8903_DRC_R0_SLOPE_COMP_MASK 0x0038
0614 #define WM8903_DRC_R0_SLOPE_COMP_SHIFT 3
0615 #define WM8903_DRC_R0_SLOPE_COMP_WIDTH 3
0616 #define WM8903_DRC_R1_SLOPE_COMP_MASK 0x0007
0617 #define WM8903_DRC_R1_SLOPE_COMP_SHIFT 0
0618 #define WM8903_DRC_R1_SLOPE_COMP_WIDTH 3
0619
0620
0621
0622
0623 #define WM8903_DRC_THRESH_COMP_MASK 0x07E0
0624 #define WM8903_DRC_THRESH_COMP_SHIFT 5
0625 #define WM8903_DRC_THRESH_COMP_WIDTH 6
0626 #define WM8903_DRC_AMP_COMP_MASK 0x001F
0627 #define WM8903_DRC_AMP_COMP_SHIFT 0
0628 #define WM8903_DRC_AMP_COMP_WIDTH 5
0629
0630
0631
0632
0633 #define WM8903_LINMUTE 0x0080
0634 #define WM8903_LINMUTE_MASK 0x0080
0635 #define WM8903_LINMUTE_SHIFT 7
0636 #define WM8903_LINMUTE_WIDTH 1
0637 #define WM8903_LIN_VOL_MASK 0x001F
0638 #define WM8903_LIN_VOL_SHIFT 0
0639 #define WM8903_LIN_VOL_WIDTH 5
0640
0641
0642
0643
0644 #define WM8903_RINMUTE 0x0080
0645 #define WM8903_RINMUTE_MASK 0x0080
0646 #define WM8903_RINMUTE_SHIFT 7
0647 #define WM8903_RINMUTE_WIDTH 1
0648 #define WM8903_RIN_VOL_MASK 0x001F
0649 #define WM8903_RIN_VOL_SHIFT 0
0650 #define WM8903_RIN_VOL_WIDTH 5
0651
0652
0653
0654
0655 #define WM8903_INL_CM_ENA 0x0040
0656 #define WM8903_INL_CM_ENA_MASK 0x0040
0657 #define WM8903_INL_CM_ENA_SHIFT 6
0658 #define WM8903_INL_CM_ENA_WIDTH 1
0659 #define WM8903_L_IP_SEL_N_MASK 0x0030
0660 #define WM8903_L_IP_SEL_N_SHIFT 4
0661 #define WM8903_L_IP_SEL_N_WIDTH 2
0662 #define WM8903_L_IP_SEL_P_MASK 0x000C
0663 #define WM8903_L_IP_SEL_P_SHIFT 2
0664 #define WM8903_L_IP_SEL_P_WIDTH 2
0665 #define WM8903_L_MODE_MASK 0x0003
0666 #define WM8903_L_MODE_SHIFT 0
0667 #define WM8903_L_MODE_WIDTH 2
0668
0669
0670
0671
0672 #define WM8903_INR_CM_ENA 0x0040
0673 #define WM8903_INR_CM_ENA_MASK 0x0040
0674 #define WM8903_INR_CM_ENA_SHIFT 6
0675 #define WM8903_INR_CM_ENA_WIDTH 1
0676 #define WM8903_R_IP_SEL_N_MASK 0x0030
0677 #define WM8903_R_IP_SEL_N_SHIFT 4
0678 #define WM8903_R_IP_SEL_N_WIDTH 2
0679 #define WM8903_R_IP_SEL_P_MASK 0x000C
0680 #define WM8903_R_IP_SEL_P_SHIFT 2
0681 #define WM8903_R_IP_SEL_P_WIDTH 2
0682 #define WM8903_R_MODE_MASK 0x0003
0683 #define WM8903_R_MODE_SHIFT 0
0684 #define WM8903_R_MODE_WIDTH 2
0685
0686
0687
0688
0689 #define WM8903_DACL_TO_MIXOUTL 0x0008
0690 #define WM8903_DACL_TO_MIXOUTL_MASK 0x0008
0691 #define WM8903_DACL_TO_MIXOUTL_SHIFT 3
0692 #define WM8903_DACL_TO_MIXOUTL_WIDTH 1
0693 #define WM8903_DACR_TO_MIXOUTL 0x0004
0694 #define WM8903_DACR_TO_MIXOUTL_MASK 0x0004
0695 #define WM8903_DACR_TO_MIXOUTL_SHIFT 2
0696 #define WM8903_DACR_TO_MIXOUTL_WIDTH 1
0697 #define WM8903_BYPASSL_TO_MIXOUTL 0x0002
0698 #define WM8903_BYPASSL_TO_MIXOUTL_MASK 0x0002
0699 #define WM8903_BYPASSL_TO_MIXOUTL_SHIFT 1
0700 #define WM8903_BYPASSL_TO_MIXOUTL_WIDTH 1
0701 #define WM8903_BYPASSR_TO_MIXOUTL 0x0001
0702 #define WM8903_BYPASSR_TO_MIXOUTL_MASK 0x0001
0703 #define WM8903_BYPASSR_TO_MIXOUTL_SHIFT 0
0704 #define WM8903_BYPASSR_TO_MIXOUTL_WIDTH 1
0705
0706
0707
0708
0709 #define WM8903_DACL_TO_MIXOUTR 0x0008
0710 #define WM8903_DACL_TO_MIXOUTR_MASK 0x0008
0711 #define WM8903_DACL_TO_MIXOUTR_SHIFT 3
0712 #define WM8903_DACL_TO_MIXOUTR_WIDTH 1
0713 #define WM8903_DACR_TO_MIXOUTR 0x0004
0714 #define WM8903_DACR_TO_MIXOUTR_MASK 0x0004
0715 #define WM8903_DACR_TO_MIXOUTR_SHIFT 2
0716 #define WM8903_DACR_TO_MIXOUTR_WIDTH 1
0717 #define WM8903_BYPASSL_TO_MIXOUTR 0x0002
0718 #define WM8903_BYPASSL_TO_MIXOUTR_MASK 0x0002
0719 #define WM8903_BYPASSL_TO_MIXOUTR_SHIFT 1
0720 #define WM8903_BYPASSL_TO_MIXOUTR_WIDTH 1
0721 #define WM8903_BYPASSR_TO_MIXOUTR 0x0001
0722 #define WM8903_BYPASSR_TO_MIXOUTR_MASK 0x0001
0723 #define WM8903_BYPASSR_TO_MIXOUTR_SHIFT 0
0724 #define WM8903_BYPASSR_TO_MIXOUTR_WIDTH 1
0725
0726
0727
0728
0729 #define WM8903_DACL_TO_MIXSPKL 0x0008
0730 #define WM8903_DACL_TO_MIXSPKL_MASK 0x0008
0731 #define WM8903_DACL_TO_MIXSPKL_SHIFT 3
0732 #define WM8903_DACL_TO_MIXSPKL_WIDTH 1
0733 #define WM8903_DACR_TO_MIXSPKL 0x0004
0734 #define WM8903_DACR_TO_MIXSPKL_MASK 0x0004
0735 #define WM8903_DACR_TO_MIXSPKL_SHIFT 2
0736 #define WM8903_DACR_TO_MIXSPKL_WIDTH 1
0737 #define WM8903_BYPASSL_TO_MIXSPKL 0x0002
0738 #define WM8903_BYPASSL_TO_MIXSPKL_MASK 0x0002
0739 #define WM8903_BYPASSL_TO_MIXSPKL_SHIFT 1
0740 #define WM8903_BYPASSL_TO_MIXSPKL_WIDTH 1
0741 #define WM8903_BYPASSR_TO_MIXSPKL 0x0001
0742 #define WM8903_BYPASSR_TO_MIXSPKL_MASK 0x0001
0743 #define WM8903_BYPASSR_TO_MIXSPKL_SHIFT 0
0744 #define WM8903_BYPASSR_TO_MIXSPKL_WIDTH 1
0745
0746
0747
0748
0749 #define WM8903_DACL_MIXSPKL_VOL 0x0008
0750 #define WM8903_DACL_MIXSPKL_VOL_MASK 0x0008
0751 #define WM8903_DACL_MIXSPKL_VOL_SHIFT 3
0752 #define WM8903_DACL_MIXSPKL_VOL_WIDTH 1
0753 #define WM8903_DACR_MIXSPKL_VOL 0x0004
0754 #define WM8903_DACR_MIXSPKL_VOL_MASK 0x0004
0755 #define WM8903_DACR_MIXSPKL_VOL_SHIFT 2
0756 #define WM8903_DACR_MIXSPKL_VOL_WIDTH 1
0757 #define WM8903_BYPASSL_MIXSPKL_VOL 0x0002
0758 #define WM8903_BYPASSL_MIXSPKL_VOL_MASK 0x0002
0759 #define WM8903_BYPASSL_MIXSPKL_VOL_SHIFT 1
0760 #define WM8903_BYPASSL_MIXSPKL_VOL_WIDTH 1
0761 #define WM8903_BYPASSR_MIXSPKL_VOL 0x0001
0762 #define WM8903_BYPASSR_MIXSPKL_VOL_MASK 0x0001
0763 #define WM8903_BYPASSR_MIXSPKL_VOL_SHIFT 0
0764 #define WM8903_BYPASSR_MIXSPKL_VOL_WIDTH 1
0765
0766
0767
0768
0769 #define WM8903_DACL_TO_MIXSPKR 0x0008
0770 #define WM8903_DACL_TO_MIXSPKR_MASK 0x0008
0771 #define WM8903_DACL_TO_MIXSPKR_SHIFT 3
0772 #define WM8903_DACL_TO_MIXSPKR_WIDTH 1
0773 #define WM8903_DACR_TO_MIXSPKR 0x0004
0774 #define WM8903_DACR_TO_MIXSPKR_MASK 0x0004
0775 #define WM8903_DACR_TO_MIXSPKR_SHIFT 2
0776 #define WM8903_DACR_TO_MIXSPKR_WIDTH 1
0777 #define WM8903_BYPASSL_TO_MIXSPKR 0x0002
0778 #define WM8903_BYPASSL_TO_MIXSPKR_MASK 0x0002
0779 #define WM8903_BYPASSL_TO_MIXSPKR_SHIFT 1
0780 #define WM8903_BYPASSL_TO_MIXSPKR_WIDTH 1
0781 #define WM8903_BYPASSR_TO_MIXSPKR 0x0001
0782 #define WM8903_BYPASSR_TO_MIXSPKR_MASK 0x0001
0783 #define WM8903_BYPASSR_TO_MIXSPKR_SHIFT 0
0784 #define WM8903_BYPASSR_TO_MIXSPKR_WIDTH 1
0785
0786
0787
0788
0789 #define WM8903_DACL_MIXSPKR_VOL 0x0008
0790 #define WM8903_DACL_MIXSPKR_VOL_MASK 0x0008
0791 #define WM8903_DACL_MIXSPKR_VOL_SHIFT 3
0792 #define WM8903_DACL_MIXSPKR_VOL_WIDTH 1
0793 #define WM8903_DACR_MIXSPKR_VOL 0x0004
0794 #define WM8903_DACR_MIXSPKR_VOL_MASK 0x0004
0795 #define WM8903_DACR_MIXSPKR_VOL_SHIFT 2
0796 #define WM8903_DACR_MIXSPKR_VOL_WIDTH 1
0797 #define WM8903_BYPASSL_MIXSPKR_VOL 0x0002
0798 #define WM8903_BYPASSL_MIXSPKR_VOL_MASK 0x0002
0799 #define WM8903_BYPASSL_MIXSPKR_VOL_SHIFT 1
0800 #define WM8903_BYPASSL_MIXSPKR_VOL_WIDTH 1
0801 #define WM8903_BYPASSR_MIXSPKR_VOL 0x0001
0802 #define WM8903_BYPASSR_MIXSPKR_VOL_MASK 0x0001
0803 #define WM8903_BYPASSR_MIXSPKR_VOL_SHIFT 0
0804 #define WM8903_BYPASSR_MIXSPKR_VOL_WIDTH 1
0805
0806
0807
0808
0809 #define WM8903_HPL_MUTE 0x0100
0810 #define WM8903_HPL_MUTE_MASK 0x0100
0811 #define WM8903_HPL_MUTE_SHIFT 8
0812 #define WM8903_HPL_MUTE_WIDTH 1
0813 #define WM8903_HPOUTVU 0x0080
0814 #define WM8903_HPOUTVU_MASK 0x0080
0815 #define WM8903_HPOUTVU_SHIFT 7
0816 #define WM8903_HPOUTVU_WIDTH 1
0817 #define WM8903_HPOUTLZC 0x0040
0818 #define WM8903_HPOUTLZC_MASK 0x0040
0819 #define WM8903_HPOUTLZC_SHIFT 6
0820 #define WM8903_HPOUTLZC_WIDTH 1
0821 #define WM8903_HPOUTL_VOL_MASK 0x003F
0822 #define WM8903_HPOUTL_VOL_SHIFT 0
0823 #define WM8903_HPOUTL_VOL_WIDTH 6
0824
0825
0826
0827
0828 #define WM8903_HPR_MUTE 0x0100
0829 #define WM8903_HPR_MUTE_MASK 0x0100
0830 #define WM8903_HPR_MUTE_SHIFT 8
0831 #define WM8903_HPR_MUTE_WIDTH 1
0832 #define WM8903_HPOUTVU 0x0080
0833 #define WM8903_HPOUTVU_MASK 0x0080
0834 #define WM8903_HPOUTVU_SHIFT 7
0835 #define WM8903_HPOUTVU_WIDTH 1
0836 #define WM8903_HPOUTRZC 0x0040
0837 #define WM8903_HPOUTRZC_MASK 0x0040
0838 #define WM8903_HPOUTRZC_SHIFT 6
0839 #define WM8903_HPOUTRZC_WIDTH 1
0840 #define WM8903_HPOUTR_VOL_MASK 0x003F
0841 #define WM8903_HPOUTR_VOL_SHIFT 0
0842 #define WM8903_HPOUTR_VOL_WIDTH 6
0843
0844
0845
0846
0847 #define WM8903_LINEOUTL_MUTE 0x0100
0848 #define WM8903_LINEOUTL_MUTE_MASK 0x0100
0849 #define WM8903_LINEOUTL_MUTE_SHIFT 8
0850 #define WM8903_LINEOUTL_MUTE_WIDTH 1
0851 #define WM8903_LINEOUTVU 0x0080
0852 #define WM8903_LINEOUTVU_MASK 0x0080
0853 #define WM8903_LINEOUTVU_SHIFT 7
0854 #define WM8903_LINEOUTVU_WIDTH 1
0855 #define WM8903_LINEOUTLZC 0x0040
0856 #define WM8903_LINEOUTLZC_MASK 0x0040
0857 #define WM8903_LINEOUTLZC_SHIFT 6
0858 #define WM8903_LINEOUTLZC_WIDTH 1
0859 #define WM8903_LINEOUTL_VOL_MASK 0x003F
0860 #define WM8903_LINEOUTL_VOL_SHIFT 0
0861 #define WM8903_LINEOUTL_VOL_WIDTH 6
0862
0863
0864
0865
0866 #define WM8903_LINEOUTR_MUTE 0x0100
0867 #define WM8903_LINEOUTR_MUTE_MASK 0x0100
0868 #define WM8903_LINEOUTR_MUTE_SHIFT 8
0869 #define WM8903_LINEOUTR_MUTE_WIDTH 1
0870 #define WM8903_LINEOUTVU 0x0080
0871 #define WM8903_LINEOUTVU_MASK 0x0080
0872 #define WM8903_LINEOUTVU_SHIFT 7
0873 #define WM8903_LINEOUTVU_WIDTH 1
0874 #define WM8903_LINEOUTRZC 0x0040
0875 #define WM8903_LINEOUTRZC_MASK 0x0040
0876 #define WM8903_LINEOUTRZC_SHIFT 6
0877 #define WM8903_LINEOUTRZC_WIDTH 1
0878 #define WM8903_LINEOUTR_VOL_MASK 0x003F
0879 #define WM8903_LINEOUTR_VOL_SHIFT 0
0880 #define WM8903_LINEOUTR_VOL_WIDTH 6
0881
0882
0883
0884
0885 #define WM8903_SPKL_MUTE 0x0100
0886 #define WM8903_SPKL_MUTE_MASK 0x0100
0887 #define WM8903_SPKL_MUTE_SHIFT 8
0888 #define WM8903_SPKL_MUTE_WIDTH 1
0889 #define WM8903_SPKVU 0x0080
0890 #define WM8903_SPKVU_MASK 0x0080
0891 #define WM8903_SPKVU_SHIFT 7
0892 #define WM8903_SPKVU_WIDTH 1
0893 #define WM8903_SPKLZC 0x0040
0894 #define WM8903_SPKLZC_MASK 0x0040
0895 #define WM8903_SPKLZC_SHIFT 6
0896 #define WM8903_SPKLZC_WIDTH 1
0897 #define WM8903_SPKL_VOL_MASK 0x003F
0898 #define WM8903_SPKL_VOL_SHIFT 0
0899 #define WM8903_SPKL_VOL_WIDTH 6
0900
0901
0902
0903
0904 #define WM8903_SPKR_MUTE 0x0100
0905 #define WM8903_SPKR_MUTE_MASK 0x0100
0906 #define WM8903_SPKR_MUTE_SHIFT 8
0907 #define WM8903_SPKR_MUTE_WIDTH 1
0908 #define WM8903_SPKVU 0x0080
0909 #define WM8903_SPKVU_MASK 0x0080
0910 #define WM8903_SPKVU_SHIFT 7
0911 #define WM8903_SPKVU_WIDTH 1
0912 #define WM8903_SPKRZC 0x0040
0913 #define WM8903_SPKRZC_MASK 0x0040
0914 #define WM8903_SPKRZC_SHIFT 6
0915 #define WM8903_SPKRZC_WIDTH 1
0916 #define WM8903_SPKR_VOL_MASK 0x003F
0917 #define WM8903_SPKR_VOL_SHIFT 0
0918 #define WM8903_SPKR_VOL_WIDTH 6
0919
0920
0921
0922
0923 #define WM8903_SPK_DISCHARGE 0x0002
0924 #define WM8903_SPK_DISCHARGE_MASK 0x0002
0925 #define WM8903_SPK_DISCHARGE_SHIFT 1
0926 #define WM8903_SPK_DISCHARGE_WIDTH 1
0927 #define WM8903_VROI 0x0001
0928 #define WM8903_VROI_MASK 0x0001
0929 #define WM8903_VROI_SHIFT 0
0930 #define WM8903_VROI_WIDTH 1
0931
0932
0933
0934
0935 #define WM8903_DCS_MASTER_ENA 0x0010
0936 #define WM8903_DCS_MASTER_ENA_MASK 0x0010
0937 #define WM8903_DCS_MASTER_ENA_SHIFT 4
0938 #define WM8903_DCS_MASTER_ENA_WIDTH 1
0939 #define WM8903_DCS_ENA_MASK 0x000F
0940 #define WM8903_DCS_ENA_SHIFT 0
0941 #define WM8903_DCS_ENA_WIDTH 4
0942
0943
0944
0945
0946 #define WM8903_DCS_MODE_MASK 0x0003
0947 #define WM8903_DCS_MODE_SHIFT 0
0948 #define WM8903_DCS_MODE_WIDTH 2
0949
0950
0951
0952
0953 #define WM8903_HPL_RMV_SHORT 0x0080
0954 #define WM8903_HPL_RMV_SHORT_MASK 0x0080
0955 #define WM8903_HPL_RMV_SHORT_SHIFT 7
0956 #define WM8903_HPL_RMV_SHORT_WIDTH 1
0957 #define WM8903_HPL_ENA_OUTP 0x0040
0958 #define WM8903_HPL_ENA_OUTP_MASK 0x0040
0959 #define WM8903_HPL_ENA_OUTP_SHIFT 6
0960 #define WM8903_HPL_ENA_OUTP_WIDTH 1
0961 #define WM8903_HPL_ENA_DLY 0x0020
0962 #define WM8903_HPL_ENA_DLY_MASK 0x0020
0963 #define WM8903_HPL_ENA_DLY_SHIFT 5
0964 #define WM8903_HPL_ENA_DLY_WIDTH 1
0965 #define WM8903_HPL_ENA 0x0010
0966 #define WM8903_HPL_ENA_MASK 0x0010
0967 #define WM8903_HPL_ENA_SHIFT 4
0968 #define WM8903_HPL_ENA_WIDTH 1
0969 #define WM8903_HPR_RMV_SHORT 0x0008
0970 #define WM8903_HPR_RMV_SHORT_MASK 0x0008
0971 #define WM8903_HPR_RMV_SHORT_SHIFT 3
0972 #define WM8903_HPR_RMV_SHORT_WIDTH 1
0973 #define WM8903_HPR_ENA_OUTP 0x0004
0974 #define WM8903_HPR_ENA_OUTP_MASK 0x0004
0975 #define WM8903_HPR_ENA_OUTP_SHIFT 2
0976 #define WM8903_HPR_ENA_OUTP_WIDTH 1
0977 #define WM8903_HPR_ENA_DLY 0x0002
0978 #define WM8903_HPR_ENA_DLY_MASK 0x0002
0979 #define WM8903_HPR_ENA_DLY_SHIFT 1
0980 #define WM8903_HPR_ENA_DLY_WIDTH 1
0981 #define WM8903_HPR_ENA 0x0001
0982 #define WM8903_HPR_ENA_MASK 0x0001
0983 #define WM8903_HPR_ENA_SHIFT 0
0984 #define WM8903_HPR_ENA_WIDTH 1
0985
0986
0987
0988
0989 #define WM8903_LINEOUTL_RMV_SHORT 0x0080
0990 #define WM8903_LINEOUTL_RMV_SHORT_MASK 0x0080
0991 #define WM8903_LINEOUTL_RMV_SHORT_SHIFT 7
0992 #define WM8903_LINEOUTL_RMV_SHORT_WIDTH 1
0993 #define WM8903_LINEOUTL_ENA_OUTP 0x0040
0994 #define WM8903_LINEOUTL_ENA_OUTP_MASK 0x0040
0995 #define WM8903_LINEOUTL_ENA_OUTP_SHIFT 6
0996 #define WM8903_LINEOUTL_ENA_OUTP_WIDTH 1
0997 #define WM8903_LINEOUTL_ENA_DLY 0x0020
0998 #define WM8903_LINEOUTL_ENA_DLY_MASK 0x0020
0999 #define WM8903_LINEOUTL_ENA_DLY_SHIFT 5
1000 #define WM8903_LINEOUTL_ENA_DLY_WIDTH 1
1001 #define WM8903_LINEOUTL_ENA 0x0010
1002 #define WM8903_LINEOUTL_ENA_MASK 0x0010
1003 #define WM8903_LINEOUTL_ENA_SHIFT 4
1004 #define WM8903_LINEOUTL_ENA_WIDTH 1
1005 #define WM8903_LINEOUTR_RMV_SHORT 0x0008
1006 #define WM8903_LINEOUTR_RMV_SHORT_MASK 0x0008
1007 #define WM8903_LINEOUTR_RMV_SHORT_SHIFT 3
1008 #define WM8903_LINEOUTR_RMV_SHORT_WIDTH 1
1009 #define WM8903_LINEOUTR_ENA_OUTP 0x0004
1010 #define WM8903_LINEOUTR_ENA_OUTP_MASK 0x0004
1011 #define WM8903_LINEOUTR_ENA_OUTP_SHIFT 2
1012 #define WM8903_LINEOUTR_ENA_OUTP_WIDTH 1
1013 #define WM8903_LINEOUTR_ENA_DLY 0x0002
1014 #define WM8903_LINEOUTR_ENA_DLY_MASK 0x0002
1015 #define WM8903_LINEOUTR_ENA_DLY_SHIFT 1
1016 #define WM8903_LINEOUTR_ENA_DLY_WIDTH 1
1017 #define WM8903_LINEOUTR_ENA 0x0001
1018 #define WM8903_LINEOUTR_ENA_MASK 0x0001
1019 #define WM8903_LINEOUTR_ENA_SHIFT 0
1020 #define WM8903_LINEOUTR_ENA_WIDTH 1
1021
1022
1023
1024
1025 #define WM8903_CP_ENA 0x0001
1026 #define WM8903_CP_ENA_MASK 0x0001
1027 #define WM8903_CP_ENA_SHIFT 0
1028 #define WM8903_CP_ENA_WIDTH 1
1029
1030
1031
1032
1033 #define WM8903_CP_DYN_FREQ 0x0002
1034 #define WM8903_CP_DYN_FREQ_MASK 0x0002
1035 #define WM8903_CP_DYN_FREQ_SHIFT 1
1036 #define WM8903_CP_DYN_FREQ_WIDTH 1
1037 #define WM8903_CP_DYN_V 0x0001
1038 #define WM8903_CP_DYN_V_MASK 0x0001
1039 #define WM8903_CP_DYN_V_SHIFT 0
1040 #define WM8903_CP_DYN_V_WIDTH 1
1041
1042
1043
1044
1045 #define WM8903_WSEQ_ENA 0x0100
1046 #define WM8903_WSEQ_ENA_MASK 0x0100
1047 #define WM8903_WSEQ_ENA_SHIFT 8
1048 #define WM8903_WSEQ_ENA_WIDTH 1
1049 #define WM8903_WSEQ_WRITE_INDEX_MASK 0x001F
1050 #define WM8903_WSEQ_WRITE_INDEX_SHIFT 0
1051 #define WM8903_WSEQ_WRITE_INDEX_WIDTH 5
1052
1053
1054
1055
1056 #define WM8903_WSEQ_DATA_WIDTH_MASK 0x7000
1057 #define WM8903_WSEQ_DATA_WIDTH_SHIFT 12
1058 #define WM8903_WSEQ_DATA_WIDTH_WIDTH 3
1059 #define WM8903_WSEQ_DATA_START_MASK 0x0F00
1060 #define WM8903_WSEQ_DATA_START_SHIFT 8
1061 #define WM8903_WSEQ_DATA_START_WIDTH 4
1062 #define WM8903_WSEQ_ADDR_MASK 0x00FF
1063 #define WM8903_WSEQ_ADDR_SHIFT 0
1064 #define WM8903_WSEQ_ADDR_WIDTH 8
1065
1066
1067
1068
1069 #define WM8903_WSEQ_EOS 0x4000
1070 #define WM8903_WSEQ_EOS_MASK 0x4000
1071 #define WM8903_WSEQ_EOS_SHIFT 14
1072 #define WM8903_WSEQ_EOS_WIDTH 1
1073 #define WM8903_WSEQ_DELAY_MASK 0x0F00
1074 #define WM8903_WSEQ_DELAY_SHIFT 8
1075 #define WM8903_WSEQ_DELAY_WIDTH 4
1076 #define WM8903_WSEQ_DATA_MASK 0x00FF
1077 #define WM8903_WSEQ_DATA_SHIFT 0
1078 #define WM8903_WSEQ_DATA_WIDTH 8
1079
1080
1081
1082
1083 #define WM8903_WSEQ_ABORT 0x0200
1084 #define WM8903_WSEQ_ABORT_MASK 0x0200
1085 #define WM8903_WSEQ_ABORT_SHIFT 9
1086 #define WM8903_WSEQ_ABORT_WIDTH 1
1087 #define WM8903_WSEQ_START 0x0100
1088 #define WM8903_WSEQ_START_MASK 0x0100
1089 #define WM8903_WSEQ_START_SHIFT 8
1090 #define WM8903_WSEQ_START_WIDTH 1
1091 #define WM8903_WSEQ_START_INDEX_MASK 0x003F
1092 #define WM8903_WSEQ_START_INDEX_SHIFT 0
1093 #define WM8903_WSEQ_START_INDEX_WIDTH 6
1094
1095
1096
1097
1098 #define WM8903_WSEQ_CURRENT_INDEX_MASK 0x03F0
1099 #define WM8903_WSEQ_CURRENT_INDEX_SHIFT 4
1100 #define WM8903_WSEQ_CURRENT_INDEX_WIDTH 6
1101 #define WM8903_WSEQ_BUSY 0x0001
1102 #define WM8903_WSEQ_BUSY_MASK 0x0001
1103 #define WM8903_WSEQ_BUSY_SHIFT 0
1104 #define WM8903_WSEQ_BUSY_WIDTH 1
1105
1106
1107
1108
1109 #define WM8903_MASK_WRITE_ENA 0x0001
1110 #define WM8903_MASK_WRITE_ENA_MASK 0x0001
1111 #define WM8903_MASK_WRITE_ENA_SHIFT 0
1112 #define WM8903_MASK_WRITE_ENA_WIDTH 1
1113
1114
1115
1116
1117 #define WM8903_MICSHRT_EINT 0x8000
1118 #define WM8903_MICSHRT_EINT_MASK 0x8000
1119 #define WM8903_MICSHRT_EINT_SHIFT 15
1120 #define WM8903_MICSHRT_EINT_WIDTH 1
1121 #define WM8903_MICDET_EINT 0x4000
1122 #define WM8903_MICDET_EINT_MASK 0x4000
1123 #define WM8903_MICDET_EINT_SHIFT 14
1124 #define WM8903_MICDET_EINT_WIDTH 1
1125 #define WM8903_WSEQ_BUSY_EINT 0x2000
1126 #define WM8903_WSEQ_BUSY_EINT_MASK 0x2000
1127 #define WM8903_WSEQ_BUSY_EINT_SHIFT 13
1128 #define WM8903_WSEQ_BUSY_EINT_WIDTH 1
1129 #define WM8903_GP5_EINT 0x0010
1130 #define WM8903_GP5_EINT_MASK 0x0010
1131 #define WM8903_GP5_EINT_SHIFT 4
1132 #define WM8903_GP5_EINT_WIDTH 1
1133 #define WM8903_GP4_EINT 0x0008
1134 #define WM8903_GP4_EINT_MASK 0x0008
1135 #define WM8903_GP4_EINT_SHIFT 3
1136 #define WM8903_GP4_EINT_WIDTH 1
1137 #define WM8903_GP3_EINT 0x0004
1138 #define WM8903_GP3_EINT_MASK 0x0004
1139 #define WM8903_GP3_EINT_SHIFT 2
1140 #define WM8903_GP3_EINT_WIDTH 1
1141 #define WM8903_GP2_EINT 0x0002
1142 #define WM8903_GP2_EINT_MASK 0x0002
1143 #define WM8903_GP2_EINT_SHIFT 1
1144 #define WM8903_GP2_EINT_WIDTH 1
1145 #define WM8903_GP1_EINT 0x0001
1146 #define WM8903_GP1_EINT_MASK 0x0001
1147 #define WM8903_GP1_EINT_SHIFT 0
1148 #define WM8903_GP1_EINT_WIDTH 1
1149
1150
1151
1152
1153 #define WM8903_IM_MICSHRT_EINT 0x8000
1154 #define WM8903_IM_MICSHRT_EINT_MASK 0x8000
1155 #define WM8903_IM_MICSHRT_EINT_SHIFT 15
1156 #define WM8903_IM_MICSHRT_EINT_WIDTH 1
1157 #define WM8903_IM_MICDET_EINT 0x4000
1158 #define WM8903_IM_MICDET_EINT_MASK 0x4000
1159 #define WM8903_IM_MICDET_EINT_SHIFT 14
1160 #define WM8903_IM_MICDET_EINT_WIDTH 1
1161 #define WM8903_IM_WSEQ_BUSY_EINT 0x2000
1162 #define WM8903_IM_WSEQ_BUSY_EINT_MASK 0x2000
1163 #define WM8903_IM_WSEQ_BUSY_EINT_SHIFT 13
1164 #define WM8903_IM_WSEQ_BUSY_EINT_WIDTH 1
1165 #define WM8903_IM_GP5_EINT 0x0010
1166 #define WM8903_IM_GP5_EINT_MASK 0x0010
1167 #define WM8903_IM_GP5_EINT_SHIFT 4
1168 #define WM8903_IM_GP5_EINT_WIDTH 1
1169 #define WM8903_IM_GP4_EINT 0x0008
1170 #define WM8903_IM_GP4_EINT_MASK 0x0008
1171 #define WM8903_IM_GP4_EINT_SHIFT 3
1172 #define WM8903_IM_GP4_EINT_WIDTH 1
1173 #define WM8903_IM_GP3_EINT 0x0004
1174 #define WM8903_IM_GP3_EINT_MASK 0x0004
1175 #define WM8903_IM_GP3_EINT_SHIFT 2
1176 #define WM8903_IM_GP3_EINT_WIDTH 1
1177 #define WM8903_IM_GP2_EINT 0x0002
1178 #define WM8903_IM_GP2_EINT_MASK 0x0002
1179 #define WM8903_IM_GP2_EINT_SHIFT 1
1180 #define WM8903_IM_GP2_EINT_WIDTH 1
1181 #define WM8903_IM_GP1_EINT 0x0001
1182 #define WM8903_IM_GP1_EINT_MASK 0x0001
1183 #define WM8903_IM_GP1_EINT_SHIFT 0
1184 #define WM8903_IM_GP1_EINT_WIDTH 1
1185
1186
1187
1188
1189 #define WM8903_MICSHRT_INV 0x8000
1190 #define WM8903_MICSHRT_INV_MASK 0x8000
1191 #define WM8903_MICSHRT_INV_SHIFT 15
1192 #define WM8903_MICSHRT_INV_WIDTH 1
1193 #define WM8903_MICDET_INV 0x4000
1194 #define WM8903_MICDET_INV_MASK 0x4000
1195 #define WM8903_MICDET_INV_SHIFT 14
1196 #define WM8903_MICDET_INV_WIDTH 1
1197
1198
1199
1200
1201 #define WM8903_IRQ_POL 0x0001
1202 #define WM8903_IRQ_POL_MASK 0x0001
1203 #define WM8903_IRQ_POL_SHIFT 0
1204 #define WM8903_IRQ_POL_WIDTH 1
1205
1206
1207
1208
1209 #define WM8903_ADC_DIG_MIC 0x0200
1210 #define WM8903_ADC_DIG_MIC_MASK 0x0200
1211 #define WM8903_ADC_DIG_MIC_SHIFT 9
1212 #define WM8903_ADC_DIG_MIC_WIDTH 1
1213
1214
1215
1216
1217 #define WM8903_PGA_BIAS_MASK 0x0070
1218 #define WM8903_PGA_BIAS_SHIFT 4
1219 #define WM8903_PGA_BIAS_WIDTH 3
1220
1221 #endif