LibDriver WM8978
Loading...
Searching...
No Matches
driver_wm8978_basic.h File Reference

driver wm8978 basic header file More...

Include dependency graph for driver_wm8978_basic.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define WM8978_BASIC_DEFAULT_DC_BUFFER   WM8978_BOOL_FALSE
 wm8978 basic example default definition
#define WM8978_BASIC_DEFAULT_OUT4_MIXER   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_OUT3_MIXER   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_PLL   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_MICROPHONE_BIAS   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_UNUSED_INPUT_OUTPUT_TIE_OFF_BUFFER   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_ANALOGUE_AMPLIFIER_BIAS   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_REFERENCE_IMPEDANCE   WM8978_IMPEDANCE_5K
#define WM8978_BASIC_DEFAULT_OUT4   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_OUT3   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_BCLK_POLARITY   WM8978_POLARITY_NORMAL
#define WM8978_BASIC_DEFAULT_LRCLK_POLARITY   WM8978_POLARITY_NORMAL
#define WM8978_BASIC_DEFAULT_DAC_APPEAR   WM8978_APPEAR_LEFT
#define WM8978_BASIC_DEFAULT_ADC_APPEAR   WM8978_APPEAR_LEFT
#define WM8978_BASIC_DEFAULT_COMPANDING_8BIT_MODE   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_DATA_FORMAT   WM8978_DATA_FORMAT_IIS
#define WM8978_BASIC_DEFAULT_LOOP_BACK   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_CLKSEL   WM8978_CLKSEL_MCLK
#define WM8978_BASIC_DEFAULT_MCLK_DIV   WM8978_MCLK_DIV_BY_1
#define WM8978_BASIC_DEFAULT_BCLK_DIV   WM8978_BCLK_DIV_BY_1
#define WM8978_BASIC_DEFAULT_CLOCK_MODE   WM8978_CLOCK_MODE_INPUT
#define WM8978_BASIC_DEFAULT_APPROXIMATE_SAMPLE   WM8978_APPROXIMATE_SAMPLE_48_KHZ
#define WM8978_BASIC_DEFAULT_SLOW_CLOCK   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_PLL_DIV   WM8978_PLL_DIV_BY_1
#define WM8978_BASIC_DEFAULT_GPIO1_POLARITY   WM8978_POLARITY_NORMAL
#define WM8978_BASIC_DEFAULT_GPIO1_SELECT   WM8978_GPIO1_SEL_INPUT
#define WM8978_BASIC_DEFAULT_VMID_1   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_VMID_0   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_JACK_DETECTION   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_JACK_GPIO   WM8978_JACK_SEL_GPIO2
#define WM8978_BASIC_DEFAULT_SOFT_MUTE   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_DAC_OVERSAMPLE_RATE   WM8978_DAC_OVERSAMPLE_RATE_128X
#define WM8978_BASIC_DEFAULT_AMUTE   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_RIGHT_DAC_OUTPUT_POLARITY   WM8978_POLARITY_NORMAL
#define WM8978_BASIC_DEFAULT_LEFT_DAC_OUTPUT_POLARITY   WM8978_POLARITY_NORMAL
#define WM8978_BASIC_DEFAULT_DAC_VOLUME   -10
#define WM8978_BASIC_DEFAULT_JACK_LOGIC_0_OUT1   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_JACK_LOGIC_1_OUT1   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_JACK_LOGIC_0_OUT2   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_JACK_LOGIC_1_OUT2   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_JACK_LOGIC_0_OUT3   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_JACK_LOGIC_0_OUT4   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_JACK_LOGIC_1_OUT3   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_JACK_LOGIC_1_OUT4   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_HIGH_PASS_FILTER   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_MODE   WM8978_MODE_AUDIO
#define WM8978_BASIC_DEFAULT_HIGH_PASS_FILTER_CUT_OFF   WM8978_HIGH_PASS_FILTER_CUT_OFF_0
#define WM8978_BASIC_DEFAULT_ADC_OVERSAMPLE_RATE   WM8978_ADC_OVERSAMPLE_RATE_128X
#define WM8978_BASIC_DEFAULT_ADC_RIGHT_CHANNEL_POLARITY   WM8978_POLARITY_NORMAL
#define WM8978_BASIC_DEFAULT_ADC_LEFT_CHANNEL_POLARITY   WM8978_POLARITY_NORMAL
#define WM8978_BASIC_DEFAULT_ADC_VOLUME   -10
#define WM8978_BASIC_DEFAULT_EQUALISER_APPLY   WM8978_EQUALISER_APPLIED_TO_DAC
#define WM8978_BASIC_DEFAULT_EQ1_BAND_CUT_OFF   WM8978_EQ1_BAND_CUT_OFF_80HZ
#define WM8978_BASIC_DEFAULT_EQ1_GAIN   0
#define WM8978_BASIC_DEFAULT_EQ2_BANDWIDTH   WM8978_EQ_BANDWIDTH_WIDE
#define WM8978_BASIC_DEFAULT_EQ2_BAND_CENTRE_FREQ   WM8978_EQ2_BAND_CENTRE_FREQ_385HZ
#define WM8978_BASIC_DEFAULT_EQ2_GAIN   0
#define WM8978_BASIC_DEFAULT_EQ3_BANDWIDTH   WM8978_EQ_BANDWIDTH_WIDE
#define WM8978_BASIC_DEFAULT_EQ3_BAND_CENTRE_FREQ   WM8978_EQ3_BAND_CENTRE_FREQ_1100HZ
#define WM8978_BASIC_DEFAULT_EQ3_GAIN   0
#define WM8978_BASIC_DEFAULT_EQ4_BANDWIDTH   WM8978_EQ_BANDWIDTH_WIDE
#define WM8978_BASIC_DEFAULT_EQ4_BAND_CENTRE_FREQ   WM8978_EQ4_BAND_CENTRE_FREQ_3200HZ
#define WM8978_BASIC_DEFAULT_EQ4_GAIN   0
#define WM8978_BASIC_DEFAULT_EQ5_BAND_CUT_OFF   WM8978_EQ5_BAND_CUT_OFF_11700HZ
#define WM8978_BASIC_DEFAULT_EQ5_GAIN   0
#define WM8978_BASIC_DEFAULT_DAC_DIGITAL_LIMITER   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_DAC_LIMITER_DECAY   WM8978_DAC_LIMITER_DECAY_192MS
#define WM8978_BASIC_DEFAULT_DAC_LIMITER_ATTACK   WM8978_DAC_LIMITER_ATTACK_12MS
#define WM8978_BASIC_DEFAULT_DAC_LIMITER_LEVEL   WM8978_DAC_LIMITER_LEVEL_NEGATIVE_1DB
#define WM8978_BASIC_DEFAULT_DAC_LIMITER_VOLUME_BOOST   12
#define WM8978_BASIC_DEFAULT_NOTCH_FILTER   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_NOTCH_FILTER_A0_BIT_13_7   0x00
#define WM8978_BASIC_DEFAULT_NOTCH_FILTER_A0_BIT_16_0   0x00
#define WM8978_BASIC_DEFAULT_NOTCH_FILTER_A1_BIT_13_7   0x00
#define WM8978_BASIC_DEFAULT_NOTCH_FILTER_A1_BIT_16_0   0x00
#define WM8978_BASIC_DEFAULT_ALC   WM8978_ALC_BOTH
#define WM8978_BASIC_DEFAULT_ALC_MAX_GAIN   WM8978_MAX_GAIN_35P25_DB
#define WM8978_BASIC_DEFAULT_ALC_MIN_GAIN   WM8978_MIN_GAIN_NEGATIVE_12_DB
#define WM8978_BASIC_DEFAULT_ALC_HOLD_TIME   12.0f
#define WM8978_BASIC_DEFAULT_ALC_LEVEL   WM8978_ALC_LEVEL_NEGATIVE_3
#define WM8978_BASIC_DEFAULT_ALC_MODE   WM8978_ALC_MODE_ALC
#define WM8978_BASIC_DEFAULT_ALC_DECAY   0x00
#define WM8978_BASIC_DEFAULT_ALC_ATTACK   0x00
#define WM8978_BASIC_DEFAULT_ALC_NOISE_GATE   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_ALC_NOISE_GATE_THRESHOLD   -39
#define WM8978_BASIC_DEFAULT_MCLK_DIVIDE_BY_2   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_PLLN   0x00
#define WM8978_BASIC_DEFAULT_PLL_FREQ   0x00000000
#define WM8978_BASIC_DEFAULT_DEPTH_3D   0.00f
#define WM8978_BASIC_DEFAULT_RIGHT_OUT1   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_LEFT_OUT1   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_RIGHT_CHANNEL_INPUT_BOOST   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_LEFT_CHANNEL_INPUT_BOOST   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_RIGHT_OUT2   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_LEFT_OUT2   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_RIGHT_OUTPUT_CHANNEL_MIXER   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_LEFT_OUTPUT_CHANNEL_MIXER   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_MUTE_INPUT_TO_INV_ROUT2_MIXER   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_INV_ROUT2_MIXER   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_BEEP_VOLUME   -15
#define WM8978_BASIC_DEFAULT_BEEP   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_MICROPHONE_BIAS_VOLTAGE   WM8978_AVDD_0P9
#define WM8978_BASIC_DEFAULT_RIGHT_CHANNEL_INPUT_PGA_POSITIVE   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_LEFT_CHANNEL_INPUT_PGA_POSITIVE   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_LEFT_DAC_OUTPUT_TO_RIGHT_OUTPUT_MIXER   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_RIGHT_DAC_OUTPUT_TO_LEFT_OUTPUT_MIXER   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_OUT4_BOOST   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_OUT3_BOOST   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_SPEAKER_BOOST   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_THERMAL_SHUTDOWN   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_VREF   WM8978_VREF_1K
#define WM8978_BASIC_DEFAULT_OUT3_MUTE   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_OUT4_MIXER_OUTPUT_TO_OUT3   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_LEFT_ADC_INPUT_TO_OUT3   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_LEFT_DAC_MIXER_TO_OUT3   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_LEFT_DAC_OUTPUT_TO_OUT3   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_OUT4_MUTE   WM8978_BOOL_TRUE
#define WM8978_BASIC_DEFAULT_OUT4_ATTENUATED_BY_6DB   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_LEFT_DAC_MIXER_TO_OUT4   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_LEFT_DAC_TO_OUT4   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_RIGHT_ADC_INPUT_TO_OUT4   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_RIGHT_DAC_MIXER_TO_OUT4   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_RIGHT_DAC_OUTPUT_TO_OUT4   WM8978_BOOL_FALSE
#define WM8978_BASIC_DEFAULT_LEFT_CHANNEL_INPUT_BOOST_STATA   0
#define WM8978_BASIC_DEFAULT_RIGHT_CHANNEL_INPUT_BOOST_STATA   0
#define WM8978_BASIC_DEFAULT_LEFT_BYPASS_VOLUME_CONTROL_TO_OUTPUT_CHANNEL_MIXER   0
#define WM8978_BASIC_DEFAULT_RIGHT_BYPASS_VOLUME_CONTROL_TO_OUTPUT_CHANNEL_MIXER   0
#define WM8978_BASIC_DEFAULT_LEFT_CHANNEL_INPUT_PGA_VOLUME   0
#define WM8978_BASIC_DEFAULT_RIGHT_CHANNEL_INPUT_PGA_VOLUME   0
#define WM8978_BASIC_DEFAULT_LOUT2_LEFT_SPEAKER_OUTPUT_VOLUME   0
#define WM8978_BASIC_DEFAULT_LOUT2_RIGHT_SPEAKER_OUTPUT_VOLUME   0
#define WM8978_BASIC_DEFAULT_LOUT1_LEFT_HEADPHONE_OUTPUT_VOLUME   0
#define WM8978_BASIC_DEFAULT_LOUT1_RIGHT_HEADPHONE_OUTPUT_VOLUME   0

Enumerations

enum  wm8978_basic_mode_t { WM8978_BASIC_MODE_PLAY = 0x00 , WM8978_BASIC_MODE_RECORD = 0x01 }
 wm8978 basic mode enumeration definition More...

Functions

uint8_t wm8978_basic_init (wm8978_basic_mode_t mode)
 basic example init
uint8_t wm8978_basic_deinit (void)
 basic example deinit
uint8_t wm8978_basic_config (wm8978_companding_t companding, wm8978_channel_t channel, wm8978_word_length_t length)
 basic example config
uint8_t wm8978_basic_set_dac_volume (float db)
 basic example set dac volume
uint8_t wm8978_basic_set_dac_mute (void)
 basic example set dac mute
uint8_t wm8978_basic_set_adc_volume (float db)
 basic example set adc volume

Detailed Description

driver wm8978 basic header file

Copyright (c) 2015 - present LibDriver All rights reserved

The MIT License (MIT)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Version
1.0.0
Author
Shifeng Li
Date
2023-07-31

history

Date Version Author Description
2023-07-31 1.0 Shifeng Li first upload

Definition in file driver_wm8978_basic.h.