410 AD_LOGD(
"configDefault ERROR");
457 snprintf(msg, 80,
"write 0x%x = 0x%x", enum_reg, value);
462 result =
writeEx(enum_reg, value);
483 result =
read(reg, &data);
502 result =
read(reg, &data);
504 result =
write(reg, data & ~mask);
541 AD_LOGD(
"adjustHeadphoneOutputVolume");
562 AD_LOGD(
"adjustSpeakerOutputVolume");
610 if (!result)
return result;
611 value &= ~WM8960_PWR_MGMT1_VMIDSEL_5K;
621 if (!result)
return result;
639 if (!result)
return result;
682 if (!result)
return result;
686 if (!result)
return result;
701 if (!result)
return result;
705 if (!result)
return result;
706 value &= ~WM8960_PWR_MGMT1_VMIDSEL_5K;
738 uint16_t dac_div_mask;
739 uint16_t adc_div_mask;
749 result =
setupPll(mclk_hz, sample_rate);
750 if (!result)
return result;
755 switch (sample_rate) {
796 sysclk_div_mask | clk_sel_mask);
797 if (!result)
return result;
800 (uint16_t)mode | (uint16_t)word_length |
814 for (
int j = 0x1; j <= 0x37; j++) {
820 snprintf(msg, 80,
"%x: %x", j, data);
830 return i2c_bus_write_bytes(
i2c_handle, address, data, 2,
nullptr, 0) ==
836 uint8_t reg = enum_reg;
838 data[0] = (reg << 1) | ((uint8_t)((value >> 8) & 0x0001));
839 data[1] = (uint8_t)(value & 0x00FF);
845 0x0097, 0x0097, 0x0000, 0x0000,
846 0x0000, 0x0008, 0x0000, 0x000a,
847 0x01c0, 0x0000, 0x00ff, 0x00ff,
848 0x0000, 0x0000, 0x0000, 0x0000,
849 0x0000, 0x007b, 0x0100, 0x0032,
850 0x0000, 0x00c3, 0x00c3, 0x01c0,
851 0x0000, 0x0000, 0x0000, 0x0000,
852 0x0000, 0x0000, 0x0000, 0x0000,
853 0x0100, 0x0100, 0x0050, 0x0050,
854 0x0050, 0x0050, 0x0000, 0x0000,
855 0x0000, 0x0000, 0x0040, 0x0000,
856 0x0000, 0x0050, 0x0050, 0x0000,
857 0x0000, 0x0037, 0x004d, 0x0080,
858 0x0008, 0x0031, 0x0026, 0x00e9,
884 AD_LOGD(
"Enable VREF and set VMID=50K");
902 AD_LOGD(
"Enable DACL, DACR, LOUT1 and ROUT1");
917 uint16_t pwr_mgmt3 = 0;
941 AD_LOGD(
"WM8960_REG_PWR_MGMT3");
950 .value = mic_sig_path},
955 .value = mic_sig_path},
1047 bool use_prescale =
false;
1048 uint32_t sys_clk_hz;
1050 switch (sample_rate) {
1068 uint32_t f2 = (4 * 2 * sys_clk_hz);
1069 uint32_t f1 = mclk_hz;
1070 float R = (float)f2 / (
float)f1;
1071 if ((R <= 5) || ((R * 2 - 8) < (8 - R))) {
1072 use_prescale =
true;
1075 if ((R <= 5) || (R >= 13)) {
1080 pll_k = (uint32_t)((
float)0x1000000 * (R - (float)pll_n));
1086 if (!result)
return result;
1089 if (!result)
return result;
1092 if (!result)
return result;
1095 if (!result)
return result;
1103 uint16_t volume_bits_mask) {
1108 result =
read(left_vol_reg, &data);
1109 if (!result)
return result;
1111 data &= (~update_bit & ~volume_bits_mask);
1113 result =
write(left_vol_reg, data);
1114 if (!result)
return result;
1116 result =
read(right_vol_reg, &data);
1117 if (!result)
return result;
1119 data &= ~volume_bits_mask;
1120 data |= (volume | update_bit);
1121 result =
write(right_vol_reg, data);
#define RESULT_OK
Definition DriverCommon.h:74
#define AD_LOGD(...)
Definition Logger.h:12
Header-only driver class for the WM8960 audio codec chip.
Definition WM8960.h:342
bool clear(wm8960_reg_t reg, uint16_t mask)
This function clears bits in a register.
Definition WM8960.h:499
bool writeEx(wm8960_reg_t enum_reg, uint16_t value)
Definition WM8960.h:835
bool i2cWrite(uint8_t address, uint8_t data[2])
Definition WM8960.h:829
bool adjustHeadphoneOutputVolume(uint8_t volume)
This function updates the volume of both the left and right channels of the headphone output.
Definition WM8960.h:540
uint32_t write_retry_count
Definition WM8960.h:1130
void setAddress(int addr)
Defines the I2C device address.
Definition WM8960.h:350
uint8_t enabled_features
Definition WM8960.h:1128
bool deactivate(void)
This function powers down the modules the required for the features enabled using init.
Definition WM8960.h:666
bool setOutputVolume(uint8_t volume)
This function updates the volume of both the left and right channels of the speaker and headphones.
Definition WM8960.h:582
int i2c_addr
Definition WM8960.h:1127
bool adjustInputVolume(uint8_t volume)
This function updates the volume of both the left and right channels of the microphone input.
Definition WM8960.h:519
bool pll_enabled
Definition WM8960.h:1129
void setWriteRetryCount(uint32_t count)
Defines the number of times we retry to update a register value via I2C. This might help if you have ...
Definition WM8960.h:362
bool adjustVolume(uint8_t volume, wm8960_reg_t left_vol_reg, wm8960_reg_t right_vol_reg, uint16_t update_bit, uint16_t volume_bits_mask)
Definition WM8960.h:1101
bool setupPll(uint32_t mclk_hz, wm8960_adc_dac_sample_rate_t sample_rate)
Definition WM8960.h:1042
bool read(wm8960_reg_t reg, uint16_t *data)
This function reads value of an audio codec register.
Definition WM8960.h:438
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition WM8960.h:347
void deinit()
Frees up any resources allocated by the driver as part of init().
Definition WM8960.h:421
bool activate(void)
This function powers up the modules the required for the features enabled using init....
Definition WM8960.h:603
i2c_bus_handle_t i2c_handle
Definition WM8960.h:1126
bool init(uint8_t features)
Initialize the I2C communication with the audio codec, reset the codec and apply default configuratio...
Definition WM8960.h:401
bool adjustSpeakerOutputVolume(uint8_t volume)
This function updates the volume of both the left and right channels of the speaker output.
Definition WM8960.h:561
bool write(wm8960_reg_t enum_reg, uint16_t value)
This function writes data to an audio codec register.
Definition WM8960.h:455
uint16_t register_map[REGISTER_MAP_SIZE]
Definition WM8960.h:1136
bool dump()
This function dumps the actual register values.
Definition WM8960.h:811
bool configureClocking(uint32_t mclk_hz, bool enable_pll, wm8960_adc_dac_sample_rate_t sample_rate, wm8960_word_length_t word_length, wm8960_mode_t mode)
This function configures the master clock and the digital interface for the audio codec.
Definition WM8960.h:732
bool configDefault(uint8_t features)
Definition WM8960.h:868
bool set(wm8960_reg_t reg, uint16_t mask)
This function sets bits in a register.
Definition WM8960.h:480
Namespace for audio driver components.
Definition AudioBoard.h:5
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_29dB
Definition WM8960.h:170
static constexpr uint16_t WM8960_LEFT_OUT_MIX_LI2LO_EN
Definition WM8960.h:173
static constexpr uint16_t WM8960_CTR2_DACSLOPE_SS
Definition WM8960.h:92
static constexpr uint16_t WM8960_CTR1_ADCPOL_L_INV
Definition WM8960.h:79
static constexpr uint16_t WM8960_CTR2_DACPOL_LR_INV
Definition WM8960.h:87
static constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_OUT1VOL_0dB
Definition WM8960.h:57
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_3
Definition WM8960.h:116
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_3
Definition WM8960.h:108
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_1_5
Definition WM8960.h:114
static constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_OUT1VU
Definition WM8960.h:55
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_32
Definition WM8960.h:126
wm8960_word_length_t
Definition WM8960.h:308
@ WM8960_WL_32BITS
Definition WM8960.h:312
@ WM8960_WL_24BITS
Definition WM8960.h:311
@ WM8960_WL_16BITS
Definition WM8960.h:309
@ WM8960_WL_20BITS
Definition WM8960.h:310
static constexpr uint16_t WM8960_PLL_N_SDM_INT
Definition WM8960.h:188
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_6
Definition WM8960.h:72
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_3
Definition WM8960.h:62
static constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKRVOL_0dB
Definition WM8960.h:180
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_2
Definition WM8960.h:61
static constexpr uint16_t WM8960_PWR_MGMT2_DACL_UP
Definition WM8960.h:156
static constexpr uint16_t WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_30dB
Definition WM8960.h:145
static constexpr uint16_t WM8960_3D_CTR_3DUC_LOW
Definition WM8960.h:137
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_INMUTE
Definition WM8960.h:51
static constexpr uint16_t WM8960_AUDIO_INTF0_BCLKINV
Definition WM8960.h:94
static constexpr uint16_t WM8960_CTR2_DACPOL_R_INV
Definition WM8960.h:89
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_INVOL_30dB
Definition WM8960.h:54
static constexpr uint16_t WM8960_CTR1_DACMU_NO
Definition WM8960.h:81
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MP2_CON
Definition WM8960.h:166
static constexpr uint16_t WM8960_PWR_MGMT2_LOUT1_UP
Definition WM8960.h:158
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_16
Definition WM8960.h:123
static constexpr uint16_t WM8960_PWR_MGMT1_ADCR_UP
Definition WM8960.h:153
static constexpr uint16_t WM8960_AUDIO_INTF1_WL8_8BIT
Definition WM8960.h:128
static constexpr uint16_t WM8960_CTR1_DEEMPH_32_KHZ
Definition WM8960.h:85
static constexpr uint16_t WM8960_CTR1_DACMU_MUTE
Definition WM8960.h:82
wm8960_reg_t
Definition WM8960.h:209
@ WM8960_REG_CTR2
Definition WM8960.h:216
@ WM8960_REG_RESET
Definition WM8960.h:225
@ WM8960_REG_ADD_CTL2
Definition WM8960.h:234
@ WM8960_REG_CLK2
Definition WM8960.h:218
@ WM8960_REG_LOUT2_VOL
Definition WM8960.h:250
@ WM8960_REG_RIGHT_ADC_VOL
Definition WM8960.h:232
@ WM8960_REG_PLL_K2
Definition WM8960.h:264
@ WM8960_REG_LOUT1_VOL
Definition WM8960.h:212
@ WM8960_REG_RSVD5
Definition WM8960.h:245
@ WM8960_REG_ADD_CTL4
Definition WM8960.h:258
@ WM8960_REG_PLL_K3
Definition WM8960.h:265
@ WM8960_REG_CLASS_D_CTL3
Definition WM8960.h:261
@ WM8960_REG_NOISE_GATE
Definition WM8960.h:230
@ WM8960_REG_BYPASS2
Definition WM8960.h:256
@ WM8960_REG_ALC1
Definition WM8960.h:227
@ WM8960_REG_ADCR_SIG_PTH
Definition WM8960.h:243
@ WM8960_REG_IN_BOOST_MIX1
Definition WM8960.h:253
@ WM8960_REG_RSVD6
Definition WM8960.h:246
@ WM8960_REG_LEFT_DAC_VOL
Definition WM8960.h:220
@ WM8960_REG_RSVD2
Definition WM8960.h:224
@ WM8960_REG_AUDIO_INTF0
Definition WM8960.h:217
@ WM8960_REG_PWR_MGMT3
Definition WM8960.h:257
@ WM8960_REG_ADD_CTL1
Definition WM8960.h:233
@ WM8960_REG_RIGHT_IN_VOL
Definition WM8960.h:211
@ WM8960_REG_ADCL_SIG_PTH
Definition WM8960.h:242
@ WM8960_REG_BYPASS1
Definition WM8960.h:255
@ WM8960_REG_AUDIO_INTF1
Definition WM8960.h:219
@ WM8960_REG_ALC2
Definition WM8960.h:228
@ WM8960_REG_MONO_OUT_MIX2
Definition WM8960.h:249
@ WM8960_REG_MONO_OUT_VOL
Definition WM8960.h:252
@ WM8960_REG_LEFT_IN_VOL
Definition WM8960.h:210
@ WM8960_REG_RSVD3
Definition WM8960.h:240
@ WM8960_REG_ADD_CTL3
Definition WM8960.h:237
@ WM8960_REG_IN_BOOST_MIX2
Definition WM8960.h:254
@ WM8960_REG_ANTI_POP2
Definition WM8960.h:239
@ WM8960_REG_PWR_MGMT2
Definition WM8960.h:236
@ WM8960_REG_RIGHT_OUT_MIX
Definition WM8960.h:247
@ WM8960_REG_CLK1
Definition WM8960.h:214
@ WM8960_REG_PLL_N
Definition WM8960.h:262
@ WM8960_REG_RSVD0
Definition WM8960.h:222
@ WM8960_REG_PLL_K1
Definition WM8960.h:263
@ WM8960_REG_ROUT1_VOL
Definition WM8960.h:213
@ WM8960_REG_LEFT_ADC_VOL
Definition WM8960.h:231
@ WM8960_REG_CTR1
Definition WM8960.h:215
@ WM8960_REG_LEFT_OUT_MIX
Definition WM8960.h:244
@ WM8960_REG_RSVD4
Definition WM8960.h:241
@ WM8960_REG_RSVD1
Definition WM8960.h:223
@ WM8960_REG_MONO_OUT_MIX1
Definition WM8960.h:248
@ WM8960_REG_ALC3
Definition WM8960.h:229
@ WM8960_REG_RIGHT_DAC_VOL
Definition WM8960.h:221
@ WM8960_REG_RSVD7
Definition WM8960.h:260
@ WM8960_REG_CLASS_D_CTL1
Definition WM8960.h:259
@ WM8960_REG_3D_CTR
Definition WM8960.h:226
@ WM8960_REG_ROUT2_VOL
Definition WM8960.h:251
@ WM8960_REG_ANTI_POP1
Definition WM8960.h:238
@ WM8960_REG_PWR_MGMT1
Definition WM8960.h:235
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_6
Definition WM8960.h:119
static constexpr uint16_t WM8960_CLK1_SYSCLKDIV_BY_2
Definition WM8960.h:74
static constexpr uint16_t WM8960_PWR_MGMT2_ROUT1_UP
Definition WM8960.h:159
static constexpr uint16_t WM8960_AUDIO_INTF0_MS_SLAVE
Definition WM8960.h:96
static constexpr uint16_t WM8960_AUDIO_INTF0_WL_32BITS
Definition WM8960.h:102
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_5_5
Definition WM8960.h:64
static constexpr uint16_t WM8960_AUDIO_INTF0_MS_MASTER
Definition WM8960.h:95
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_4
Definition WM8960.h:70
static constexpr uint16_t WM8960_PLL_N_PLLPRESCALE_DI
Definition WM8960.h:186
static constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_R_JUSTIF
Definition WM8960.h:103
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_2
Definition WM8960.h:115
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_6
Definition WM8960.h:195
static constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKRZC
Definition WM8960.h:179
static constexpr uint16_t WM8960_CTR2_DACMR_SLOW_RMP
Definition WM8960.h:91
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_20dB
Definition WM8960.h:169
static constexpr uint16_t WM8960_PWR_MGMT1_MICB_UP
Definition WM8960.h:154
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_12
Definition WM8960.h:112
wm8960_adc_dac_sample_rate_t
Definition WM8960.h:291
@ WM8960_ADC_DAC_SAMPLE_RATE_11_025_KHZ
Definition WM8960.h:299
@ WM8960_ADC_DAC_SAMPLE_RATE_8_KHZ
Definition WM8960.h:301
@ WM8960_ADC_DAC_SAMPLE_RATE_16_KHZ
Definition WM8960.h:297
@ WM8960_ADC_DAC_SAMPLE_RATE_32_KHZ
Definition WM8960.h:294
@ WM8960_ADC_DAC_SAMPLE_RATE_8_018_KHZ
Definition WM8960.h:300
@ WM8960_ADC_DAC_SAMPLE_RATE_24_KHZ
Definition WM8960.h:295
@ WM8960_ADC_DAC_SAMPLE_RATE_48_KHZ
Definition WM8960.h:292
@ WM8960_ADC_DAC_SAMPLE_RATE_22_05_KHZ
Definition WM8960.h:296
@ WM8960_ADC_DAC_SAMPLE_RATE_12_KHZ
Definition WM8960.h:298
@ WM8960_ADC_DAC_SAMPLE_RATE_44_1_KHZ
Definition WM8960.h:293
static constexpr uint16_t WM8960_AUDIO_INTF1_ADCCOMP_ULAW
Definition WM8960.h:131
static constexpr uint16_t WM8960_AUDIO_INTF1_ADCCOMP_ALAW
Definition WM8960.h:132
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_6
Definition WM8960.h:110
static constexpr uint16_t WM8960_AUDIO_INTF0_ALRSWAP
Definition WM8960.h:93
static constexpr uint16_t WM8960_3D_CTR_3DEN
Definition WM8960.h:142
static constexpr uint16_t WM8960_RIGHT_OUT_MIX_RD2RO_EN
Definition WM8960.h:174
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_12
Definition WM8960.h:122
static constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKVU
Definition WM8960.h:178
static constexpr uint16_t WM8960_AUDIO_INTF1_DACCOMP_ULAW
Definition WM8960.h:130
static constexpr uint16_t WM8960_3D_CTR_3DLC_LOW
Definition WM8960.h:139
static constexpr uint16_t WM8960_MONO_OUT_MIX1_MIX2_2MO_EN
Definition WM8960.h:177
static constexpr uint16_t WM8960_3D_CTR_3DLC_HIGH
Definition WM8960.h:140
static constexpr uint16_t WM8960_AUDIO_INTF0_WL_20BITS
Definition WM8960.h:100
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_4
Definition WM8960.h:63
static constexpr uint16_t WM8960_PWR_MGMT1_VREF_UP
Definition WM8960.h:149
static constexpr uint16_t WM8960_PLL_N_PLLPRESCALE_EN
Definition WM8960.h:187
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MN1_CON
Definition WM8960.h:164
static constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_O1ZC_ZC
Definition WM8960.h:56
static constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKRVOL_6dB
Definition WM8960.h:181
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_1_5
Definition WM8960.h:60
static constexpr uint16_t WM8960_PWR_MGMT3_RMIC_UP
Definition WM8960.h:183
static constexpr uint16_t WM8960_MONO_OUT_MIX1_MIX2_2MO_DI
Definition WM8960.h:176
static constexpr uint16_t WM8960_PWR_MGMT1_VMIDSEL_50K
Definition WM8960.h:146
static constexpr uint16_t WM8960_RIGHT_OUT_MIX_RI2RO_EN
Definition WM8960.h:175
static constexpr uint16_t WM8960_CLK1_CLKSEL_MCLK
Definition WM8960.h:75
static constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_I2S_MODE
Definition WM8960.h:105
static constexpr int WM8960_I2C_ADDRESS
Definition WM8960.h:49
static constexpr uint16_t WM8960_PWR_MGMT3_LMIC_UP
Definition WM8960.h:182
static constexpr uint16_t WM8960_AUDIO_INTF0_LRP_INV
Definition WM8960.h:98
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_4
Definition WM8960.h:109
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MP3_CON
Definition WM8960.h:165
static constexpr uint16_t WM8960_PWR_MGMT3_LOMIX_UP
Definition WM8960.h:184
static constexpr uint16_t WM8960_3D_CTR_3DDEPTH_100
Definition WM8960.h:141
static constexpr uint16_t WM8960_CTR1_DEEMPH_44_1_KHZ
Definition WM8960.h:84
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_2
Definition WM8960.h:107
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_3
Definition WM8960.h:192
static constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_DSP_MODE
Definition WM8960.h:106
static constexpr uint16_t WM8960_PWR_MGMT3_ROMIX_UP
Definition WM8960.h:185
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_IZC_ZC
Definition WM8960.h:52
static constexpr uint16_t WM8960_PWR_MGMT2_SPKR_UP
Definition WM8960.h:161
static constexpr uint16_t WM8960_PWR_MGMT1_VMIDSEL_5K
Definition WM8960.h:148
wm8960_mode_t
Definition WM8960.h:318
@ WM8960_MODE_MASTER
Definition WM8960.h:319
@ WM8960_MODE_SLAVE
Definition WM8960.h:320
static constexpr uint16_t WM8960_AUDIO_INTF1_ALRCGPIO_GPIO
Definition WM8960.h:127
static constexpr uint16_t WM8960_PWR_MGMT1_VMIDSEL_250K
Definition WM8960.h:147
static constexpr uint16_t WM8960_PWR_MGMT2_OUT3_UP
Definition WM8960.h:162
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_3
Definition WM8960.h:69
static constexpr uint16_t WM8960_AUDIO_INTF1_LOOPBACK_EN
Definition WM8960.h:133
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_22
Definition WM8960.h:124
_wm8960_sysclk_freq_t
Definition WM8960.h:326
@ _WM8960_SYSCLK_FREQ_11289600_HZ
Definition WM8960.h:328
@ _WM8960_SYSCLK_FREQ_12288000_HZ
Definition WM8960.h:327
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_24
Definition WM8960.h:125
static constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_OUT1VOL_6dB
Definition WM8960.h:58
static constexpr uint16_t WM8960_AUDIO_INTF1_DACCOMP_ALAW
Definition WM8960.h:129
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_6
Definition WM8960.h:65
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_4
Definition WM8960.h:193
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_2
Definition WM8960.h:68
static constexpr uint16_t WM8960_LEFT_RIGHT_DAC_VOL_DACVU_UP
Definition WM8960.h:134
static constexpr uint32_t WM8960_TIMEOUT_MS
Definition WM8960.h:197
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_16
Definition WM8960.h:113
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_5_5
Definition WM8960.h:194
static constexpr uint16_t WM8960_CTR1_ADCPOL_R_INV
Definition WM8960.h:80
static constexpr uint16_t WM8960_AUDIO_INTF0_WL_24BITS
Definition WM8960.h:101
static constexpr uint16_t WM8960_LEFT_OUT_MIX_LD2LO_EN
Definition WM8960.h:172
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_IPVU
Definition WM8960.h:50
static constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_L_JUSTIF
Definition WM8960.h:104
static constexpr uint16_t WM8960_PWR_MGMT1_ADCL_UP
Definition WM8960.h:152
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_5_5
Definition WM8960.h:71
static constexpr uint16_t WM8960_CTR1_DACDIV2_6B_EN
Definition WM8960.h:77
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_5_5
Definition WM8960.h:118
static constexpr uint16_t WM8960_LEFT_RIGHT_DAC_VOL_127dB
Definition WM8960.h:136
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_13dB
Definition WM8960.h:168
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_1
Definition WM8960.h:190
static constexpr uint16_t WM8960_3D_CTR_3DUC_HIGH
Definition WM8960.h:138
static constexpr uint16_t WM8960_PWR_MGMT2_DACR_UP
Definition WM8960.h:157
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_1_5
Definition WM8960.h:67
static constexpr uint16_t WM8960_CLK1_SYSCLKDIV_BY_1
Definition WM8960.h:73
static constexpr uint16_t WM8960_LEFT_RIGHT_DAC_VOL_0dB
Definition WM8960.h:135
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_INVOL_0dB
Definition WM8960.h:53
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_0dB
Definition WM8960.h:167
static constexpr uint16_t WM8960_CTR2_DACSMM_GRAD
Definition WM8960.h:90
static constexpr uint16_t WM8960_PLL_N_SDM_FRAC
Definition WM8960.h:189
static constexpr uint16_t WM8960_AUDIO_INTF0_DLRSWAP
Definition WM8960.h:97
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_11
Definition WM8960.h:121
static constexpr uint16_t WM8960_PWR_MGMT2_PLL_EN_UP
Definition WM8960.h:163
wm8960_features_t
Definition WM8960.h:275
@ WM8960_FEATURE_HEADPHONE
Definition WM8960.h:280
@ WM8960_FEATURE_MICROPHONE1
Definition WM8960.h:277
@ WM8960_FEATURE_SPEAKER
Definition WM8960.h:281
@ WM8960_FEATURE_MICROPHONE2
Definition WM8960.h:278
@ WM8960_FEATURE_MICROPHONE3
Definition WM8960.h:279
@ WM8960_FEATURE_NONE
Definition WM8960.h:276
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_1
Definition WM8960.h:66
static constexpr uint16_t WM8960_CTR1_DEEMPH_48_KHZ
Definition WM8960.h:83
static constexpr uint16_t WM8960_CTR1_ADCPOL_LR_INV
Definition WM8960.h:78
static constexpr uint8_t WM8960_FEATURE_MICROPHONES
Definition WM8960.h:284
static constexpr uint16_t WM8960_CTR1_ADCHPD_DIS
Definition WM8960.h:86
static constexpr uint16_t WM8960_AUDIO_INTF0_WL_16BITS
Definition WM8960.h:99
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_4
Definition WM8960.h:117
static constexpr uint32_t REGISTER_MAP_SIZE
Definition WM8960.h:198
static constexpr uint16_t WM8960_LEFT_RIGHT_ADC_VOL_ADCVU_UP
Definition WM8960.h:143
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_2
Definition WM8960.h:191
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MIC2B_CON
Definition WM8960.h:171
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_1
Definition WM8960.h:59
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_8
Definition WM8960.h:111
static constexpr uint16_t WM8960_PWR_MGMT1_AINL_UP
Definition WM8960.h:150
static constexpr uint16_t WM8960_PWR_MGMT2_SPKL_UP
Definition WM8960.h:160
static constexpr uint16_t WM8960_CTR2_DACPOL_L_INV
Definition WM8960.h:88
static constexpr bool MTB_RSLT_WM8960_BAD_ARG
Definition WM8960.h:196
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_8
Definition WM8960.h:120
static constexpr uint16_t WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_0dB
Definition WM8960.h:144
void * i2c_bus_handle_t
Definition DriverCommon.h:155
static constexpr uint16_t WM8960_CLK1_CLKSEL_PLL
Definition WM8960.h:76
static constexpr uint16_t WM8960_PWR_MGMT1_DIGENB_DI
Definition WM8960.h:155
static constexpr uint16_t WM8960_PWR_MGMT1_AINR_UP
Definition WM8960.h:151
wm8960_reg_t reg
Definition WM8960.h:333
uint16_t value
Definition WM8960.h:334
uint8_t features
Definition WM8960.h:332