Arduino WM8060 Audio Codec
All Classes Files Functions Enumerations Enumerator Macros Modules Pages
mtb_wm8960.h
Go to the documentation of this file.
1 /***********************************************************************************************/
25 #pragma once
26 
37 #include <stdbool.h>
38 #include <stdint.h>
39 #include <stdio.h>
40 #include <string.h>
41 
42 #ifdef ARDUINO
43 # include <Arduino.h>
44 # include <Wire.h>
45 #endif
46 
47 #if defined(__cplusplus)
48 extern "C"
49 {
50 #endif
51 
52 #define WM8960_I2C_ADDRESS (0x1A)
53 
54 #ifdef ARDUINO
55 # define WM8960_LOG(msg) Serial.println(msg)
56 #else
57 # define WM8960_LOG(msg)
58 #endif
59 
66 #define WM8960_LEFT_RIGHT_IN_VOL_IPVU 0x100u
67 #define WM8960_LEFT_RIGHT_IN_VOL_INMUTE 0x080u
68 #define WM8960_LEFT_RIGHT_IN_VOL_IZC_ZC 0x040u
69 #define WM8960_LEFT_RIGHT_IN_VOL_INVOL_0dB 0x017u
70 #define WM8960_LEFT_RIGHT_IN_VOL_INVOL_30dB 0x03Fu
79 #define WM8960_LOUT1_ROUT1_VOL_OUT1VU 0x100u
80 #define WM8960_LOUT1_ROUT1_VOL_O1ZC_ZC 0x080u
81 #define WM8960_LOUT1_ROUT1_VOL_OUT1VOL_0dB 0x079u
82 #define WM8960_LOUT1_ROUT1_VOL_OUT1VOL_6dB 0x07Fu
90 #define WM8960_CLK1_ADCDIV_BY_1 0x000u
91 #define WM8960_CLK1_ADCDIV_BY_1_5 0x040u
92 #define WM8960_CLK1_ADCDIV_BY_2 0x080u
93 #define WM8960_CLK1_ADCDIV_BY_3 0x0C0u
94 #define WM8960_CLK1_ADCDIV_BY_4 0x100u
95 #define WM8960_CLK1_ADCDIV_BY_5_5 0x140u
96 #define WM8960_CLK1_ADCDIV_BY_6 0x180u
98 #define WM8960_CLK1_DACDIV_BY_1 0x000u
99 #define WM8960_CLK1_DACDIV_BY_1_5 0x008u
100 #define WM8960_CLK1_DACDIV_BY_2 0x010u
101 #define WM8960_CLK1_DACDIV_BY_3 0x018u
102 #define WM8960_CLK1_DACDIV_BY_4 0x020u
103 #define WM8960_CLK1_DACDIV_BY_5_5 0x028u
104 #define WM8960_CLK1_DACDIV_BY_6 0x030u
106 #define WM8960_CLK1_SYSCLKDIV_BY_1 0x000u
107 #define WM8960_CLK1_SYSCLKDIV_BY_2 0x004u
109 #define WM8960_CLK1_CLKSEL_MCLK 0x000u
110 #define WM8960_CLK1_CLKSEL_PLL 0x001u
118 #define WM8960_CTR1_DACDIV2_6B_EN 0x080u
120 #define WM8960_CTR1_ADCPOL_LR_INV 0x060u
121 #define WM8960_CTR1_ADCPOL_L_INV 0x040u
122 #define WM8960_CTR1_ADCPOL_R_INV 0x020u
124 #define WM8960_CTR1_DACMU_NO 0x000u
125 #define WM8960_CTR1_DACMU_MUTE 0x008u
127 #define WM8960_CTR1_DEEMPH_48_KHZ 0x006u
128 #define WM8960_CTR1_DEEMPH_44_1_KHZ 0x004u
129 #define WM8960_CTR1_DEEMPH_32_KHZ 0x002u
131 #define WM8960_CTR1_ADCHPD_DIS 0x001u
139 #define WM8960_CTR2_DACPOL_LR_INV 0x060u
140 #define WM8960_CTR2_DACPOL_L_INV 0x040u
141 #define WM8960_CTR2_DACPOL_R_INV 0x020u
143 #define WM8960_CTR2_DACSMM_GRAD 0x008u
147 #define WM8960_CTR2_DACMR_SLOW_RMP 0x004u
151 #define WM8960_CTR2_DACSLOPE_SS 0x002u
159 #define WM8960_AUDIO_INTF0_ALRSWAP 0x100u
162 #define WM8960_AUDIO_INTF0_BCLKINV 0x080u
164 #define WM8960_AUDIO_INTF0_MS_MASTER 0x040u
165 #define WM8960_AUDIO_INTF0_MS_SLAVE 0x000u
167 #define WM8960_AUDIO_INTF0_DLRSWAP 0x020u
170 #define WM8960_AUDIO_INTF0_LRP_INV 0x010u
173 #define WM8960_AUDIO_INTF0_WL_16BITS 0x000u
174 #define WM8960_AUDIO_INTF0_WL_20BITS 0x004u
175 #define WM8960_AUDIO_INTF0_WL_24BITS 0x008u
176 #define WM8960_AUDIO_INTF0_WL_32BITS 0x00Cu
178 #define WM8960_AUDIO_INTF0_FORMAT_R_JUSTIF 0x000u
179 #define WM8960_AUDIO_INTF0_FORMAT_L_JUSTIF 0x001u
180 #define WM8960_AUDIO_INTF0_FORMAT_I2S_MODE 0x002u
181 #define WM8960_AUDIO_INTF0_FORMAT_DSP_MODE 0x003u
189 #define WM8960_CLK2_DCLKDIV_BY_2 0x040u
190 #define WM8960_CLK2_DCLKDIV_BY_3 0x080u
191 #define WM8960_CLK2_DCLKDIV_BY_4 0x0C0u
192 #define WM8960_CLK2_DCLKDIV_BY_6 0x100u
193 #define WM8960_CLK2_DCLKDIV_BY_8 0x140u
194 #define WM8960_CLK2_DCLKDIV_BY_12 0x180u
195 #define WM8960_CLK2_DCLKDIV_BY_16 0x1C0u
197 #define WM8960_CLK2_BCLKDIV_BY_1_5 0x001u
198 #define WM8960_CLK2_BCLKDIV_BY_2 0x002u
199 #define WM8960_CLK2_BCLKDIV_BY_3 0x003u
200 #define WM8960_CLK2_BCLKDIV_BY_4 0x004u
201 #define WM8960_CLK2_BCLKDIV_BY_5_5 0x005u
202 #define WM8960_CLK2_BCLKDIV_BY_6 0x006u
203 #define WM8960_CLK2_BCLKDIV_BY_8 0x007u
204 #define WM8960_CLK2_BCLKDIV_BY_11 0x008u
205 #define WM8960_CLK2_BCLKDIV_BY_12 0x009u
206 #define WM8960_CLK2_BCLKDIV_BY_16 0x00Au
207 #define WM8960_CLK2_BCLKDIV_BY_22 0x00Bu
208 #define WM8960_CLK2_BCLKDIV_BY_24 0x00Cu
209 #define WM8960_CLK2_BCLKDIV_BY_32 0x00Du
217 #define WM8960_AUDIO_INTF1_ALRCGPIO_GPIO 0x040u
219 #define WM8960_AUDIO_INTF1_WL8_8BIT 0x020u
222 #define WM8960_AUDIO_INTF1_DACCOMP_ALAW 0x010u
223 #define WM8960_AUDIO_INTF1_DACCOMP_ULAW 0x018u
225 #define WM8960_AUDIO_INTF1_ADCCOMP_ULAW 0x004u
226 #define WM8960_AUDIO_INTF1_ADCCOMP_ALAW 0x006u
228 #define WM8960_AUDIO_INTF1_LOOPBACK_EN 0x001u
239 #define WM8960_LEFT_RIGHT_DAC_VOL_DACVU_UP 0x100u
241 #define WM8960_LEFT_RIGHT_DAC_VOL_0dB 0x0FFu
242 #define WM8960_LEFT_RIGHT_DAC_VOL_127dB 0x001u
250 #define WM8960_3D_CTR_3DUC_LOW 0x040u
253 #define WM8960_3D_CTR_3DUC_HIGH 0x000u
256 #define WM8960_3D_CTR_3DLC_LOW 0x000u
259 #define WM8960_3D_CTR_3DLC_HIGH 0x020u
263 #define WM8960_3D_CTR_3DDEPTH_100 0x01Eu
265 #define WM8960_3D_CTR_3DEN 0x001u
274 #define WM8960_LEFT_RIGHT_ADC_VOL_ADCVU_UP 0x100u
276 #define WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_0dB 0x0C3u
277 #define WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_30dB 0x0FFu
285 /* WM8960_REG_PWR_MGMT1 (0x19) bits */
286 #define WM8960_PWR_MGMT1_VMIDSEL_50K 0x080u
288 #define WM8960_PWR_MGMT1_VMIDSEL_250K 0x100u
290 #define WM8960_PWR_MGMT1_VMIDSEL_5K 0x180u
293 #define WM8960_PWR_MGMT1_VREF_UP 0x040u
294 #define WM8960_PWR_MGMT1_AINL_UP 0x020u
295 #define WM8960_PWR_MGMT1_AINR_UP 0x010u
296 #define WM8960_PWR_MGMT1_ADCL_UP 0x008u
297 #define WM8960_PWR_MGMT1_ADCR_UP 0x004u
298 #define WM8960_PWR_MGMT1_MICB_UP 0x002u
299 #define WM8960_PWR_MGMT1_DIGENB_DI 0x001u
307 #define WM8960_PWR_MGMT2_DACL_UP 0x100u
308 #define WM8960_PWR_MGMT2_DACR_UP 0x080u
309 #define WM8960_PWR_MGMT2_LOUT1_UP 0x040u
310 #define WM8960_PWR_MGMT2_ROUT1_UP 0x020u
311 #define WM8960_PWR_MGMT2_SPKL_UP 0x010u
312 #define WM8960_PWR_MGMT2_SPKR_UP 0x008u
313 #define WM8960_PWR_MGMT2_OUT3_UP 0x002u
314 #define WM8960_PWR_MGMT2_PLL_EN_UP 0x001u
323 #define WM8960_ADCL_ADCR_SIG_PTH_MN1_CON 0x100u
325 #define WM8960_ADCL_ADCR_SIG_PTH_MP3_CON 0x080u
327 #define WM8960_ADCL_ADCR_SIG_PTH_MP2_CON 0x040u
330 #define WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_0dB 0x000u
331 #define WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_13dB 0x010u
332 #define WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_20dB 0x020u
333 #define WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_29dB 0x030u
335 #define WM8960_ADCL_ADCR_SIG_PTH_MIC2B_CON 0x008u
343 /* WM8960_REG_LEFT_OUT_MIX (0x22) bits */
344 #define WM8960_LEFT_OUT_MIX_LD2LO_EN 0x100u
345 #define WM8960_LEFT_OUT_MIX_LI2LO_EN 0x080u
353 #define WM8960_RIGHT_OUT_MIX_RD2RO_EN 0x100u
354 #define WM8960_RIGHT_OUT_MIX_RI2RO_EN 0x080u
365 #define WM8960_MONO_OUT_MIX1_MIX2_2MO_DI 0x000u
367 #define WM8960_MONO_OUT_MIX1_MIX2_2MO_EN 0x080u
379 #define WM8960_LOUT2_ROUT2_VOL_SPKVU 0x100u
380 #define WM8960_LOUT2_ROUT2_VOL_SPKRZC 0x080u
382 #define WM8960_LOUT2_ROUT2_VOL_SPKRVOL_0dB 0x079u
383 #define WM8960_LOUT2_ROUT2_VOL_SPKRVOL_6dB 0x07Fu
392 #define WM8960_PWR_MGMT3_LMIC_UP 0x020u
393 #define WM8960_PWR_MGMT3_RMIC_UP 0x010u
394 #define WM8960_PWR_MGMT3_LOMIX_UP 0x008u
395 #define WM8960_PWR_MGMT3_ROMIX_UP 0x004u
403 #define WM8960_PLL_N_PLLPRESCALE_DI 0x000u
404 #define WM8960_PLL_N_PLLPRESCALE_EN 0x010u
406 #define WM8960_PLL_N_SDM_INT 0x000u
407 #define WM8960_PLL_N_SDM_FRAC 0x020u
409 #define WM8960_PLL_N_OPCLKDIV_BY_1 0x000u
411 #define WM8960_PLL_N_OPCLKDIV_BY_2 0x040u
413 #define WM8960_PLL_N_OPCLKDIV_BY_3 0x080u
415 #define WM8960_PLL_N_OPCLKDIV_BY_4 0x0C0u
417 #define WM8960_PLL_N_OPCLKDIV_BY_5_5 0x100u
419 #define WM8960_PLL_N_OPCLKDIV_BY_6 0x140u
424 #define MTB_RSLT_WM8960_BAD_ARG false
425 
435 typedef enum
436 {
449  WM8960_REG_RSVD0, /* 0x0C: Reserved */
450  WM8960_REG_RSVD1, /* 0x0D: Reserved */
451  WM8960_REG_RSVD2, /* 0x0E: Reserved */
467  WM8960_REG_RSVD3, /* 0x1E: Reserved */
468  WM8960_REG_RSVD4, /* 0x1F: Reserved */
472  WM8960_REG_RSVD5, /* 0x23: Reserved */
473  WM8960_REG_RSVD6, /* 0x24: Reserved */
487  WM8960_REG_RSVD7, /* 0x32: Reserved */
494 
502 typedef enum
503 {
507  WM8960_FEATURE_SPEAKER = 0x04
509 
514 typedef enum
515 {
527 
532 typedef enum
533 {
539 
543 typedef enum
544 {
548 
549 #ifdef ARDUINO
550 
560 bool mtb_wm8960_set_wire(TwoWire* i2c_inst);
561 
562 #endif
563 
572 void mtb_wm8960_set_write_retry_count(uint32_t count);
573 
574 
611 bool mtb_wm8960_init(uint8_t features);
612 
617 void mtb_wm8960_free();
618 
629 bool mtb_wm8960_adjust_input_volume(uint8_t volume);
630 
642 bool mtb_wm8960_adjust_heaphone_output_volume(uint8_t volume);
643 
655 bool mtb_wm8960_adjust_speaker_output_volume(uint8_t volume);
656 
657 
669 bool mtb_wm8960_set_output_volume(uint8_t volume);
670 
671 
681 bool mtb_wm8960_activate(void);
682 
692 bool mtb_wm8960_deactivate(void);
693 
702 bool mtb_wm8960_read(mtb_wm8960_reg_t reg, uint16_t* data);
703 
712 bool mtb_wm8960_write(mtb_wm8960_reg_t reg, uint16_t data);
713 
725 bool mtb_wm8960_set(mtb_wm8960_reg_t reg, uint16_t mask);
726 
738 bool mtb_wm8960_clear(mtb_wm8960_reg_t reg, uint16_t mask);
739 
752 bool mtb_wm8960_configure_clocking(uint32_t mclk_hz, bool enable_pll,
754  mtb_wm8960_word_length_t word_length,
755  mtb_wm8960_mode_t mode);
756 
757 
767 bool mtb_wm8960_dump();
768 
769 
774 bool i2c_write(uint8_t address, uint8_t data[2]);
775 
776 
777 #if defined(__cplusplus)
778 }
779 #endif
780 
bool mtb_wm8960_adjust_heaphone_output_volume(uint8_t volume)
This function updates the volume of both the left and right channels of the headphone output.
Definition: mtb_wm8960.cpp:715
bool mtb_wm8960_dump()
This function dumps the actual register values.
Definition: mtb_wm8960.cpp:862
bool mtb_wm8960_activate(void)
This function powers up the modules the required for the features enabled using mtb_wm8960_init....
Definition: mtb_wm8960.cpp:434
bool mtb_wm8960_adjust_input_volume(uint8_t volume)
This function updates the volume of both the left and right channels of the microphone input.
Definition: mtb_wm8960.cpp:698
bool mtb_wm8960_adjust_speaker_output_volume(uint8_t volume)
This function updates the volume of both the left and right channels of the speaker output.
Definition: mtb_wm8960.cpp:731
void mtb_wm8960_set_write_retry_count(uint32_t count)
Defines the number of times we retry to update a register value via I2C. This might help if you have ...
Definition: mtb_wm8960.cpp:372
void mtb_wm8960_free()
Frees up any resources allocated by the driver as part of mtb_wm8960_init().
Definition: mtb_wm8960.cpp:420
bool mtb_wm8960_configure_clocking(uint32_t mclk_hz, bool enable_pll, mtb_wm8960_adc_dac_sample_rate_t sample_rate, mtb_wm8960_word_length_t word_length, mtb_wm8960_mode_t mode)
This function configures the master clock and the digital interface for the audio codec.
Definition: mtb_wm8960.cpp:761
bool mtb_wm8960_init(uint8_t features)
Initialize the I2C communication with the audio codec, reset the codec and apply default configuratio...
Definition: mtb_wm8960.cpp:380
bool mtb_wm8960_deactivate(void)
This function powers down the modules the required for the features enabled using mtb_wm8960_init.
Definition: mtb_wm8960.cpp:507
bool mtb_wm8960_set_output_volume(uint8_t volume)
This function updates the volume of both the left and right channels of the speaker and headphones.
Definition: mtb_wm8960.cpp:748
bool mtb_wm8960_read(mtb_wm8960_reg_t reg, uint16_t *data)
This function reads value of an audio codec register.
Definition: mtb_wm8960.cpp:645
#define WM8960_AUDIO_INTF0_WL_32BITS
Definition: mtb_wm8960.h:176
#define WM8960_AUDIO_INTF0_MS_MASTER
Definition: mtb_wm8960.h:164
#define WM8960_AUDIO_INTF0_WL_20BITS
Definition: mtb_wm8960.h:174
#define WM8960_AUDIO_INTF0_MS_SLAVE
Definition: mtb_wm8960.h:165
mtb_wm8960_features_t
Definition: mtb_wm8960.h:503
@ WM8960_FEATURE_HEADPHONE
Definition: mtb_wm8960.h:506
@ WM8960_FEATURE_SPEAKER
Definition: mtb_wm8960.h:507
@ WM8960_FEATURE_MICROPHONE
Definition: mtb_wm8960.h:505
@ WM8960_FEATURE_NONE
Definition: mtb_wm8960.h:504
#define WM8960_AUDIO_INTF0_WL_24BITS
Definition: mtb_wm8960.h:175
mtb_wm8960_reg_t
Definition: mtb_wm8960.h:436
@ WM8960_REG_CTR2
Definition: mtb_wm8960.h:443
@ WM8960_REG_RESET
Definition: mtb_wm8960.h:452
@ WM8960_REG_ADD_CTL2
Definition: mtb_wm8960.h:461
@ WM8960_REG_CLK2
Definition: mtb_wm8960.h:445
@ WM8960_REG_LOUT2_VOL
Definition: mtb_wm8960.h:477
@ WM8960_REG_RIGHT_ADC_VOL
Definition: mtb_wm8960.h:459
@ WM8960_REG_PLL_K2
Definition: mtb_wm8960.h:491
@ WM8960_REG_LOUT1_VOL
Definition: mtb_wm8960.h:439
@ WM8960_REG_ADD_CTL4
Definition: mtb_wm8960.h:485
@ WM8960_REG_PLL_K3
Definition: mtb_wm8960.h:492
@ WM8960_REG_CLASS_D_CTL3
Definition: mtb_wm8960.h:488
@ WM8960_REG_NOISE_GATE
Definition: mtb_wm8960.h:457
@ WM8960_REG_BYPASS2
Definition: mtb_wm8960.h:483
@ WM8960_REG_ALC1
Definition: mtb_wm8960.h:454
@ WM8960_REG_ADCR_SIG_PTH
Definition: mtb_wm8960.h:470
@ WM8960_REG_IN_BOOST_MIX1
Definition: mtb_wm8960.h:480
@ WM8960_REG_LEFT_DAC_VOL
Definition: mtb_wm8960.h:447
@ WM8960_REG_AUDIO_INTF0
Definition: mtb_wm8960.h:444
@ WM8960_REG_PWR_MGMT3
Definition: mtb_wm8960.h:484
@ WM8960_REG_ADD_CTL1
Definition: mtb_wm8960.h:460
@ WM8960_REG_RIGHT_IN_VOL
Definition: mtb_wm8960.h:438
@ WM8960_REG_ADCL_SIG_PTH
Definition: mtb_wm8960.h:469
@ WM8960_REG_BYPASS1
Definition: mtb_wm8960.h:482
@ WM8960_REG_AUDIO_INTF1
Definition: mtb_wm8960.h:446
@ WM8960_REG_ALC2
Definition: mtb_wm8960.h:455
@ WM8960_REG_MONO_OUT_MIX2
Definition: mtb_wm8960.h:476
@ WM8960_REG_MONO_OUT_VOL
Definition: mtb_wm8960.h:479
@ WM8960_REG_LEFT_IN_VOL
Definition: mtb_wm8960.h:437
@ WM8960_REG_ADD_CTL3
Definition: mtb_wm8960.h:464
@ WM8960_REG_IN_BOOST_MIX2
Definition: mtb_wm8960.h:481
@ WM8960_REG_ANTI_POP2
Definition: mtb_wm8960.h:466
@ WM8960_REG_PWR_MGMT2
Definition: mtb_wm8960.h:463
@ WM8960_REG_RIGHT_OUT_MIX
Definition: mtb_wm8960.h:474
@ WM8960_REG_CLK1
Definition: mtb_wm8960.h:441
@ WM8960_REG_PLL_N
Definition: mtb_wm8960.h:489
@ WM8960_REG_PLL_K1
Definition: mtb_wm8960.h:490
@ WM8960_REG_ROUT1_VOL
Definition: mtb_wm8960.h:440
@ WM8960_REG_LEFT_ADC_VOL
Definition: mtb_wm8960.h:458
@ WM8960_REG_CTR1
Definition: mtb_wm8960.h:442
@ WM8960_REG_LEFT_OUT_MIX
Definition: mtb_wm8960.h:471
@ WM8960_REG_MONO_OUT_MIX1
Definition: mtb_wm8960.h:475
@ WM8960_REG_ALC3
Definition: mtb_wm8960.h:456
@ WM8960_REG_RIGHT_DAC_VOL
Definition: mtb_wm8960.h:448
@ WM8960_REG_CLASS_D_CTL1
Definition: mtb_wm8960.h:486
@ WM8960_REG_3D_CTR
Definition: mtb_wm8960.h:453
@ WM8960_REG_ROUT2_VOL
Definition: mtb_wm8960.h:478
@ WM8960_REG_ANTI_POP1
Definition: mtb_wm8960.h:465
@ WM8960_REG_PWR_MGMT1
Definition: mtb_wm8960.h:462
#define WM8960_AUDIO_INTF0_WL_16BITS
Definition: mtb_wm8960.h:173
bool mtb_wm8960_write(mtb_wm8960_reg_t reg, uint16_t data)
This function writes data to an audio codec register.
Definition: mtb_wm8960.cpp:626
bool i2c_write(uint8_t address, uint8_t data[2])
bool mtb_wm8960_clear(mtb_wm8960_reg_t reg, uint16_t mask)
This function clears bits in a register. This function can be used instead of mtb_wm8960_write() if y...
Definition: mtb_wm8960.cpp:680
mtb_wm8960_adc_dac_sample_rate_t
Definition: mtb_wm8960.h:515
@ WM8960_ADC_DAC_SAMPLE_RATE_11_025_KHZ
Definition: mtb_wm8960.h:523
@ WM8960_ADC_DAC_SAMPLE_RATE_8_KHZ
Definition: mtb_wm8960.h:525
@ WM8960_ADC_DAC_SAMPLE_RATE_16_KHZ
Definition: mtb_wm8960.h:521
@ WM8960_ADC_DAC_SAMPLE_RATE_32_KHZ
Definition: mtb_wm8960.h:518
@ WM8960_ADC_DAC_SAMPLE_RATE_8_018_KHZ
Definition: mtb_wm8960.h:524
@ WM8960_ADC_DAC_SAMPLE_RATE_24_KHZ
Definition: mtb_wm8960.h:519
@ WM8960_ADC_DAC_SAMPLE_RATE_48_KHZ
Definition: mtb_wm8960.h:516
@ WM8960_ADC_DAC_SAMPLE_RATE_22_05_KHZ
Definition: mtb_wm8960.h:520
@ WM8960_ADC_DAC_SAMPLE_RATE_12_KHZ
Definition: mtb_wm8960.h:522
@ WM8960_ADC_DAC_SAMPLE_RATE_44_1_KHZ
Definition: mtb_wm8960.h:517
mtb_wm8960_word_length_t
Definition: mtb_wm8960.h:533
@ WM8960_WL_32BITS
Definition: mtb_wm8960.h:537
@ WM8960_WL_24BITS
Definition: mtb_wm8960.h:536
@ WM8960_WL_16BITS
Definition: mtb_wm8960.h:534
@ WM8960_WL_20BITS
Definition: mtb_wm8960.h:535
mtb_wm8960_mode_t
Definition: mtb_wm8960.h:544
@ WM8960_MODE_MASTER
Definition: mtb_wm8960.h:545
@ WM8960_MODE_SLAVE
Definition: mtb_wm8960.h:546
bool mtb_wm8960_set(mtb_wm8960_reg_t reg, uint16_t mask)
This function sets bits in a register. This function can be used instead of mtb_wm8960_write() if you...
Definition: mtb_wm8960.cpp:662