fsl_wm8960.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015, Freescale Semiconductor, Inc.
3  * Copyright 2016-2019 NXP
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 
9 #ifndef _FSL_WM8960_H_
10 #define _FSL_WM8960_H_
11 
12 #include "fsl_codec_i2c.h"
13 #include "fsl_common.h"
14 
20 /*******************************************************************************
21  * Definitions
22  ******************************************************************************/
26 #define FSL_WM8960_DRIVER_VERSION (MAKE_VERSION(2, 1, 1))
27 
30 #ifndef WM8960_I2C_HANDLER_SIZE
31 #define WM8960_I2C_HANDLER_SIZE CODEC_I2C_MASTER_HANDLER_SIZE
32 #endif
33 
35 #define WM8960_LINVOL 0x0
36 #define WM8960_RINVOL 0x1
37 #define WM8960_LOUT1 0x2
38 #define WM8960_ROUT1 0x3
39 #define WM8960_CLOCK1 0x4
40 #define WM8960_DACCTL1 0x5
41 #define WM8960_DACCTL2 0x6
42 #define WM8960_IFACE1 0x7
43 #define WM8960_CLOCK2 0x8
44 #define WM8960_IFACE2 0x9
45 #define WM8960_LDAC 0xa
46 #define WM8960_RDAC 0xb
47 
48 #define WM8960_RESET 0xf
49 #define WM8960_3D 0x10
50 #define WM8960_ALC1 0x11
51 #define WM8960_ALC2 0x12
52 #define WM8960_ALC3 0x13
53 #define WM8960_NOISEG 0x14
54 #define WM8960_LADC 0x15
55 #define WM8960_RADC 0x16
56 #define WM8960_ADDCTL1 0x17
57 #define WM8960_ADDCTL2 0x18
58 #define WM8960_POWER1 0x19
59 #define WM8960_POWER2 0x1a
60 #define WM8960_ADDCTL3 0x1b
61 #define WM8960_APOP1 0x1c
62 #define WM8960_APOP2 0x1d
63 
64 #define WM8960_LINPATH 0x20
65 #define WM8960_RINPATH 0x21
66 #define WM8960_LOUTMIX 0x22
67 
68 #define WM8960_ROUTMIX 0x25
69 #define WM8960_MONOMIX1 0x26
70 #define WM8960_MONOMIX2 0x27
71 #define WM8960_LOUT2 0x28
72 #define WM8960_ROUT2 0x29
73 #define WM8960_MONO 0x2a
74 #define WM8960_INBMIX1 0x2b
75 #define WM8960_INBMIX2 0x2c
76 #define WM8960_BYPASS1 0x2d
77 #define WM8960_BYPASS2 0x2e
78 #define WM8960_POWER3 0x2f
79 #define WM8960_ADDCTL4 0x30
80 #define WM8960_CLASSD1 0x31
81 
82 #define WM8960_CLASSD3 0x33
83 #define WM8960_PLL1 0x34
84 #define WM8960_PLL2 0x35
85 #define WM8960_PLL3 0x36
86 #define WM8960_PLL4 0x37
87 
89 #define WM8960_CACHEREGNUM 56
90 
92 #define WM8960_IFACE1_FORMAT_MASK 0x03
93 #define WM8960_IFACE1_FORMAT_SHIFT 0x00
94 #define WM8960_IFACE1_FORMAT_RJ 0x00
95 #define WM8960_IFACE1_FORMAT_LJ 0x01
96 #define WM8960_IFACE1_FORMAT_I2S 0x02
97 #define WM8960_IFACE1_FORMAT_DSP 0x03
98 #define WM8960_IFACE1_FORMAT(x) ((x << WM8960_IFACE1_FORMAT_SHIFT) & WM8960_IFACE1_FORMAT_MASK)
99 
101 #define WM8960_IFACE1_WL_MASK 0x0C
102 #define WM8960_IFACE1_WL_SHIFT 0x02
103 #define WM8960_IFACE1_WL_16BITS 0x00
104 #define WM8960_IFACE1_WL_20BITS 0x01
105 #define WM8960_IFACE1_WL_24BITS 0x02
106 #define WM8960_IFACE1_WL_32BITS 0x03
107 #define WM8960_IFACE1_WL(x) ((x << WM8960_IFACE1_WL_SHIFT) & WM8960_IFACE1_WL_MASK)
108 
110 #define WM8960_IFACE1_LRP_MASK 0x10
111 #define WM8960_IFACE1_LRP_SHIFT 0x04
112 #define WM8960_IFACE1_LRCLK_NORMAL_POL 0x00
113 #define WM8960_IFACE1_LRCLK_INVERT_POL 0x01
114 #define WM8960_IFACE1_DSP_MODEA 0x00
115 #define WM8960_IFACE1_DSP_MODEB 0x01
116 #define WM8960_IFACE1_LRP(x) ((x << WM8960_IFACE1_LRP_SHIFT) & WM8960_IFACE1_LRP_MASK)
117 
119 #define WM8960_IFACE1_DLRSWAP_MASK 0x20
120 #define WM8960_IFACE1_DLRSWAP_SHIFT 0x05
121 #define WM8960_IFACE1_DACCH_NORMAL 0x00
122 #define WM8960_IFACE1_DACCH_SWAP 0x01
123 #define WM8960_IFACE1_DLRSWAP(x) ((x << WM8960_IFACE1_DLRSWAP_SHIFT) & WM8960_IFACE1_DLRSWAP_MASK)
124 
126 #define WM8960_IFACE1_MS_MASK 0x40
127 #define WM8960_IFACE1_MS_SHIFT 0x06
128 #define WM8960_IFACE1_SLAVE 0x00
129 #define WM8960_IFACE1_MASTER 0x01
130 #define WM8960_IFACE1_MS(x) ((x << WM8960_IFACE1_MS_SHIFT) & WM8960_IFACE1_MS_MASK)
131 
133 #define WM8960_IFACE1_BCLKINV_MASK 0x80
134 #define WM8960_IFACE1_BCLKINV_SHIFT 0x07
135 #define WM8960_IFACE1_BCLK_NONINVERT 0x00
136 #define WM8960_IFACE1_BCLK_INVERT 0x01
137 #define WM8960_IFACE1_BCLKINV(x) ((x << WM8960_IFACE1_BCLKINV_SHIFT) & WM8960_IFACE1_BCLKINV_MASK)
138 
140 #define WM8960_IFACE1_ALRSWAP_MASK 0x100
141 #define WM8960_IFACE1_ALRSWAP_SHIFT 0x08
142 #define WM8960_IFACE1_ADCCH_NORMAL 0x00
143 #define WM8960_IFACE1_ADCCH_SWAP 0x01
144 #define WM8960_IFACE1_ALRSWAP(x) ((x << WM8960_IFACE1_ALRSWAP_SHIFT) & WM8960_IFACE1_ALRSWAP_MASK)
145 
147 #define WM8960_POWER1_VREF_MASK 0x40
148 #define WM8960_POWER1_VREF_SHIFT 0x06
149 
150 #define WM8960_POWER1_AINL_MASK 0x20
151 #define WM8960_POWER1_AINL_SHIFT 0x05
152 
153 #define WM8960_POWER1_AINR_MASK 0x10
154 #define WM8960_POWER1_AINR_SHIFT 0x04
155 
156 #define WM8960_POWER1_ADCL_MASK 0x08
157 #define WM8960_POWER1_ADCL_SHIFT 0x03
158 
159 #define WM8960_POWER1_ADCR_MASK 0x0
160 #define WM8960_POWER1_ADCR_SHIFT 0x02
161 
162 #define WM8960_POWER1_MICB_MASK 0x02
163 #define WM8960_POWER1_MICB_SHIFT 0x01
164 
165 #define WM8960_POWER1_DIGENB_MASK 0x01
166 #define WM8960_POWER1_DIGENB_SHIFT 0x00
167 
169 #define WM8960_POWER2_DACL_MASK 0x100
170 #define WM8960_POWER2_DACL_SHIFT 0x08
171 
172 #define WM8960_POWER2_DACR_MASK 0x80
173 #define WM8960_POWER2_DACR_SHIFT 0x07
174 
175 #define WM8960_POWER2_LOUT1_MASK 0x40
176 #define WM8960_POWER2_LOUT1_SHIFT 0x06
177 
178 #define WM8960_POWER2_ROUT1_MASK 0x20
179 #define WM8960_POWER2_ROUT1_SHIFT 0x05
180 
181 #define WM8960_POWER2_SPKL_MASK 0x10
182 #define WM8960_POWER2_SPKL_SHIFT 0x04
183 
184 #define WM8960_POWER2_SPKR_MASK 0x08
185 #define WM8960_POWER2_SPKR_SHIFT 0x03
186 
187 #define WM8960_POWER3_LMIC_MASK 0x20
188 #define WM8960_POWER3_LMIC_SHIFT 0x05
189 #define WM8960_POWER3_RMIC_MASK 0x10
190 #define WM8960_POWER3_RMIC_SHIFT 0x04
191 #define WM8960_POWER3_LOMIX_MASK 0x08
192 #define WM8960_POWER3_LOMIX_SHIFT 0x03
193 #define WM8960_POWER3_ROMIX_MASK 0x04
194 #define WM8960_POWER3_ROMIX_SHIFT 0x02
195 
196 #define WM8960_I2C_ADDR 0x1A
197 
198 #define WM8960_I2C_BAUDRATE (100000U)
199 
201 typedef enum _wm8960_module
202 {
214 
217 {
222 };
223 
226 {
231 
237 typedef enum _wm8960_route
238 {
244 
249 typedef enum _wm8960_protocol
250 {
255  kWM8960_BusPCMB = 3 | (1 << 4)
257 
259 typedef enum _wm8960_input
260 {
268 
271 {
284 };
285 
288 {
293 };
294 
296 typedef struct _wm8960_audio_format
297 {
298  uint32_t mclk_HZ;
299  uint32_t sampleRate;
300  uint32_t bitWidth;
302 
304 typedef struct wm8960_config
305 {
314  uint8_t slaveAddress;
317 
320 typedef struct _wm8960_handle
321 {
325 /*******************************************************************************
326  * API
327  ******************************************************************************/
328 #if defined(__cplusplus)
329 extern "C" {
330 #endif
331 
347 status_t WM8960_Init(wm8960_handle_t *handle, const wm8960_config_t *wm8960Config);
348 
357 
369 
377 
385 
395 
402 void WM8960_SetMasterSlave(wm8960_handle_t *handle, bool master);
403 
414 status_t WM8960_SetVolume(wm8960_handle_t *handle, wm8960_module_t module, uint32_t volume);
415 
426 uint32_t WM8960_GetVolume(wm8960_handle_t *handle, wm8960_module_t module);
427 
435 status_t WM8960_SetMute(wm8960_handle_t *handle, wm8960_module_t module, bool isEnabled);
436 
444 status_t WM8960_SetModule(wm8960_handle_t *handle, wm8960_module_t module, bool isEnabled);
445 
456 status_t WM8960_SetPlay(wm8960_handle_t *handle, uint32_t playSource);
457 
470 status_t WM8960_ConfigDataFormat(wm8960_handle_t *handle, uint32_t sysclk, uint32_t sample_rate, uint32_t bits);
471 
478 status_t WM8960_SetJackDetect(wm8960_handle_t *handle, bool isEnabled);
479 
487 status_t WM8960_WriteReg(wm8960_handle_t *handle, uint8_t reg, uint16_t val);
488 
494 status_t WM8960_ReadReg(uint8_t reg, uint16_t *val);
495 
503 status_t WM8960_ModifyReg(wm8960_handle_t *handle, uint8_t reg, uint16_t mask, uint16_t val);
504 
505 #if defined(__cplusplus)
506 }
507 #endif
508 
511 #endif /* _FSL_WM8960_H_ */
512 
513 /*******************************************************************************
514  * API
515  ******************************************************************************/
kWM8960_BusLeftJustified
@ kWM8960_BusLeftJustified
Definition: fsl_wm8960.h:252
WM8960_SetVolume
status_t WM8960_SetVolume(wm8960_handle_t *handle, wm8960_module_t module, uint32_t volume)
Set the volume of different modules in WM8960.
Definition: fsl_wm8960.c:378
wm8960_config::route
wm8960_route_t route
Definition: fsl_wm8960.h:306
fsl_common.h
WM8960_SetProtocol
status_t WM8960_SetProtocol(wm8960_handle_t *handle, wm8960_protocol_t protocol)
Set the audio transfer protocol.
Definition: fsl_wm8960.c:373
wm8960_config::format
wm8960_audio_format_t format
Definition: fsl_wm8960.h:308
_wm8960_audio_bit_width
_wm8960_audio_bit_width
audio bit width
Definition: fsl_wm8960.h:287
kWM8960_AudioSampleRate48KHz
@ kWM8960_AudioSampleRate48KHz
Definition: fsl_wm8960.h:280
wm8960_config::playSource
wm8960_play_source_t playSource
Definition: fsl_wm8960.h:313
_wm8960_sample_rate
_wm8960_sample_rate
audio sample rate definition
Definition: fsl_wm8960.h:270
WM8960_WriteReg
status_t WM8960_WriteReg(wm8960_handle_t *handle, uint8_t reg, uint16_t val)
Write register to WM8960 using I2C.
Definition: fsl_wm8960.c:605
WM8960_SetLeftInput
status_t WM8960_SetLeftInput(wm8960_handle_t *handle, wm8960_input_t input)
Set left audio input source in WM8960.
Definition: fsl_wm8960.c:269
_wm8960_handle::config
const wm8960_config_t * config
Definition: fsl_wm8960.h:322
wm8960_config::rightInputSource
wm8960_input_t rightInputSource
Definition: fsl_wm8960.h:312
WM8960_SetMute
status_t WM8960_SetMute(wm8960_handle_t *handle, wm8960_module_t module, bool isEnabled)
Mute modules in WM8960.
Definition: fsl_wm8960.c:460
WM8960_GetVolume
uint32_t WM8960_GetVolume(wm8960_handle_t *handle, wm8960_module_t module)
Get the volume of different modules in WM8960.
Definition: fsl_wm8960.c:432
wm8960_route_t
enum _wm8960_route wm8960_route_t
WM8960 data route. Only provide some typical data route, not all route listed. Note: Users cannot com...
_wm8960_audio_format::sampleRate
uint32_t sampleRate
Definition: fsl_wm8960.h:299
wm8960_input_t
enum _wm8960_input wm8960_input_t
wm8960 input source
WM8960_SetModule
status_t WM8960_SetModule(wm8960_handle_t *handle, wm8960_module_t module, bool isEnabled)
Enable/disable expected devices.
Definition: fsl_wm8960.c:140
kWM8960_InputDifferentialMicInput3
@ kWM8960_InputDifferentialMicInput3
Definition: fsl_wm8960.h:264
kWM8960_ModuleLineIn
@ kWM8960_ModuleLineIn
Definition: fsl_wm8960.h:209
kWM8960_ModuleDAC
@ kWM8960_ModuleDAC
Definition: fsl_wm8960.h:204
kWM8960_InputClosed
@ kWM8960_InputClosed
Definition: fsl_wm8960.h:261
fsl_codec_i2c.h
kWM8960_AudioSampleRate192KHz
@ kWM8960_AudioSampleRate192KHz
Definition: fsl_wm8960.h:282
wm8960_config::slaveAddress
uint8_t slaveAddress
Definition: fsl_wm8960.h:314
kWM8960_AudioBitWidth24bit
@ kWM8960_AudioBitWidth24bit
Definition: fsl_wm8960.h:291
kWM8960_AudioSampleRate44100Hz
@ kWM8960_AudioSampleRate44100Hz
Definition: fsl_wm8960.h:279
kWM8960_BusPCMB
@ kWM8960_BusPCMB
Definition: fsl_wm8960.h:255
kWM8960_AudioSampleRate24KHz
@ kWM8960_AudioSampleRate24KHz
Definition: fsl_wm8960.h:277
kWM8960_PlaySourcePGA
@ kWM8960_PlaySourcePGA
Definition: fsl_wm8960.h:227
WM8960_SetRightInput
status_t WM8960_SetRightInput(wm8960_handle_t *handle, wm8960_input_t input)
Set right audio input source in WM8960.
Definition: fsl_wm8960.c:321
kWM8960_AudioSampleRate96KHz
@ kWM8960_AudioSampleRate96KHz
Definition: fsl_wm8960.h:281
wm8960_audio_format_t
struct _wm8960_audio_format wm8960_audio_format_t
wm8960 audio format
wm8960_config::master_slave
bool master_slave
Definition: fsl_wm8960.h:309
wm8960_config::i2cConfig
codec_i2c_config_t i2cConfig
Definition: fsl_wm8960.h:315
wm8960_play_source_t
enum _wm8960_play_source wm8960_play_source_t
wm8960 play source
_wm8960_play_source
_wm8960_play_source
wm8960 play source
Definition: fsl_wm8960.h:225
WM8960_ReadReg
status_t WM8960_ReadReg(uint8_t reg, uint16_t *val)
Read register from WM8960 using I2C.
Definition: fsl_wm8960.c:618
kWM8960_ModuleOMIX
@ kWM8960_ModuleOMIX
Definition: fsl_wm8960.h:212
wm8960_config::leftInputSource
wm8960_input_t leftInputSource
Definition: fsl_wm8960.h:311
kWM8960_AudioSampleRate12KHz
@ kWM8960_AudioSampleRate12KHz
Definition: fsl_wm8960.h:274
kWM8960_AudioSampleRate8KHz
@ kWM8960_AudioSampleRate8KHz
Definition: fsl_wm8960.h:272
WM8960_SetMasterSlave
void WM8960_SetMasterSlave(wm8960_handle_t *handle, bool master)
Set WM8960 as master or slave.
Definition: fsl_wm8960.c:128
WM8960_ConfigDataFormat
status_t WM8960_ConfigDataFormat(wm8960_handle_t *handle, uint32_t sysclk, uint32_t sample_rate, uint32_t bits)
Configure the data format of audio data.
Definition: fsl_wm8960.c:533
kWM8960_ModuleMIC
@ kWM8960_ModuleMIC
Definition: fsl_wm8960.h:208
_codec_i2c_config
CODEC I2C configurations structure.
Definition: fsl_codec_i2c.h:39
_wm8960_audio_format::mclk_HZ
uint32_t mclk_HZ
Definition: fsl_wm8960.h:298
kWM8960_BusRightJustified
@ kWM8960_BusRightJustified
Definition: fsl_wm8960.h:253
kWM8960_InputLineINPUT2
@ kWM8960_InputLineINPUT2
Definition: fsl_wm8960.h:265
kWM8960_SpeakerRight
@ kWM8960_SpeakerRight
Definition: fsl_wm8960.h:221
kWM8960_ModuleLineOut
@ kWM8960_ModuleLineOut
Definition: fsl_wm8960.h:210
kWM8960_PlaySourceDAC
@ kWM8960_PlaySourceDAC
Definition: fsl_wm8960.h:229
kWM8960_RoutePlayback
@ kWM8960_RoutePlayback
Definition: fsl_wm8960.h:240
_wm8960_module
_wm8960_module
Modules in WM8960 board.
Definition: fsl_wm8960.h:201
wm8960_module_t
enum _wm8960_module wm8960_module_t
Modules in WM8960 board.
kWM8960_InputSingleEndedMic
@ kWM8960_InputSingleEndedMic
Definition: fsl_wm8960.h:262
wm8960_handle_t
struct _wm8960_handle wm8960_handle_t
wm8960 codec handler
kWM8960_BusI2S
@ kWM8960_BusI2S
Definition: fsl_wm8960.h:251
wm8960_config::enableSpeaker
bool enableSpeaker
Definition: fsl_wm8960.h:310
kWM8960_HeadphoneLeft
@ kWM8960_HeadphoneLeft
Definition: fsl_wm8960.h:218
kWM8960_InputLineINPUT3
@ kWM8960_InputLineINPUT3
Definition: fsl_wm8960.h:266
WM8960_I2C_HANDLER_SIZE
#define WM8960_I2C_HANDLER_SIZE
wm8960 handle size
Definition: fsl_wm8960.h:31
kWM8960_BusPCMA
@ kWM8960_BusPCMA
Definition: fsl_wm8960.h:254
kWM8960_AudioSampleRate22050Hz
@ kWM8960_AudioSampleRate22050Hz
Definition: fsl_wm8960.h:276
wm8960_protocol_t
enum _wm8960_protocol wm8960_protocol_t
The audio data transfer protocol choice. WM8960 only supports I2S format and PCM format.
kWM8960_ModuleADC
@ kWM8960_ModuleADC
Definition: fsl_wm8960.h:203
kWM8960_InputDifferentialMicInput2
@ kWM8960_InputDifferentialMicInput2
Definition: fsl_wm8960.h:263
kWM8960_RouteBypass
@ kWM8960_RouteBypass
Definition: fsl_wm8960.h:239
kWM8960_SpeakerLeft
@ kWM8960_SpeakerLeft
Definition: fsl_wm8960.h:220
WM8960_SetPlay
status_t WM8960_SetPlay(wm8960_handle_t *handle, uint32_t playSource)
SET the WM8960 play source.
Definition: fsl_wm8960.c:649
kWM8960_ModuleHP
@ kWM8960_ModuleHP
Definition: fsl_wm8960.h:206
wm8960_config
Initialize structure of WM8960.
Definition: fsl_wm8960.h:304
kWM8960_ModuleMICB
@ kWM8960_ModuleMICB
Definition: fsl_wm8960.h:207
kWM8960_RoutePlaybackandRecord
@ kWM8960_RoutePlaybackandRecord
Definition: fsl_wm8960.h:241
WM8960_Init
status_t WM8960_Init(wm8960_handle_t *handle, const wm8960_config_t *wm8960Config)
WM8960 initialize function.
Definition: fsl_wm8960.c:38
wm8960_config::bus
wm8960_protocol_t bus
Definition: fsl_wm8960.h:307
kWM8960_AudioSampleRate11025Hz
@ kWM8960_AudioSampleRate11025Hz
Definition: fsl_wm8960.h:273
kWM8960_AudioBitWidth16bit
@ kWM8960_AudioBitWidth16bit
Definition: fsl_wm8960.h:289
_wm8960_handle::i2cHandle
uint8_t i2cHandle[WM8960_I2C_HANDLER_SIZE]
Definition: fsl_wm8960.h:323
kWM8960_AudioBitWidth32bit
@ kWM8960_AudioBitWidth32bit
Definition: fsl_wm8960.h:292
kWM8960_AudioBitWidth20bit
@ kWM8960_AudioBitWidth20bit
Definition: fsl_wm8960.h:290
kWM8960_AudioSampleRate384KHz
@ kWM8960_AudioSampleRate384KHz
Definition: fsl_wm8960.h:283
_wm8960_input
_wm8960_input
wm8960 input source
Definition: fsl_wm8960.h:259
_wm8960_handle
wm8960 codec handler
Definition: fsl_wm8960.h:320
WM8960_ModifyReg
status_t WM8960_ModifyReg(wm8960_handle_t *handle, uint8_t reg, uint16_t mask, uint16_t val)
Modify some bits in the register using I2C.
Definition: fsl_wm8960.c:630
_wm8960_route
_wm8960_route
WM8960 data route. Only provide some typical data route, not all route listed. Note: Users cannot com...
Definition: fsl_wm8960.h:237
kWM8960_RouteRecord
@ kWM8960_RouteRecord
Definition: fsl_wm8960.h:242
_wm8960_protocol
_wm8960_protocol
The audio data transfer protocol choice. WM8960 only supports I2S format and PCM format.
Definition: fsl_wm8960.h:249
wm8960_config_t
struct wm8960_config wm8960_config_t
Initialize structure of WM8960.
kWM8960_AudioSampleRate16KHz
@ kWM8960_AudioSampleRate16KHz
Definition: fsl_wm8960.h:275
kWM8960_AudioSampleRate32KHz
@ kWM8960_AudioSampleRate32KHz
Definition: fsl_wm8960.h:278
_wm8960_play_channel
_wm8960_play_channel
wm8960 play channel
Definition: fsl_wm8960.h:216
WM8960_SetDataRoute
status_t WM8960_SetDataRoute(wm8960_handle_t *handle, wm8960_route_t route)
Set audio data route in WM8960.
Definition: fsl_wm8960.c:201
status_t
int32_t status_t
Type used for all status and error return values.
Definition: fsl_common.h:189
kWM8960_ModuleVREF
@ kWM8960_ModuleVREF
Definition: fsl_wm8960.h:205
kWM8960_PlaySourceInput
@ kWM8960_PlaySourceInput
Definition: fsl_wm8960.h:228
_wm8960_audio_format
wm8960 audio format
Definition: fsl_wm8960.h:296
kWM8960_HeadphoneRight
@ kWM8960_HeadphoneRight
Definition: fsl_wm8960.h:219
_wm8960_audio_format::bitWidth
uint32_t bitWidth
Definition: fsl_wm8960.h:300
WM8960_SetJackDetect
status_t WM8960_SetJackDetect(wm8960_handle_t *handle, bool isEnabled)
Enable/disable jack detect feature.
Definition: fsl_wm8960.c:584
kWM8960_ModuleSpeaker
@ kWM8960_ModuleSpeaker
Definition: fsl_wm8960.h:211
WM8960_Deinit
status_t WM8960_Deinit(wm8960_handle_t *handle)
Deinit the WM8960 codec.
Definition: fsl_wm8960.c:116


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:13:56