arduino-audio-driver
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
audio_driver Namespace Reference

Namespace for audio driver components. More...

Namespaces

namespace  tlv320aic3110_detail
 

Classes

struct  _coeff_div
 
struct  _wm8960_operation_t
 
class  AC101
 Header-only driver class for the AC101 codec chip. More...
 
struct  ac_i2s_clock_t
 Configure AC101 clock. More...
 
class  API_GPIO
 
class  AudioBoard
 Defitintion for audio board pins and an audio driver. More...
 
class  AudioDriver
 Abstract Driver API for codec chips. More...
 
class  AudioDriverAC101Class
 Driver API for AC101 codec chip. More...
 
class  AudioDriverCombined
 Generic Driver API for boards with a different DAC and ADC codec chip. More...
 
class  AudioDriverCS42448Class
 Driver API for CS42448 TDS DAC/ADC. More...
 
class  AudioDriverCS42L51Class
 Driver API for CS42L51 codec chip. More...
 
class  AudioDriverCS43l22Class
 Driver API for the CS43l22 codec chip on 0x94 (0x4A<<1) More...
 
class  AudioDriverES7210Class
 Driver API for ES7210 codec chip. This chip supports only input! More...
 
class  AudioDriverES7243Class
 Driver API for Lyrat ES7243 codec chip. More...
 
class  AudioDriverES7243eClass
 Driver API for ES7243e codec chip. More...
 
class  AudioDriverES8156Class
 Driver API for ES8156 codec chip. More...
 
class  AudioDriverES8311Class
 Driver API for Lyrat ES8311 codec chip. More...
 
class  AudioDriverES8374Class
 Driver API for ES8374 codec chip. More...
 
class  AudioDriverES8388Class
 Driver API for ES8388 codec chip. More...
 
class  AudioDriverLyratMiniClass
 Driver API for Lyrat Mini with a ES8311 and a ES7243 codec chip. More...
 
class  AudioDriverNAU8325Class
 
class  AudioDriverPCM3168Class
 Driver API for the CS43l22 codec chip on 0x94 (0x4A<<1) More...
 
class  AudioDriverSGTL5000Class
 Driver API for SGTL5000 codec chip. More...
 
class  AudioDriverTAS5805MClass
 Driver API for TAS5805M codec chip. More...
 
class  AudioDriverTLV320AIC3104Class
 Driver for the TI TLV320AIC3104. It might also work on other AIC310x chips. More...
 
class  AudioDriverWM8731Class
 Driver API for WM8731 codec chip. More...
 
class  AudioDriverWM8960Class
 Driver API for WM8990 codec chip. More...
 
class  AudioDriverWM8978Class
 Driver API for the wm8978 codec chip. More...
 
class  AudioDriverWM8994Class
 Driver API for the wm8994 codec chip. More...
 
class  AudioDriverZephyrT
 Generic Driver API that wraps a codec driver class which has been ported from the Zephyr RTOS (see Codecs/<chip>/ *.h, e.g. WM8904, DA7212, TAS2563, ...). It provides the I2C wire/address from the pin configuration to the driver and calls its begin()/setVolume()/setMute() (or setOutputVolume()/setOutputMute()) methods, so that the chip can be used via the regular AudioDriver API. More...
 
class  AW88298
 Header only C++ driver for the AW88298 smart amplifier. More...
 
struct  codec_config_t
 Top-level codec configuration passed to the audio driver at init. More...
 
class  CodecConfig
 I2S configuration and definition of input and output with default values. More...
 
class  CS42448
 The CS42448 CODEC from Cirrus Logic provides six multi-bit ana- log-to-digital and eight multi-bit digital-to-analog delta-sigma converters. More...
 
class  CS42L51
 Header-only driver class for the CS42L51 codec chip. More...
 
class  CS43L22
 Header-only driver class for the CS43L22 codec chip. More...
 
class  DA7212
 Header only C++ driver for the DA7212 audio codec. More...
 
class  DriverDeviceInfo
 All pins for i2s, spi, i2c and other pins. More...
 
class  DriverTouchClass
 Support for Touch. More...
 
class  ES7210
 Header-only driver class for the ES7210 ADC chip. More...
 
class  ES7243
 Header-only driver class for the ES7243 ADC chip. More...
 
class  ES7243E
 Header-only driver class for the ES7243E ADC chip. More...
 
class  ES8156
 Header-only driver class for the ES8156 DAC chip. More...
 
class  ES8311
 Header-only driver class for the ES8311 codec chip. More...
 
struct  es8311_coeff_div
 
class  ES8374
 Header-only driver class for the ES8374 codec chip. More...
 
class  ES8388
 Header-only driver class for the ES8388 codec chip. More...
 
class  GPIOExt
 
class  GPIOZephyr
 
struct  I2CConfig
 
struct  I2SDefinition
 I2S interface parameters for the audio codec. More...
 
class  IDriverDeviceInfo
 
struct  InfoGPIO
 Pins for LED, Buttons, AMP etc. More...
 
struct  InfoI2C
 I2C pins. More...
 
struct  InfoI2S
 I2S pins. More...
 
struct  InfoSPI
 SPI pins: In Arduino we initialize the SPI, on other platform we just provide the pin information. More...
 
class  MAX98091
 Header only C++ driver for the MAX98091 audio codec. More...
 
class  NAU8325
 Header-only driver for the Nuvoton NAU8325 Class-D amplifier with DAC. More...
 
class  NoDriverClass
 Dummy Driver which does nothing. More...
 
struct  OsrAttr
 
class  PCM1681
 Header only C++ driver for the PCM1681 8-channel audio DAC. More...
 
class  PCM3168
 
class  PinsAudioKitAC101Class
 Pins for alt AC101 AudioDriver - use the PinsAudioKitAC101 object! More...
 
class  PinsAudioKitEs8388v1Class
 Pins for Es8388 AudioDriver - use the PinsAudioKitEs8388v1 object! More...
 
class  PinsAudioKitEs8388v2Class
 Pins for alt Es8388 AudioDriver - use the PinsAudioKitEs8388v2 object! More...
 
class  PinsESP32S3AISmartSpeakerClass
 Pins for ESP32 S3 AI Smart Speaker - use the PinsESP32S3AISmartSpeaker object! We support the TCA9555 GPIO expander! More...
 
class  PinsESP32S3HosyondDisplayClass
 Pins definition for ESP32-S3 Hosyond Display with ES8311 AudioDriver & FM8002E Audio Amplifier. More...
 
class  PinsGmicHaToyMdClass
 Pins for the GMIC HA-TOYMD audio module (ESP32-S3 + ES8311) More...
 
class  PinsLyrat42Class
 Pins for Lyrat 4.2 - use the PinsLyrat42 object! More...
 
class  PinsLyrat43Class
 Pins for Lyrat 4.3 - use the PinsLyrat43 object! More...
 
class  PinsLyratMiniClass
 Pins for Lyrat Mini - use the PinsLyratMini object! More...
 
class  PinsM5stackAtomEchoS3RClass
 Pins for M5stack Atom EchoS3R. More...
 
class  PinsSTM32F411DiscoClass
 Pins the STM32F411Disco board using the CS43L22 codec. More...
 
class  PinsSTM32F723DiscoClass
 Pins the STM32F723E-Discovery board using the WM8994 codec. More...
 
struct  RegDefault
 
class  SF32LB
 SF32LB (SiFli SF32LB5x) on-chip AUDCODEC driver, ported from the Zephyr RTOS driver drivers/audio/sf32lb_codec.c (https://github.com/zephyrproject-rtos/zephyr, Apache-2.0) using the register definitions from hal_sifli cmsis/sf32lb52x/audcodec.h. More...
 
class  SGTL5000
 Header-only driver class for the SGTL5000 codec chip. More...
 
struct  SPIClass
 
struct  SPIConfig
 
struct  SRateAttr
 
struct  SrcAttr
 
class  TAS2563
 Header only C++ driver for the TAS2563 mono Class-D smart amplifier. More...
 
class  TAS5805M
 Header-only driver class for the TAS5805M amplifier chip. More...
 
struct  tas5805m_cfg_reg_t
 
class  TAS6422DAC
 Header only C++ driver for the TAS6422 2-channel Class-D amplifier. More...
 
class  TCA9555
 Driver for the TCA9555 I2C I/O expander (header-only). More...
 
class  TLV320AIC3104
 Header only C++ driver for the TLV320AIC3104 audio codec. More...
 
class  TLV320AIC3110
 Header only C++ driver for the TLV320AIC3110 audio codec. More...
 
class  TLV320DAC310x
 Header only C++ driver for the TLV320DAC3100 / TLV320DAC3101 audio DAC. More...
 
struct  TwoWire
 
class  WM8731
 Header-only driver class for the WM8731 codec chip. More...
 
class  WM8904
 Header only C++ driver for the WM8904 audio codec. More...
 
class  WM8960
 Header-only driver class for the WM8960 audio codec chip. More...
 
class  WM8962
 Header only C++ driver for the WM8962 audio codec. More...
 
class  WM8978
 
class  WM8994
 Header-only driver class for the WM8994 audio codec chip. More...
 
class  ZephyrDriverCommon
 Common parent class for codec drivers that have been ported from the Zephyr RTOS audio driver implementations (drivers/audio). More...
 

Typedefs

using ADCPin = int16_t
 
using DriverPins = DriverDeviceInfo
 
using error_t = int
 
using GPIO = GPIOZephyr
 
using GpioPin = int16_t
 
using i2c_bus_handle_t = void *
 
using PinsI2C = InfoI2C
 
using PinsI2S = InfoI2S
 
using PinsSPI = InfoSPI
 
using spi_bus_handle_t = void *
 
using TLV320DAC3100 = TLV320DAC310x
 

Enumerations

enum  _wm8960_sysclk_freq_t { _WM8960_SYSCLK_FREQ_12288000_HZ = 12288000 , _WM8960_SYSCLK_FREQ_11289600_HZ = 11289600 }
 
enum  ac_adda_fs_i2s1_t {
  SAMPLE_RATE_8000 = 0x0000 , SAMPLE_RATE_11052 = 0x1000 , SAMPLE_RATE_12000 = 0x2000 , SAMPLE_RATE_16000 = 0x3000 ,
  SAMPLE_RATE_22050 = 0x4000 , SAMPLE_RATE_24000 = 0x5000 , SAMPLE_RATE_32000 = 0x6000 , SAMPLE_RATE_44100 = 0x7000 ,
  SAMPLE_RATE_48000 = 0x8000 , SAMPLE_RATE_96000 = 0x9000 , SAMPLE_RATE_192000 = 0xa000
}
 
enum  ac_bits_length_t { BIT_LENGTH_8_BITS = 0x00 , BIT_LENGTH_16_BITS = 0x01 , BIT_LENGTH_20_BITS = 0x02 , BIT_LENGTH_24_BITS = 0x03 }
 
enum  ac_i2s1_bclk_div_t {
  BCLK_DIV_1 = 0x0 , BCLK_DIV_2 = 0x1 , BCLK_DIV_4 = 0x2 , BCLK_DIV_6 = 0x3 ,
  BCLK_DIV_8 = 0x4 , BCLK_DIV_12 = 0x5 , BCLK_DIV_16 = 0x6 , BCLK_DIV_24 = 0x7 ,
  BCLK_DIV_32 = 0x8 , BCLK_DIV_48 = 0x9 , BCLK_DIV_64 = 0xa , BCLK_DIV_96 = 0xb ,
  BCLK_DIV_128 = 0xc , BCLK_DIV_192 = 0xd
}
 
enum  ac_i2s1_lrck_div_t {
  LRCK_DIV_16 = 0x0 , LRCK_DIV_32 = 0x1 , LRCK_DIV_64 = 0x2 , LRCK_DIV_128 = 0x3 ,
  LRCK_DIV_256 = 0x4
}
 
enum  ac_mode_sm_t { AC_MODE_MIN = -1 , AC_MODE_SLAVE = 0x00 , AC_MODE_MASTER = 0x01 , AC_MODE_MAX }
 
enum  ac_module_t {
  AC_MODULE_MIN = -1 , AC_MODULE_ADC = 0x01 , AC_MODULE_DAC = 0x02 , AC_MODULE_ADC_DAC = 0x03 ,
  AC_MODULE_LINE = 0x04 , AC_MODULE_MAX
}
 
enum  ac_output_mixer_gain_t {
  GAIN_N45DB = 0 , GAIN_N30DB = 1 , GAIN_N15DB = 2 , GAIN_0DB = 3 ,
  GAIN_15DB = 4 , GAIN_30DB = 5 , GAIN_45DB = 6 , GAIN_60DB = 7
}
 
enum  ac_output_mixer_source_t { SRC_MIC1 = 1 , SRC_MIC2 = 2 , SRC_LINEIN = 3 }
 
enum class  AIC3104Channel {
  HeadphoneLeft , HeadphoneRight , LineOutLeft , LineOutRight ,
  All
}
 Logical audio channels. More...
 
enum  AIC3110AdcProcBlock { AIC3110_PRB_R4_DECIMATION_A = 4 , AIC3110_PRB_R10_DECIMATION_B = 10 , AIC3110_PRB_R16_DECIMATION_C = 16 }
 ADC decimation filter / processing block selection. More...
 
enum class  AIC3110Channel {
  HeadphoneLeft , HeadphoneRight , FrontLeft , FrontRight ,
  All
}
 Logical audio channels. More...
 
enum  AIC3110CmVoltage { AIC3110_CM_VOLTAGE_1P35 = 0 , AIC3110_CM_VOLTAGE_1P5 = 1 , AIC3110_CM_VOLTAGE_1P65 = 2 , AIC3110_CM_VOLTAGE_1P8 = 3 }
 Headphone/Speaker common mode output voltage. More...
 
enum  AIC3110DacProcBlock { AIC3110_PRB_P1_DECIMATION_A = 1 , AIC3110_PRB_P7_DECIMATION_B = 7 , AIC3110_PRB_P17_DECIMATION_C = 17 }
 DAC decimation filter / processing block selection. More...
 
enum class  AudioDriverKey {
  KEY_REC = 0 , KEY_MODE , KEY_PLAY , KEY_SET ,
  KEY_VOLUME_DOWN , KEY_VOLUME_UP
}
 
enum  AudioI2SFormat {
  I2S_STD , LEFT_JUSTIFIED , RIGHT_JUSTIFIED , DSP_A ,
  DSP_B
}
 
enum class  AW88298Mode { I2S = 4 , LeftJustified = 5 , RightJustified = 6 }
 Digital audio interface mode (AW88298_REG_I2SCTRL I2SMD field) More...
 
enum class  AW88298WordSize { Bits16 , Bits20 , Bits24 , Bits32 }
 I2S word size codes (AW88298_REG_I2SCTRL I2SFS / I2SBCK fields) More...
 
enum  channels_t { CHANNELS2 = 2 , CHANNELS4 = 4 , CHANNELS8 = 8 , CHANNELS16 = 16 }
 
enum  ClockPolarity { NORMAL_BCLK , INVERTED_BCLK }
 
enum  ClockRatio { NAU8325_MCLK_FS_RATIO_256 = 0 , NAU8325_MCLK_FS_RATIO_400 = 1 , NAU8325_MCLK_FS_RATIO_500 = 2 , NAU8325_MCLK_FS_RATIO_NUM = 3 }
 
enum  codec_mode_t {
  CODEC_MODE_MIN = -1 , CODEC_MODE_NONE = 0x00 , CODEC_MODE_ENCODE = 0x01 , CODEC_MODE_DECODE = 0x02 ,
  CODEC_MODE_BOTH = 0x03 , CODEC_MODE_LINE_IN = 0x04 , CODEC_MODE_MAX
}
 
enum  CS42L51Frequency : uint32_t {
  CS42L51_FREQUENCY_192K = 192000 , CS42L51_FREQUENCY_176K = 176400 , CS42L51_FREQUENCY_96K = 96000 , CS42L51_FREQUENCY_88K = 88200 ,
  CS42L51_FREQUENCY_48K = 48000 , CS42L51_FREQUENCY_44K = 44100 , CS42L51_FREQUENCY_32K = 32000 , CS42L51_FREQUENCY_22K = 22050 ,
  CS42L51_FREQUENCY_16K = 16000 , CS42L51_FREQUENCY_11K = 11025 , CS42L51_FREQUENCY_8K = 8000
}
 Audio frequencies. More...
 
enum  CS42L51InputDevice : uint32_t {
  CS42L51_IN_NONE = 0x0000 , CS42L51_IN_MIC1 = 0x0100 , CS42L51_IN_MIC2 = 0x0200 , CS42L51_IN_LINE1 = 0x0400 ,
  CS42L51_IN_LINE2 = 0x0800 , CS42L51_IN_LINE3 = 0x1000
}
 Audio input devices: can be combined with |. More...
 
enum  CS42L51Mute : uint8_t { CS42L51_MUTE_OFF = 0 , CS42L51_MUTE_ON = 1 }
 Mute commands. More...
 
enum  CS42L51OutputDevice : uint32_t { CS42L51_OUT_NONE = 0x0000 , CS42L51_OUT_HEADPHONE = 0x0001 }
 Audio output devices: can be combined with |. More...
 
enum  CS42L51PowerDownMode : uint8_t { CS42L51_PDWN_HW = 0x00 , CS42L51_PDWN_SW = 0x01 }
 Codec stop / power down options. More...
 
enum  CS42L51Protocol : uint8_t { CS42L51_PROTOCOL_L_JUSTIFIED = 0 , CS42L51_PROTOCOL_I2S = 1 , CS42L51_PROTOCOL_R_JUSTIFIED = 2 }
 Audio protocols. More...
 
enum  CS42L51Reg : uint8_t {
  CS42L51_CHIP_ID = 0x01 , CS42L51_PWR_CTRL_1 = 0x02 , CS42L51_MIC_PWR_SPEED_CTRL = 0x03 , CS42L51_INTERFACE_CTRL = 0x04 ,
  CS42L51_MIC_CTRL = 0x05 , CS42L51_ADC_CTRL = 0x06 , CS42L51_ADCX_INPUT_SELECT = 0x07 , CS42L51_DAC_OUTPUT_CTRL = 0x08 ,
  CS42L51_DAC_CTRL = 0x09 , CS42L51_ALCA_PGAA_CTRL = 0x0A , CS42L51_ALCB_PGAB_CTRL = 0x0B , CS42L51_ADCA_ATTENUATOR = 0x0C ,
  CS42L51_ADCB_ATTENUATOR = 0x0D , CS42L51_ADCA_MIXER_VOL_CTRL = 0x0E , CS42L51_ADCB_MIXER_VOL_CTRL = 0x0F , CS42L51_PCMA_MIXER_VOL_CTRL = 0x10 ,
  CS42L51_PCMB_MIXER_VOL_CTRL = 0x11 , CS42L51_BEEP_FREQ_AND_TIMING_CFG = 0x12 , CS42L51_BEEP_OFF_TIME_AND_VOL = 0x13 , CS42L51_BEEP_CFG_AND_TONE_CFG = 0x14 ,
  CS42L51_TONE_CTRL = 0x15 , CS42L51_AOUTA_VOL_CTRL = 0x16 , CS42L51_AOUTB_VOL_CTRL = 0x17 , CS42L51_ADC_PCM_CHANNEL_MIXER = 0x18 ,
  CS42L51_LIMITER_THR_SZC_DISABLE = 0x19 , CS42L51_LIMITER_RELEASE_RATE_REG = 0x1A , CS42L51_LIMITER_ATTACK_RATE_REG = 0x1B , CS42L51_ALC_ENABLE_AND_ATTACK_RATE = 0x1C ,
  CS42L51_ALC_RELEASE_RATE = 0x1D , CS42L51_ALC_THR = 0x1E , CS42L51_NOISE_GATE_CFG_AND_MISC = 0x1F , CS42L51_STATUS = 0x20 ,
  CS42L51_CHARGE_PUMP_FREQ = 0x21
}
 
enum  CS42L51Resolution : uint8_t { CS42L51_RESOLUTION_16B = 0x05 , CS42L51_RESOLUTION_18B = 0x04 , CS42L51_RESOLUTION_20B = 0x03 , CS42L51_RESOLUTION_24B = 0x02 }
 Audio resolutions (only applicable for CS42L51_PROTOCOL_R_JUSTIFIED) More...
 
enum  CS42L51Status : int32_t { CS42L51_OK = 0 , CS42L51_ERROR = -1 }
 Component status. More...
 
enum  CS42L51VolumeSelect : uint8_t { CS42L51_VOLUME_INPUT = 0 , CS42L51_VOLUME_OUTPUT = 1 }
 Volume input/output selection. More...
 
enum class  DA7212Channel {
  FrontLeft , FrontRight , HeadphoneLeft , HeadphoneRight ,
  All
}
 Logical audio channels. More...
 
enum class  DA7212Protocol { I2S = 0x00 , LeftJustified = 0x01 , RightJustified = 0x02 , DSPMode = 0x03 }
 Digital audio interface protocol (DAI_CTRL FORMAT field) More...
 
enum class  DA7212SampleRate {
  Rate8kHz = (1U << 0) , Rate11025Hz = (2U << 0) , Rate12kHz = (3U << 0) , Rate16kHz = (5U << 0) ,
  Rate22050Hz = (6U << 0) , Rate24kHz = (7U << 0) , Rate32kHz = (9U << 0) , Rate44100Hz = (10U << 0) ,
  Rate48kHz = (11U << 0) , Rate88200Hz = (14U << 0) , Rate96kHz = (15U << 0)
}
 Sample rate (SR register) More...
 
enum  es7210_address_t { ES7210_AD1_AD0_00 = 0x80 , ES7210_AD1_AD0_01 = 0x82 , ES7210_AD1_AD0_10 = 0x84 , ES7210_AD1_AD0_11 = 0x86 }
 
enum  es7210_gain_value_t {
  ES7210_GAIN_0DB = 0 , ES7210_GAIN_3DB , ES7210_GAIN_6DB , ES7210_GAIN_9DB ,
  ES7210_GAIN_12DB , ES7210_GAIN_15DB , ES7210_GAIN_18DB , ES7210_GAIN_21DB ,
  ES7210_GAIN_24DB , ES7210_GAIN_27DB , ES7210_GAIN_30DB , ES7210_GAIN_33DB ,
  ES7210_GAIN_34_5DB , ES7210_GAIN_36DB , ES7210_GAIN_37_5DB
}
 
enum  es7210_input_mics_t { ES7210_INPUT_MIC1 = 0x01 , ES7210_INPUT_MIC2 = 0x02 , ES7210_INPUT_MIC3 = 0x04 , ES7210_INPUT_MIC4 = 0x08 }
 
enum  es8311_mic_gain_t {
  ES8311MIC_GAIN_MIN = -1 , ES8311MIC_GAIN_0DB , ES8311MIC_GAIN_6DB , ES8311MIC_GAIN_12DB ,
  ES8311MIC_GAIN_18DB , ES8311MIC_GAIN_24DB , ES8311MIC_GAIN_30DB , ES8311MIC_GAIN_36DB ,
  ES8311MIC_GAIN_42DB , ES8311MIC_GAIN_MAX
}
 
enum  es8388_input_device_t {
  ESP8388_INPUT_MIN = -1 , ESP8388_INPUT_LINPUT1_RINPUT1 = 0x00 , ESP8388_INPUT_MIC1 = 0x05 , ESP8388_INPUT_MIC2 = 0x06 ,
  ESP8388_INPUT_LINPUT2_RINPUT2 = 0x50 , ESP8388_INPUT_DIFFERENCE = 0xf0 , ESP8388_INPUT_MAX
}
 
enum  es_d2se_pga_t { ES8374_PGA_GAIN_MIN = -1 , ES8374_PGA_GAIN_DIS = 0 , ES8374_PGA_GAIN_EN = 1 , ES8374_PGA_GAIN_MAX = 2 }
 
enum  es_mic_gain_t {
  MIC_GAIN_MIN = -1 , MIC_GAIN_0DB = 0 , MIC_GAIN_3DB = 3 , MIC_GAIN_6DB = 6 ,
  MIC_GAIN_9DB = 9 , MIC_GAIN_12DB = 12 , MIC_GAIN_15DB = 15 , MIC_GAIN_18DB = 18 ,
  MIC_GAIN_21DB = 21 , MIC_GAIN_24DB = 24 , MIC_GAIN_MAX
}
 
enum  es_output_device_t {
  ES8388_OUTPUT_MIN = -1 , ES8388_OUTPUT_LOUT1 = 0x04 , ES8388_OUTPUT_ROUT1 = 0x08 , ES8388_OUTPUT_SPK = 0x09 ,
  ES8388_OUTPUT_LOUT2 = 0x10 , ES8388_OUTPUT_ROUT2 = 0x20 , ES8388_OUTPUT_ALL = 0x3c , ES8388_OUTPUT_MAX
}
 
enum  i2s_format_t { I2S_NORMAL = 0 , I2S_LEFT = 1 , I2S_RIGHT = 2 , I2S_DSP = 3 }
 
enum  i2s_master_slave_t { MODE_SLAVE = 0x00 , MODE_MASTER = 0x01 }
 
enum  input_device_t {
  ADC_INPUT_NONE = 0x00 , ADC_INPUT_LINE1 , ADC_INPUT_LINE2 , ADC_INPUT_LINE3 ,
  ADC_INPUT_ALL , ADC_INPUT_DIFFERENCE
}
 
enum class  MAX98091Channel {
  FrontLeft , FrontRight , HeadphoneLeft , HeadphoneRight ,
  All
}
 Logical audio channels. More...
 
enum class  MAX98091Protocol { I2S , LeftJustified , RightJustified }
 Digital audio interface protocol (slave mode) More...
 
enum  output_device_t { DAC_OUTPUT_NONE = 0x00 , DAC_OUTPUT_LINE1 , DAC_OUTPUT_LINE2 , DAC_OUTPUT_ALL }
 
enum  OversamplingMode { OSR_64 = 2 , OSR_128 = 1 , OSR_256 = 0 , OSR_32 = 4 }
 
enum class  PCM1681AttenuationScale { Fine = 0x00 , Wide = 0x01 }
 Output attenuation scale (PCM1681_DAMS_REG) More...
 
enum class  PCM1681DeemphasisRate { Rate44100 = 0x00 , Rate48000 = 0x01 , Rate32000 = 0x02 }
 De-emphasis sample rate selection (PCM1681_DMFx_REG field) More...
 
enum class  PCM1681FilterRollOff { Sharp = 0x00 , Slow = 0x01 }
 Digital filter roll-off (PCM1681_FLT_REG) More...
 
enum class  PCM1681Format {
  RightJustified24 = 0x00 , RightJustified16 = 0x03 , I2S_16_24 = 0x04 , LeftJustified16_24 = 0x05 ,
  I2S_TDM_24 = 0x06 , LeftJustifiedTDM24 = 0x07 , I2S_DSP_24 = 0x08 , LeftJustifiedDSP24 = 0x09
}
 Digital audio interface format (PCM1681_FMTx_REG field) More...
 
enum class  PinFunction {
  UNDEFINED = 0 , HEADPHONE_DETECT , AUXIN_DETECT , PA ,
  POWER , LED , KEY , SD ,
  CODEC , CODEC_ADC , LATCH , RESET ,
  MCLK_SOURCE , EXPANDER
}
 
enum class  PinLogic {
  InputActiveHigh , InputActiveLow , InputActiveTouch , Input ,
  Output , Inactive , OutputActiveLow
}
 
enum  sample_bits_t {
  BIT_LENGTH_MIN = -1 , BIT_LENGTH_16BITS = 0x03 , BIT_LENGTH_18BITS = 0x02 , BIT_LENGTH_20BITS = 0x01 ,
  BIT_LENGTH_24BITS = 0x00 , BIT_LENGTH_32BITS = 0x04 , BIT_LENGTH_MAX
}
 
enum  samplerate_t {
  RATE_8K = 0 , RATE_11K , RATE_16K , RATE_22K ,
  RATE_24K , RATE_32K , RATE_44K , RATE_48K ,
  RATE_64K , RATE_88K , RATE_96K , RATE_128K ,
  RATE_176K , RATE_192K
}
 
enum  signal_t { SIGNAL_DIGITAL , SIGNAL_AMALOG , SIGNAL_PDM , SIGNAL_TDM }
 
enum class  TAS2563Format { I2S , LeftJustified }
 Digital audio interface format. More...
 
enum class  TAS2563PowerMode { Active = 0x00 , Mute = 0x01 , Shutdown = 0x02 , LoadDiagnostics = 0x03 }
 Power control modes (PWR_CTL PWR_MODE field) More...
 
enum class  TAS2563SampleRate {
  Rate8kHz = 0x00 , Rate16kHz = 0x01 , Rate24kHz = 0x02 , Rate32kHz = 0x03 ,
  Rate48kHz = 0x04 , Rate96kHz = 0x05 , Rate192kHz = 0x06
}
 I2S sample rate selection (TDM_CFG0 SAMP_RATE field) More...
 
enum class  TAS6422Channel { Channel1 , Channel2 , All }
 Output channel selection. More...
 
enum class  TAS6422ChannelState { Play = 0 , Hiz = 1 , Mute = 2 , DcLoad = 3 }
 Channel state (CH_STATE_CTRL register) More...
 
enum class  TAS6422InputFormat {
  Format24BitRight = 0 , Format20BitRight = 1 , Format18BitRight = 2 , Format16BitRight = 3 ,
  I2S = 4 , Left = 5 , Dsp = 6
}
 Serial audio port input format (SAP_CTRL register) More...
 
enum class  TLV320DAC310xCmVoltage { V1P35 = 0 , V1P5 = 1 , V1P65 = 2 , V1P8 = 3 }
 Headphone driver common mode voltage. More...
 
enum class  TLV320DAC310xFormat { I2S = 0 , DSP = 1 , RJF = 2 , LJF = 3 }
 Digital audio interface format. More...
 
enum class  TLV320DAC310xOsrMultiple { Multiple8 = 8 , Multiple4 = 4 , Multiple2 = 2 }
 OSR multiple, determined from the PCM sample rate. More...
 
enum class  TLV320DAC310xOutputMode { Headphone , LineOut , Auto }
 HP output driver impedance / bias mode (Page 1 / Register 44 D2-D1) More...
 
enum class  TLV320DAC310xProcBlock { DecimationA = 25 , DecimationB = 10 , DecimationC = 18 }
 Processing block / decimation filter selection (see codec_configure_filters) More...
 
enum class  TLV320DAC310xWordLength { Bits16 = 0 , Bits20 = 1 , Bits24 = 2 , Bits32 = 3 }
 Word length of the digital audio interface. More...
 
enum class  WM8904Channel {
  FrontLeft , FrontRight , HeadphoneLeft , HeadphoneRight ,
  All
}
 Logical audio channels. More...
 
enum class  WM8904FsRatio {
  Ratio64X = 0x0 , Ratio128X = 0x1 , Ratio192X = 0x2 , Ratio256X = 0x3 ,
  Ratio384X = 0x4 , Ratio512X = 0x5 , Ratio768X = 0x6 , Ratio1024X = 0x7 ,
  Ratio1408X = 0x8 , Ratio1536X = 0x9
}
 SYSCLK / fs ratio. More...
 
enum class  WM8904Protocol {
  RightJustified = 0x0 , LeftJustified = 0x1 , I2S = 0x2 , PCMA = 0x3 ,
  PCMB = 0x3 | (1 << 4)
}
 Audio data transfer protocol. More...
 
enum class  WM8904SampleRate {
  Rate8kHz = 0x0 , Rate12kHz = 0x1 , Rate16kHz = 0x2 , Rate24kHz = 0x3 ,
  Rate32kHz = 0x4 , Rate48kHz = 0x5
}
 Sample rate (WM8904_REG_CLK_RATES_1 SAMPLE_RATE field) More...
 
enum  wm8960_adc_dac_sample_rate_t {
  WM8960_ADC_DAC_SAMPLE_RATE_48_KHZ , WM8960_ADC_DAC_SAMPLE_RATE_44_1_KHZ , WM8960_ADC_DAC_SAMPLE_RATE_32_KHZ , WM8960_ADC_DAC_SAMPLE_RATE_24_KHZ ,
  WM8960_ADC_DAC_SAMPLE_RATE_22_05_KHZ , WM8960_ADC_DAC_SAMPLE_RATE_16_KHZ , WM8960_ADC_DAC_SAMPLE_RATE_12_KHZ , WM8960_ADC_DAC_SAMPLE_RATE_11_025_KHZ ,
  WM8960_ADC_DAC_SAMPLE_RATE_8_018_KHZ , WM8960_ADC_DAC_SAMPLE_RATE_8_KHZ
}
 
enum  wm8960_features_t {
  WM8960_FEATURE_NONE = 0x00 , WM8960_FEATURE_MICROPHONE1 = 0x01 , WM8960_FEATURE_MICROPHONE2 = 0x02 , WM8960_FEATURE_MICROPHONE3 = 0x04 ,
  WM8960_FEATURE_HEADPHONE = 0x08 , WM8960_FEATURE_SPEAKER = 0x10
}
 
enum  wm8960_mode_t { WM8960_MODE_MASTER = WM8960_AUDIO_INTF0_MS_MASTER , WM8960_MODE_SLAVE = WM8960_AUDIO_INTF0_MS_SLAVE }
 
enum  wm8960_reg_t {
  WM8960_REG_LEFT_IN_VOL , WM8960_REG_RIGHT_IN_VOL , WM8960_REG_LOUT1_VOL , WM8960_REG_ROUT1_VOL ,
  WM8960_REG_CLK1 , WM8960_REG_CTR1 , WM8960_REG_CTR2 , WM8960_REG_AUDIO_INTF0 ,
  WM8960_REG_CLK2 , WM8960_REG_AUDIO_INTF1 , WM8960_REG_LEFT_DAC_VOL , WM8960_REG_RIGHT_DAC_VOL ,
  WM8960_REG_RSVD0 , WM8960_REG_RSVD1 , WM8960_REG_RSVD2 , WM8960_REG_RESET ,
  WM8960_REG_3D_CTR , WM8960_REG_ALC1 , WM8960_REG_ALC2 , WM8960_REG_ALC3 ,
  WM8960_REG_NOISE_GATE , WM8960_REG_LEFT_ADC_VOL , WM8960_REG_RIGHT_ADC_VOL , WM8960_REG_ADD_CTL1 ,
  WM8960_REG_ADD_CTL2 , WM8960_REG_PWR_MGMT1 , WM8960_REG_PWR_MGMT2 , WM8960_REG_ADD_CTL3 ,
  WM8960_REG_ANTI_POP1 , WM8960_REG_ANTI_POP2 , WM8960_REG_RSVD3 , WM8960_REG_RSVD4 ,
  WM8960_REG_ADCL_SIG_PTH , WM8960_REG_ADCR_SIG_PTH , WM8960_REG_LEFT_OUT_MIX , WM8960_REG_RSVD5 ,
  WM8960_REG_RSVD6 , WM8960_REG_RIGHT_OUT_MIX , WM8960_REG_MONO_OUT_MIX1 , WM8960_REG_MONO_OUT_MIX2 ,
  WM8960_REG_LOUT2_VOL , WM8960_REG_ROUT2_VOL , WM8960_REG_MONO_OUT_VOL , WM8960_REG_IN_BOOST_MIX1 ,
  WM8960_REG_IN_BOOST_MIX2 , WM8960_REG_BYPASS1 , WM8960_REG_BYPASS2 , WM8960_REG_PWR_MGMT3 ,
  WM8960_REG_ADD_CTL4 , WM8960_REG_CLASS_D_CTL1 , WM8960_REG_RSVD7 , WM8960_REG_CLASS_D_CTL3 ,
  WM8960_REG_PLL_N , WM8960_REG_PLL_K1 , WM8960_REG_PLL_K2 , WM8960_REG_PLL_K3
}
 
enum  wm8960_word_length_t { WM8960_WL_16BITS = WM8960_AUDIO_INTF0_WL_16BITS , WM8960_WL_20BITS = WM8960_AUDIO_INTF0_WL_20BITS , WM8960_WL_24BITS = WM8960_AUDIO_INTF0_WL_24BITS , WM8960_WL_32BITS = WM8960_AUDIO_INTF0_WL_32BITS }
 
enum class  WM8962Channel {
  FrontLeft , FrontRight , HeadphoneLeft , HeadphoneRight ,
  All
}
 Logical audio channels. More...
 
enum class  WM8962InputPgaSource { Input1 = 8 , Input2 = 4 , Input3 = 2 , Input4 = 1 }
 Input PGA source (used for routeInput) More...
 
enum class  WM8962Protocol {
  RightJustified = 0x0 , LeftJustified = 0x1 , I2S = 0x2 , PCMB = 0x3 | 0x10 ,
  PCMA = 0x4 - 1
}
 Digital audio interface protocol. More...
 
enum class  WM8962Sequence : uint16_t {
  DACToHeadphonePowerUp = 0x80 , AnalogueInputPowerUp = 0x92 , ChipPowerDown = 0x9B , SpeakerSleep = 0xE4 ,
  SpeakerWake = 0xE8
}
 Write sequencer sequence ids. More...
 

Functions

static AudioDriverCombined AudioDriverES8311_ES7210 (AudioDriverES8311, AudioDriverES7210)
 
static AudioDriverCombined AudioDriverES8311_ES7243 (AudioDriverES8311, AudioDriverES7243)
 
void delayMs (unsigned long ms)
 
static constexpr uint8_t makeBit (uint8_t l, uint8_t v)
 
static constexpr uint8_t makeBits (uint8_t l, uint8_t r, uint8_t v)
 
error_t spi_bus_create (struct SPIConfig *config)
 
void spi_bus_delete (spi_bus_handle_t bus)
 

Variables

static AudioDriverAC101Class AudioDriverAC101
 
static AudioDriverZephyrT< AW88298, 0x36 > AudioDriverAW88298
 
static AudioDriverCS42448Class AudioDriverCS42448
 
static AudioDriverCS42L51Class AudioDriverCS42L51
 
static AudioDriverCS43l22Class AudioDriverCS43l22
 
static AudioDriverZephyrT< DA7212, 0x1A > AudioDriverDA7212
 
static AudioDriverES7210Class AudioDriverES7210
 
static AudioDriverES7243Class AudioDriverES7243
 
static AudioDriverES7243eClass AudioDriverES7243e
 
static AudioDriverES8156Class AudioDriverES8156
 
static AudioDriverES8311Class AudioDriverES8311
 
static AudioDriverES8374Class AudioDriverES8374
 
static AudioDriverES8388Class AudioDriverES8388
 
static AudioDriverES8388Class AudioDriverES8388H0 {ES8388::ES8388_ADDR, 0}
 
static AudioDriverES8388Class AudioDriverES8388H1 {ES8388::ES8388_ADDR, 1}
 
static AudioDriverES8388Class AudioDriverES8388H2 {ES8388::ES8388_ADDR, 2}
 
static AudioDriverES8388Class AudioDriverES8388H3 {ES8388::ES8388_ADDR, 3}
 
static AudioDriverLyratMiniClass AudioDriverLyratMini
 
static AudioDriverZephyrT< MAX98091, 0x10 > AudioDriverMAX98091
 
static AudioDriverNAU8325Class AudioDriverNAU8325
 
static AudioDriverZephyrT< PCM1681, 0x4C > AudioDriverPCM1681
 
static AudioDriverPCM3168Class AudioDriverPCM3168
 
static AudioDriverSGTL5000Class AudioDriverSGTL5000
 
static AudioDriverZephyrT< TAS2563, 0x4C > AudioDriverTAS2563
 
static AudioDriverZephyrT< TAS6422DAC, 0x6C > AudioDriverTAS6422DAC
 
static AudioDriverTLV320AIC3104Class AudioDriverTLV320AIC3104
 
static AudioDriverZephyrT< TLV320AIC3110, 0x18 > AudioDriverTLV320AIC3110
 
static AudioDriverZephyrT< TLV320DAC3100, 0x18 > AudioDriverTLV320DAC3100
 
static AudioDriverZephyrT< TLV320DAC310x, 0x18 > AudioDriverTLV320DAC310x
 
static AudioDriverZephyrT< WM8904, 0x1A > AudioDriverWM8904
 
static AudioDriverWM8960Class AudioDriverWM8960
 
static AudioDriverZephyrT< WM8962, 0x1A > AudioDriverWM8962
 
static AudioDriverWM8978Class AudioDriverWM8978
 
static AudioDriverWM8994Class AudioDriverWM8994
 
static AudioBoard AudioKitAC101 {AudioDriverAC101, PinsAudioKitAC101}
 
static AudioBoard AudioKitEs8388V1 {AudioDriverES8388, PinsAudioKitEs8388v1}
 
static AudioBoard AudioKitEs8388V2 {AudioDriverES8388, PinsAudioKitEs8388v2}
 
static constexpr uint8_t CFG_END_1 = 0xaa
 
static constexpr uint8_t CFG_END_2 = 0xcc
 
static constexpr uint8_t CFG_END_3 = 0xee
 
static constexpr uint8_t CFG_META_BURST = 253
 
static constexpr uint8_t CFG_META_DELAY = 254
 
static constexpr uint8_t CFG_META_SWITCH = 255
 
static constexpr uint8_t CS42L51_ID = 0xD8
 CS42L51 chip identification.
 
static constexpr uint8_t CS42L51_ID_MASK = 0xF8
 
static const struct _coeff_div es7210_coeff_div []
 
static const struct es8311_coeff_div es8311_coeff_div []
 
static InfoSPI ESP32PinsSD {PinFunction::SD, 14, 2, 15, 13, SPI}
 Default SPI pins for ESP32 Lyrat, AudioDriver etc CLK, MISO, MOSI, CS.
 
static AudioBoard ESP32S3AISmartSpeaker
 
static AudioBoard ESP32S3HosyondDisplay {AudioDriverES8311, PinsESP32S3HosyondDisplay}
 
static AudioBoard GenericCS43l22 {AudioDriverCS43l22, NoPins}
 
static AudioBoard GenericES8311 {AudioDriverES8311, NoPins}
 
static AudioBoard GenericES8388 {AudioDriverES8388, NoPins}
 
static AudioBoard GenericWM8960 {AudioDriverWM8960, NoPins}
 
static AudioBoard GmicHaToyMd {AudioDriverES8311, PinsGmicHaToyMd}
 
static AudioBoard LyratMini {AudioDriverLyratMini, PinsLyratMini}
 
static AudioBoard LyratV42 {AudioDriverES8388H3, PinsLyrat42}
 
static AudioBoard LyratV43 {AudioDriverES8388H3, PinsLyrat43}
 
static AudioBoard M5stackAtomEchoS3R {AudioDriverES8311, PinsM5stackAtomEchoS3R}
 
static constexpr bool MTB_RSLT_WM8960_BAD_ARG = false
 
static AudioBoard NoBoard {NoDriver, NoPins}
 
static NoDriverClass NoDriver
 
static DriverDeviceInfo NoPins
 Pins need to be set up in the sketch.
 
static PinsAudioKitAC101Class PinsAudioKitAC101
 
static PinsAudioKitEs8388v1Class PinsAudioKitEs8388v1
 
static PinsAudioKitEs8388v2Class PinsAudioKitEs8388v2
 
static PinsESP32S3AISmartSpeakerClass PinsESP32S3AISmartSpeaker
 
static PinsESP32S3HosyondDisplayClass PinsESP32S3HosyondDisplay
 
static PinsGmicHaToyMdClass PinsGmicHaToyMd
 
static PinsLyrat42Class PinsLyrat42
 
static PinsLyrat43Class PinsLyrat43
 
static PinsLyratMiniClass PinsLyratMini
 
static PinsM5stackAtomEchoS3RClass PinsM5stackAtomEchoS3R
 
static PinsSTM32F411DiscoClass PinsSTM32F411Disco
 
static PinsSTM32F723DiscoClass PinsSTM32F723Disco
 
const samplerate_t rate_code [14]
 
const int rate_num [14]
 
static constexpr uint32_t REGISTER_MAP_SIZE = 56u
 
static uint16_t REGVAL_TBL [58]
 
constexpr int SGTL5000_ADDR = 0x0A
 7-bit I2C address with CTRL_ADR0_CS pin low (normal configuration)
 
constexpr int SGTL5000_ADDR_CS_HIGH = 0x2A
 7-bit I2C address with CTRL_ADR0_CS pin high
 
struct audio_driver::SPIClass SPI
 
static AudioBoard STM32F411Disco {AudioDriverCS43l22, PinsSTM32F411Disco}
 
static AudioBoard STM32F723Disco {AudioDriverWM8994, PinsSTM32F723Disco}
 
static const tas5805m_cfg_reg_t tas5805m_registers []
 
static const uint8_t tas5805m_volume []
 
constexpr int WM8731_ADDR = 0x1A
 7-bit I2C address (CSB pin low). If CSB is pulled high use 0x1B.
 
static constexpr uint16_t WM8960_3D_CTR_3DDEPTH_100 = 0x01Eu
 
static constexpr uint16_t WM8960_3D_CTR_3DEN = 0x001u
 
static constexpr uint16_t WM8960_3D_CTR_3DLC_HIGH = 0x020u
 
static constexpr uint16_t WM8960_3D_CTR_3DLC_LOW = 0x000u
 
static constexpr uint16_t WM8960_3D_CTR_3DUC_HIGH = 0x000u
 
static constexpr uint16_t WM8960_3D_CTR_3DUC_LOW = 0x040u
 
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MIC2B_CON = 0x008u
 
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_0dB = 0x000u
 
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_13dB = 0x010u
 
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_20dB = 0x020u
 
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_29dB = 0x030u
 
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MN1_CON = 0x100u
 
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MP2_CON = 0x040u
 
static constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MP3_CON = 0x080u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_ALRSWAP = 0x100u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_BCLKINV = 0x080u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_DLRSWAP = 0x020u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_DSP_MODE = 0x003u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_I2S_MODE = 0x002u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_L_JUSTIF = 0x001u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_R_JUSTIF = 0x000u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_LRP_INV = 0x010u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_MS_MASTER = 0x040u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_MS_SLAVE = 0x000u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_WL_16BITS = 0x000u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_WL_20BITS = 0x004u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_WL_24BITS = 0x008u
 
static constexpr uint16_t WM8960_AUDIO_INTF0_WL_32BITS = 0x00Cu
 
static constexpr uint16_t WM8960_AUDIO_INTF1_ADCCOMP_ALAW = 0x006u
 
static constexpr uint16_t WM8960_AUDIO_INTF1_ADCCOMP_ULAW = 0x004u
 
static constexpr uint16_t WM8960_AUDIO_INTF1_ALRCGPIO_GPIO = 0x040u
 
static constexpr uint16_t WM8960_AUDIO_INTF1_DACCOMP_ALAW = 0x010u
 
static constexpr uint16_t WM8960_AUDIO_INTF1_DACCOMP_ULAW = 0x018u
 
static constexpr uint16_t WM8960_AUDIO_INTF1_LOOPBACK_EN = 0x001u
 
static constexpr uint16_t WM8960_AUDIO_INTF1_WL8_8BIT = 0x020u
 
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_1 = 0x000u
 
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_1_5 = 0x040u
 
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_2 = 0x080u
 
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_3 = 0x0C0u
 
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_4 = 0x100u
 
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_5_5 = 0x140u
 
static constexpr uint16_t WM8960_CLK1_ADCDIV_BY_6 = 0x180u
 
static constexpr uint16_t WM8960_CLK1_CLKSEL_MCLK = 0x000u
 
static constexpr uint16_t WM8960_CLK1_CLKSEL_PLL = 0x001u
 
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_1 = 0x000u
 
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_1_5 = 0x008u
 
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_2 = 0x010u
 
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_3 = 0x018u
 
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_4 = 0x020u
 
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_5_5 = 0x028u
 
static constexpr uint16_t WM8960_CLK1_DACDIV_BY_6 = 0x030u
 
static constexpr uint16_t WM8960_CLK1_SYSCLKDIV_BY_1 = 0x000u
 
static constexpr uint16_t WM8960_CLK1_SYSCLKDIV_BY_2 = 0x004u
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_11 = 0x008u
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_12 = 0x009u
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_16 = 0x00Au
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_1_5 = 0x001u
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_2 = 0x002u
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_22 = 0x00Bu
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_24 = 0x00Cu
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_3 = 0x003u
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_32 = 0x00Du
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_4 = 0x004u
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_5_5 = 0x005u
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_6 = 0x006u
 
static constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_8 = 0x007u
 
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_12 = 0x180u
 
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_16 = 0x1C0u
 
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_2 = 0x040u
 
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_3 = 0x080u
 
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_4 = 0x0C0u
 
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_6 = 0x100u
 
static constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_8 = 0x140u
 
static constexpr uint16_t WM8960_CTR1_ADCHPD_DIS = 0x001u
 
static constexpr uint16_t WM8960_CTR1_ADCPOL_L_INV = 0x040u
 
static constexpr uint16_t WM8960_CTR1_ADCPOL_LR_INV = 0x060u
 
static constexpr uint16_t WM8960_CTR1_ADCPOL_R_INV = 0x020u
 
static constexpr uint16_t WM8960_CTR1_DACDIV2_6B_EN = 0x080u
 
static constexpr uint16_t WM8960_CTR1_DACMU_MUTE = 0x008u
 
static constexpr uint16_t WM8960_CTR1_DACMU_NO = 0x000u
 
static constexpr uint16_t WM8960_CTR1_DEEMPH_32_KHZ = 0x002u
 
static constexpr uint16_t WM8960_CTR1_DEEMPH_44_1_KHZ = 0x004u
 
static constexpr uint16_t WM8960_CTR1_DEEMPH_48_KHZ = 0x006u
 
static constexpr uint16_t WM8960_CTR2_DACMR_SLOW_RMP = 0x004u
 
static constexpr uint16_t WM8960_CTR2_DACPOL_L_INV = 0x040u
 
static constexpr uint16_t WM8960_CTR2_DACPOL_LR_INV = 0x060u
 
static constexpr uint16_t WM8960_CTR2_DACPOL_R_INV = 0x020u
 
static constexpr uint16_t WM8960_CTR2_DACSLOPE_SS = 0x002u
 
static constexpr uint16_t WM8960_CTR2_DACSMM_GRAD = 0x008u
 
static constexpr uint8_t WM8960_FEATURE_MICROPHONES
 
static constexpr int WM8960_I2C_ADDRESS = 0x1A
 
static constexpr uint16_t WM8960_LEFT_OUT_MIX_LD2LO_EN = 0x100u
 
static constexpr uint16_t WM8960_LEFT_OUT_MIX_LI2LO_EN = 0x080u
 
static constexpr uint16_t WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_0dB = 0x0C3u
 
static constexpr uint16_t WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_30dB = 0x0FFu
 
static constexpr uint16_t WM8960_LEFT_RIGHT_ADC_VOL_ADCVU_UP = 0x100u
 
static constexpr uint16_t WM8960_LEFT_RIGHT_DAC_VOL_0dB = 0x0FFu
 
static constexpr uint16_t WM8960_LEFT_RIGHT_DAC_VOL_127dB = 0x001u
 
static constexpr uint16_t WM8960_LEFT_RIGHT_DAC_VOL_DACVU_UP = 0x100u
 
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_INMUTE = 0x080u
 
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_INVOL_0dB = 0x017u
 
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_INVOL_30dB = 0x03Fu
 
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_IPVU = 0x100u
 
static constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_IZC_ZC = 0x040u
 
static constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_O1ZC_ZC = 0x080u
 
static constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_OUT1VOL_0dB = 0x079u
 
static constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_OUT1VOL_6dB = 0x07Fu
 
static constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_OUT1VU = 0x100u
 
static constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKRVOL_0dB = 0x079u
 
static constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKRVOL_6dB = 0x07Fu
 
static constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKRZC = 0x080u
 
static constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKVU = 0x100u
 
static constexpr uint16_t WM8960_MONO_OUT_MIX1_MIX2_2MO_DI = 0x000u
 
static constexpr uint16_t WM8960_MONO_OUT_MIX1_MIX2_2MO_EN = 0x080u
 
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_1 = 0x000u
 
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_2 = 0x040u
 
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_3 = 0x080u
 
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_4 = 0x0C0u
 
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_5_5 = 0x100u
 
static constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_6 = 0x140u
 
static constexpr uint16_t WM8960_PLL_N_PLLPRESCALE_DI = 0x000u
 
static constexpr uint16_t WM8960_PLL_N_PLLPRESCALE_EN = 0x010u
 
static constexpr uint16_t WM8960_PLL_N_SDM_FRAC = 0x020u
 
static constexpr uint16_t WM8960_PLL_N_SDM_INT = 0x000u
 
static constexpr uint16_t WM8960_PWR_MGMT1_ADCL_UP = 0x008u
 
static constexpr uint16_t WM8960_PWR_MGMT1_ADCR_UP = 0x004u
 
static constexpr uint16_t WM8960_PWR_MGMT1_AINL_UP = 0x020u
 
static constexpr uint16_t WM8960_PWR_MGMT1_AINR_UP = 0x010u
 
static constexpr uint16_t WM8960_PWR_MGMT1_DIGENB_DI = 0x001u
 
static constexpr uint16_t WM8960_PWR_MGMT1_MICB_UP = 0x002u
 
static constexpr uint16_t WM8960_PWR_MGMT1_VMIDSEL_250K = 0x100u
 
static constexpr uint16_t WM8960_PWR_MGMT1_VMIDSEL_50K = 0x080u
 
static constexpr uint16_t WM8960_PWR_MGMT1_VMIDSEL_5K = 0x180u
 
static constexpr uint16_t WM8960_PWR_MGMT1_VREF_UP = 0x040u
 
static constexpr uint16_t WM8960_PWR_MGMT2_DACL_UP = 0x100u
 
static constexpr uint16_t WM8960_PWR_MGMT2_DACR_UP = 0x080u
 
static constexpr uint16_t WM8960_PWR_MGMT2_LOUT1_UP = 0x040u
 
static constexpr uint16_t WM8960_PWR_MGMT2_OUT3_UP = 0x002u
 
static constexpr uint16_t WM8960_PWR_MGMT2_PLL_EN_UP = 0x001u
 
static constexpr uint16_t WM8960_PWR_MGMT2_ROUT1_UP = 0x020u
 
static constexpr uint16_t WM8960_PWR_MGMT2_SPKL_UP = 0x010u
 
static constexpr uint16_t WM8960_PWR_MGMT2_SPKR_UP = 0x008u
 
static constexpr uint16_t WM8960_PWR_MGMT3_LMIC_UP = 0x020u
 
static constexpr uint16_t WM8960_PWR_MGMT3_LOMIX_UP = 0x008u
 
static constexpr uint16_t WM8960_PWR_MGMT3_RMIC_UP = 0x010u
 
static constexpr uint16_t WM8960_PWR_MGMT3_ROMIX_UP = 0x004u
 
static constexpr uint16_t WM8960_RIGHT_OUT_MIX_RD2RO_EN = 0x100u
 
static constexpr uint16_t WM8960_RIGHT_OUT_MIX_RI2RO_EN = 0x080u
 
static constexpr uint32_t WM8960_TIMEOUT_MS = 100u
 

Detailed Description

Namespace for audio driver components.

SGTL5000 Audio Codec driver

Ported from the PJRC Teensy Audio Library control_sgtl5000.cpp/.h (https://github.com/PaulStoffregen/Audio), Copyright (c) 2014 Paul Stoffregen, MIT licensed.

WM8731 Audio Codec driver

Ported from the Atmel/Microchip ASF WM8731 driver (sam/components/audio/codec/wm8731), Copyright (c) 2012-2015 Atmel Corporation, redistributed under the BSD-style ASF license.

Basic set of APIs for interacting with the WM8960 audio codec display. This provides basic initialization and access to to the audio codec.

Typedef Documentation

◆ ADCPin

using ADCPin = int16_t

◆ DriverPins

◆ error_t

using error_t = int

◆ GPIO

using GPIO = GPIOZephyr

◆ GpioPin

using GpioPin = int16_t

◆ i2c_bus_handle_t

using i2c_bus_handle_t = void*

◆ PinsI2C

using PinsI2C = InfoI2C

◆ PinsI2S

using PinsI2S = InfoI2S

◆ PinsSPI

using PinsSPI = InfoSPI

◆ spi_bus_handle_t

using spi_bus_handle_t = void*

◆ TLV320DAC3100

Enumeration Type Documentation

◆ _wm8960_sysclk_freq_t

Enumerator
_WM8960_SYSCLK_FREQ_12288000_HZ 
_WM8960_SYSCLK_FREQ_11289600_HZ 

◆ ac_adda_fs_i2s1_t

Enumerator
SAMPLE_RATE_8000 
SAMPLE_RATE_11052 
SAMPLE_RATE_12000 
SAMPLE_RATE_16000 
SAMPLE_RATE_22050 
SAMPLE_RATE_24000 
SAMPLE_RATE_32000 
SAMPLE_RATE_44100 
SAMPLE_RATE_48000 
SAMPLE_RATE_96000 
SAMPLE_RATE_192000 

◆ ac_bits_length_t

Enumerator
BIT_LENGTH_8_BITS 
BIT_LENGTH_16_BITS 
BIT_LENGTH_20_BITS 
BIT_LENGTH_24_BITS 

◆ ac_i2s1_bclk_div_t

Enumerator
BCLK_DIV_1 
BCLK_DIV_2 
BCLK_DIV_4 
BCLK_DIV_6 
BCLK_DIV_8 
BCLK_DIV_12 
BCLK_DIV_16 
BCLK_DIV_24 
BCLK_DIV_32 
BCLK_DIV_48 
BCLK_DIV_64 
BCLK_DIV_96 
BCLK_DIV_128 
BCLK_DIV_192 

◆ ac_i2s1_lrck_div_t

Enumerator
LRCK_DIV_16 
LRCK_DIV_32 
LRCK_DIV_64 
LRCK_DIV_128 
LRCK_DIV_256 

◆ ac_mode_sm_t

Enumerator
AC_MODE_MIN 
AC_MODE_SLAVE 
AC_MODE_MASTER 
AC_MODE_MAX 

◆ ac_module_t

Enumerator
AC_MODULE_MIN 
AC_MODULE_ADC 
AC_MODULE_DAC 
AC_MODULE_ADC_DAC 
AC_MODULE_LINE 
AC_MODULE_MAX 

◆ ac_output_mixer_gain_t

Enumerator
GAIN_N45DB 
GAIN_N30DB 
GAIN_N15DB 
GAIN_0DB 
GAIN_15DB 
GAIN_30DB 
GAIN_45DB 
GAIN_60DB 

◆ ac_output_mixer_source_t

Enumerator
SRC_MIC1 
SRC_MIC2 
SRC_LINEIN 

◆ AIC3104Channel

enum class AIC3104Channel
strong

Logical audio channels.

Enumerator
HeadphoneLeft 

HPLOUT.

HeadphoneRight 

HPROUT.

LineOutLeft 

LEFT_LOP/M (fully differential line output)

LineOutRight 

RIGHT_LOP/M (fully differential line output)

All 

◆ AIC3110AdcProcBlock

ADC decimation filter / processing block selection.

Enumerator
AIC3110_PRB_R4_DECIMATION_A 
AIC3110_PRB_R10_DECIMATION_B 
AIC3110_PRB_R16_DECIMATION_C 

◆ AIC3110Channel

enum class AIC3110Channel
strong

Logical audio channels.

Enumerator
HeadphoneLeft 
HeadphoneRight 
FrontLeft 

Speaker left.

FrontRight 

Speaker right.

All 

◆ AIC3110CmVoltage

Headphone/Speaker common mode output voltage.

Enumerator
AIC3110_CM_VOLTAGE_1P35 
AIC3110_CM_VOLTAGE_1P5 
AIC3110_CM_VOLTAGE_1P65 
AIC3110_CM_VOLTAGE_1P8 

◆ AIC3110DacProcBlock

DAC decimation filter / processing block selection.

Enumerator
AIC3110_PRB_P1_DECIMATION_A 
AIC3110_PRB_P7_DECIMATION_B 
AIC3110_PRB_P17_DECIMATION_C 

◆ AudioDriverKey

enum class AudioDriverKey
strong
Enumerator
KEY_REC 
KEY_MODE 
KEY_PLAY 
KEY_SET 
KEY_VOLUME_DOWN 
KEY_VOLUME_UP 

◆ AudioI2SFormat

Enumerator
I2S_STD 
LEFT_JUSTIFIED 
RIGHT_JUSTIFIED 
DSP_A 
DSP_B 

◆ AW88298Mode

enum class AW88298Mode
strong

Digital audio interface mode (AW88298_REG_I2SCTRL I2SMD field)

Enumerator
I2S 
LeftJustified 
RightJustified 

◆ AW88298WordSize

enum class AW88298WordSize
strong

I2S word size codes (AW88298_REG_I2SCTRL I2SFS / I2SBCK fields)

Enumerator
Bits16 
Bits20 
Bits24 
Bits32 

◆ channels_t

enum channels_t
Enumerator
CHANNELS2 
CHANNELS4 
CHANNELS8 
CHANNELS16 

◆ ClockPolarity

Enumerator
NORMAL_BCLK 
INVERTED_BCLK 

◆ ClockRatio

enum ClockRatio
Enumerator
NAU8325_MCLK_FS_RATIO_256 
NAU8325_MCLK_FS_RATIO_400 
NAU8325_MCLK_FS_RATIO_500 
NAU8325_MCLK_FS_RATIO_NUM 

◆ codec_mode_t

Enumerator
CODEC_MODE_MIN 
CODEC_MODE_NONE 
CODEC_MODE_ENCODE 

ADC path only

CODEC_MODE_DECODE 

DAC path only

CODEC_MODE_BOTH 

ADC and DAC paths

CODEC_MODE_LINE_IN 

Line-in via ADC channel

CODEC_MODE_MAX 

◆ CS42L51Frequency

enum CS42L51Frequency : uint32_t

Audio frequencies.

Enumerator
CS42L51_FREQUENCY_192K 
CS42L51_FREQUENCY_176K 
CS42L51_FREQUENCY_96K 
CS42L51_FREQUENCY_88K 
CS42L51_FREQUENCY_48K 
CS42L51_FREQUENCY_44K 
CS42L51_FREQUENCY_32K 
CS42L51_FREQUENCY_22K 
CS42L51_FREQUENCY_16K 
CS42L51_FREQUENCY_11K 
CS42L51_FREQUENCY_8K 

◆ CS42L51InputDevice

enum CS42L51InputDevice : uint32_t

Audio input devices: can be combined with |.

Enumerator
CS42L51_IN_NONE 
CS42L51_IN_MIC1 
CS42L51_IN_MIC2 
CS42L51_IN_LINE1 
CS42L51_IN_LINE2 
CS42L51_IN_LINE3 

◆ CS42L51Mute

enum CS42L51Mute : uint8_t

Mute commands.

Enumerator
CS42L51_MUTE_OFF 
CS42L51_MUTE_ON 

◆ CS42L51OutputDevice

enum CS42L51OutputDevice : uint32_t

Audio output devices: can be combined with |.

Enumerator
CS42L51_OUT_NONE 
CS42L51_OUT_HEADPHONE 

◆ CS42L51PowerDownMode

enum CS42L51PowerDownMode : uint8_t

Codec stop / power down options.

Enumerator
CS42L51_PDWN_HW 
CS42L51_PDWN_SW 

◆ CS42L51Protocol

enum CS42L51Protocol : uint8_t

Audio protocols.

Enumerator
CS42L51_PROTOCOL_L_JUSTIFIED 
CS42L51_PROTOCOL_I2S 
CS42L51_PROTOCOL_R_JUSTIFIED 

◆ CS42L51Reg

enum CS42L51Reg : uint8_t
Enumerator
CS42L51_CHIP_ID 
CS42L51_PWR_CTRL_1 
CS42L51_MIC_PWR_SPEED_CTRL 
CS42L51_INTERFACE_CTRL 
CS42L51_MIC_CTRL 
CS42L51_ADC_CTRL 
CS42L51_ADCX_INPUT_SELECT 
CS42L51_DAC_OUTPUT_CTRL 
CS42L51_DAC_CTRL 
CS42L51_ALCA_PGAA_CTRL 
CS42L51_ALCB_PGAB_CTRL 
CS42L51_ADCA_ATTENUATOR 
CS42L51_ADCB_ATTENUATOR 
CS42L51_ADCA_MIXER_VOL_CTRL 
CS42L51_ADCB_MIXER_VOL_CTRL 
CS42L51_PCMA_MIXER_VOL_CTRL 
CS42L51_PCMB_MIXER_VOL_CTRL 
CS42L51_BEEP_FREQ_AND_TIMING_CFG 
CS42L51_BEEP_OFF_TIME_AND_VOL 
CS42L51_BEEP_CFG_AND_TONE_CFG 
CS42L51_TONE_CTRL 
CS42L51_AOUTA_VOL_CTRL 
CS42L51_AOUTB_VOL_CTRL 
CS42L51_ADC_PCM_CHANNEL_MIXER 
CS42L51_LIMITER_THR_SZC_DISABLE 
CS42L51_LIMITER_RELEASE_RATE_REG 
CS42L51_LIMITER_ATTACK_RATE_REG 
CS42L51_ALC_ENABLE_AND_ATTACK_RATE 
CS42L51_ALC_RELEASE_RATE 
CS42L51_ALC_THR 
CS42L51_NOISE_GATE_CFG_AND_MISC 
CS42L51_STATUS 
CS42L51_CHARGE_PUMP_FREQ 

◆ CS42L51Resolution

enum CS42L51Resolution : uint8_t

Audio resolutions (only applicable for CS42L51_PROTOCOL_R_JUSTIFIED)

Enumerator
CS42L51_RESOLUTION_16B 
CS42L51_RESOLUTION_18B 
CS42L51_RESOLUTION_20B 
CS42L51_RESOLUTION_24B 

◆ CS42L51Status

enum CS42L51Status : int32_t

Component status.

Enumerator
CS42L51_OK 
CS42L51_ERROR 

◆ CS42L51VolumeSelect

enum CS42L51VolumeSelect : uint8_t

Volume input/output selection.

Enumerator
CS42L51_VOLUME_INPUT 
CS42L51_VOLUME_OUTPUT 

◆ DA7212Channel

enum class DA7212Channel
strong

Logical audio channels.

Enumerator
FrontLeft 
FrontRight 
HeadphoneLeft 
HeadphoneRight 
All 

◆ DA7212Protocol

enum class DA7212Protocol
strong

Digital audio interface protocol (DAI_CTRL FORMAT field)

Enumerator
I2S 
LeftJustified 
RightJustified 
DSPMode 

used for both PCM-A and PCM-B

◆ DA7212SampleRate

enum class DA7212SampleRate
strong

Sample rate (SR register)

Enumerator
Rate8kHz 
Rate11025Hz 
Rate12kHz 
Rate16kHz 
Rate22050Hz 
Rate24kHz 
Rate32kHz 
Rate44100Hz 
Rate48kHz 
Rate88200Hz 
Rate96kHz 

◆ es7210_address_t

Enumerator
ES7210_AD1_AD0_00 
ES7210_AD1_AD0_01 
ES7210_AD1_AD0_10 
ES7210_AD1_AD0_11 

◆ es7210_gain_value_t

Enumerator
ES7210_GAIN_0DB 
ES7210_GAIN_3DB 
ES7210_GAIN_6DB 
ES7210_GAIN_9DB 
ES7210_GAIN_12DB 
ES7210_GAIN_15DB 
ES7210_GAIN_18DB 
ES7210_GAIN_21DB 
ES7210_GAIN_24DB 
ES7210_GAIN_27DB 
ES7210_GAIN_30DB 
ES7210_GAIN_33DB 
ES7210_GAIN_34_5DB 
ES7210_GAIN_36DB 
ES7210_GAIN_37_5DB 

◆ es7210_input_mics_t

Enumerator
ES7210_INPUT_MIC1 
ES7210_INPUT_MIC2 
ES7210_INPUT_MIC3 
ES7210_INPUT_MIC4 

◆ es8311_mic_gain_t

Enumerator
ES8311MIC_GAIN_MIN 
ES8311MIC_GAIN_0DB 
ES8311MIC_GAIN_6DB 
ES8311MIC_GAIN_12DB 
ES8311MIC_GAIN_18DB 
ES8311MIC_GAIN_24DB 
ES8311MIC_GAIN_30DB 
ES8311MIC_GAIN_36DB 
ES8311MIC_GAIN_42DB 
ES8311MIC_GAIN_MAX 

◆ es8388_input_device_t

Enumerator
ESP8388_INPUT_MIN 
ESP8388_INPUT_LINPUT1_RINPUT1 
ESP8388_INPUT_MIC1 
ESP8388_INPUT_MIC2 
ESP8388_INPUT_LINPUT2_RINPUT2 
ESP8388_INPUT_DIFFERENCE 
ESP8388_INPUT_MAX 

◆ es_d2se_pga_t

Enumerator
ES8374_PGA_GAIN_MIN 
ES8374_PGA_GAIN_DIS 
ES8374_PGA_GAIN_EN 
ES8374_PGA_GAIN_MAX 

◆ es_mic_gain_t

Enumerator
MIC_GAIN_MIN 
MIC_GAIN_0DB 
MIC_GAIN_3DB 
MIC_GAIN_6DB 
MIC_GAIN_9DB 
MIC_GAIN_12DB 
MIC_GAIN_15DB 
MIC_GAIN_18DB 
MIC_GAIN_21DB 
MIC_GAIN_24DB 
MIC_GAIN_MAX 

◆ es_output_device_t

Enumerator
ES8388_OUTPUT_MIN 
ES8388_OUTPUT_LOUT1 
ES8388_OUTPUT_ROUT1 
ES8388_OUTPUT_SPK 
ES8388_OUTPUT_LOUT2 
ES8388_OUTPUT_ROUT2 
ES8388_OUTPUT_ALL 
ES8388_OUTPUT_MAX 

◆ i2s_format_t

Enumerator
I2S_NORMAL 

Standard I2S format

I2S_LEFT 

Left-justified format

I2S_RIGHT 

Right-justified format

I2S_DSP 

DSP / PCM format

◆ i2s_master_slave_t

Enumerator
MODE_SLAVE 

Codec operates as I2S slave

MODE_MASTER 

Codec operates as I2S master

◆ input_device_t

Enumerator
ADC_INPUT_NONE 

No input selected

ADC_INPUT_LINE1 

Mic input from ADC 1

ADC_INPUT_LINE2 

Mic input from ADC 2

ADC_INPUT_LINE3 

Mic input from ADC 3

ADC_INPUT_ALL 

Mic input from all ADCs

ADC_INPUT_DIFFERENCE 

Mic input via differential channel

◆ MAX98091Channel

enum class MAX98091Channel
strong

Logical audio channels.

Enumerator
FrontLeft 
FrontRight 
HeadphoneLeft 
HeadphoneRight 
All 

◆ MAX98091Protocol

enum class MAX98091Protocol
strong

Digital audio interface protocol (slave mode)

Enumerator
I2S 
LeftJustified 
RightJustified 

◆ output_device_t

Enumerator
DAC_OUTPUT_NONE 

No output selected

DAC_OUTPUT_LINE1 

Output to DAC 1 (e.g. Headphone)

DAC_OUTPUT_LINE2 

Output to DAC 2 (e.g. Speaker)

DAC_OUTPUT_ALL 

Output to both DACs

◆ OversamplingMode

Enumerator
OSR_64 
OSR_128 
OSR_256 
OSR_32 

◆ PCM1681AttenuationScale

enum class PCM1681AttenuationScale
strong

Output attenuation scale (PCM1681_DAMS_REG)

Enumerator
Fine 

0.5dB steps

Wide 

1.0dB steps

◆ PCM1681DeemphasisRate

enum class PCM1681DeemphasisRate
strong

De-emphasis sample rate selection (PCM1681_DMFx_REG field)

Enumerator
Rate44100 
Rate48000 
Rate32000 

◆ PCM1681FilterRollOff

enum class PCM1681FilterRollOff
strong

Digital filter roll-off (PCM1681_FLT_REG)

Enumerator
Sharp 
Slow 

◆ PCM1681Format

enum class PCM1681Format
strong

Digital audio interface format (PCM1681_FMTx_REG field)

Enumerator
RightJustified24 
RightJustified16 
I2S_16_24 
LeftJustified16_24 
I2S_TDM_24 
LeftJustifiedTDM24 
I2S_DSP_24 
LeftJustifiedDSP24 

◆ PinFunction

enum class PinFunction
strong
Enumerator
UNDEFINED 
HEADPHONE_DETECT 
AUXIN_DETECT 
PA 

Power Amplifier enable

POWER 
LED 
KEY 
SD 
CODEC 
CODEC_ADC 
LATCH 
RESET 
MCLK_SOURCE 
EXPANDER 

◆ PinLogic

enum class PinLogic
strong
Enumerator
InputActiveHigh 
InputActiveLow 
InputActiveTouch 
Input 
Output 
Inactive 
OutputActiveLow 

◆ sample_bits_t

Enumerator
BIT_LENGTH_MIN 
BIT_LENGTH_16BITS 
BIT_LENGTH_18BITS 
BIT_LENGTH_20BITS 
BIT_LENGTH_24BITS 
BIT_LENGTH_32BITS 
BIT_LENGTH_MAX 

◆ samplerate_t

Enumerator
RATE_8K 

8,000 samples/s

RATE_11K 

11,025 samples/s

RATE_16K 

16,000 samples/s

RATE_22K 

22,050 samples/s

RATE_24K 

24,000 samples/s

RATE_32K 

32,000 samples/s

RATE_44K 

44,100 samples/s

RATE_48K 

48,000 samples/s

RATE_64K 

64,000 samples/s

RATE_88K 

88,200 samples/s

RATE_96K 

96,000 samples/s

RATE_128K 

128,000 samples/s

RATE_176K 

176,400 samples/s

RATE_192K 

192,000 samples/s

◆ signal_t

enum signal_t
Enumerator
SIGNAL_DIGITAL 

Digital (standard I2S)

SIGNAL_AMALOG 

Analogue

SIGNAL_PDM 

Pulse-density modulation

SIGNAL_TDM 

Time-division multiplexing

◆ TAS2563Format

enum class TAS2563Format
strong

Digital audio interface format.

Enumerator
I2S 
LeftJustified 

◆ TAS2563PowerMode

enum class TAS2563PowerMode
strong

Power control modes (PWR_CTL PWR_MODE field)

Enumerator
Active 
Mute 
Shutdown 
LoadDiagnostics 

◆ TAS2563SampleRate

enum class TAS2563SampleRate
strong

I2S sample rate selection (TDM_CFG0 SAMP_RATE field)

Enumerator
Rate8kHz 
Rate16kHz 
Rate24kHz 
Rate32kHz 
Rate48kHz 
Rate96kHz 
Rate192kHz 

◆ TAS6422Channel

enum class TAS6422Channel
strong

Output channel selection.

Enumerator
Channel1 
Channel2 
All 

◆ TAS6422ChannelState

enum class TAS6422ChannelState
strong

Channel state (CH_STATE_CTRL register)

Enumerator
Play 
Hiz 
Mute 
DcLoad 

◆ TAS6422InputFormat

enum class TAS6422InputFormat
strong

Serial audio port input format (SAP_CTRL register)

Enumerator
Format24BitRight 
Format20BitRight 
Format18BitRight 
Format16BitRight 
I2S 
Left 
Dsp 

◆ TLV320DAC310xCmVoltage

enum class TLV320DAC310xCmVoltage
strong

Headphone driver common mode voltage.

Enumerator
V1P35 
V1P5 
V1P65 
V1P8 

◆ TLV320DAC310xFormat

enum class TLV320DAC310xFormat
strong

Digital audio interface format.

Enumerator
I2S 
DSP 
RJF 

Right justified.

LJF 

Left justified.

◆ TLV320DAC310xOsrMultiple

enum class TLV320DAC310xOsrMultiple
strong

OSR multiple, determined from the PCM sample rate.

Enumerator
Multiple8 
Multiple4 
Multiple2 

◆ TLV320DAC310xOutputMode

enum class TLV320DAC310xOutputMode
strong

HP output driver impedance / bias mode (Page 1 / Register 44 D2-D1)

Enumerator
Headphone 

Low-impedance headphone driver mode, optimised for 16–32 Ω loads.

LineOut 

High-impedance line-out driver mode, optimised for ≥10 kΩ loads.

Auto 

Derive from output_device: LINE1 → Headphone, otherwise LineOut.

◆ TLV320DAC310xProcBlock

enum class TLV320DAC310xProcBlock
strong

Processing block / decimation filter selection (see codec_configure_filters)

Enumerator
DecimationA 

PRB_P25, used for PCM rates < 96kHz.

DecimationB 

PRB_P10, used for PCM rates >= 96kHz.

DecimationC 

PRB_P18, used for PCM rates >= 192kHz.

◆ TLV320DAC310xWordLength

enum class TLV320DAC310xWordLength
strong

Word length of the digital audio interface.

Enumerator
Bits16 
Bits20 
Bits24 
Bits32 

◆ WM8904Channel

enum class WM8904Channel
strong

Logical audio channels.

Enumerator
FrontLeft 
FrontRight 
HeadphoneLeft 
HeadphoneRight 
All 

◆ WM8904FsRatio

enum class WM8904FsRatio
strong

SYSCLK / fs ratio.

Enumerator
Ratio64X 
Ratio128X 
Ratio192X 
Ratio256X 
Ratio384X 
Ratio512X 
Ratio768X 
Ratio1024X 
Ratio1408X 
Ratio1536X 

◆ WM8904Protocol

enum class WM8904Protocol
strong

Audio data transfer protocol.

Enumerator
RightJustified 
LeftJustified 
I2S 
PCMA 
PCMB 

◆ WM8904SampleRate

enum class WM8904SampleRate
strong

Sample rate (WM8904_REG_CLK_RATES_1 SAMPLE_RATE field)

Enumerator
Rate8kHz 
Rate12kHz 

also 11.025kHz

Rate16kHz 
Rate24kHz 

also 22.05kHz

Rate32kHz 
Rate48kHz 

also 44.1kHz

◆ wm8960_adc_dac_sample_rate_t

Enumeration for supported sample rates for ADC and DAC in the WM8960 audio codec.

Enumerator
WM8960_ADC_DAC_SAMPLE_RATE_48_KHZ 

48 KHz sample rate

WM8960_ADC_DAC_SAMPLE_RATE_44_1_KHZ 

44.1 KHz sample rate

WM8960_ADC_DAC_SAMPLE_RATE_32_KHZ 

32 KHz sample rate

WM8960_ADC_DAC_SAMPLE_RATE_24_KHZ 

24 KHz sample rate

WM8960_ADC_DAC_SAMPLE_RATE_22_05_KHZ 

22.05 KHz sample rate

WM8960_ADC_DAC_SAMPLE_RATE_16_KHZ 

16 KHz sample rate

WM8960_ADC_DAC_SAMPLE_RATE_12_KHZ 

12 KHz sample rate

WM8960_ADC_DAC_SAMPLE_RATE_11_025_KHZ 

11.025 KHz sample rate

WM8960_ADC_DAC_SAMPLE_RATE_8_018_KHZ 

8.018 KHz sample rate

WM8960_ADC_DAC_SAMPLE_RATE_8_KHZ 

8 KHz sample rate

◆ wm8960_features_t

Enumeration of bit flags enabling/disabling features of the WM8960 audio codec.

Note
The values of the enumeration can be OR'ed to enable multiple features
Enumerator
WM8960_FEATURE_NONE 

No features enabled

WM8960_FEATURE_MICROPHONE1 

Enable the microphone

WM8960_FEATURE_MICROPHONE2 

Enable the microphone

WM8960_FEATURE_MICROPHONE3 

Enable the microphone

WM8960_FEATURE_HEADPHONE 

Enable the headphone

WM8960_FEATURE_SPEAKER 

Enable the class D speaker

◆ wm8960_mode_t

Enumeration to select mode of operation of the WM8960 audio codec.

Enumerator
WM8960_MODE_MASTER 

Master mode

WM8960_MODE_SLAVE 

Slave mode

◆ wm8960_reg_t

Enumeration for the WM8960 I2C Interface Register Addresses

The entries below are intended for use with these functions:

  • wm8960_read()
  • wm8960_write()
  • wm8960_set()
  • wm8960_clear()
Enumerator
WM8960_REG_LEFT_IN_VOL 

0x00: Left Input volume

WM8960_REG_RIGHT_IN_VOL 

0x01: Right Input volume

WM8960_REG_LOUT1_VOL 

0x02: LOUT1 volume

WM8960_REG_ROUT1_VOL 

0x03: ROUT1 volume

WM8960_REG_CLK1 

0x04: Clocking (1)

WM8960_REG_CTR1 

0x05: ADC & DAC Control (CTR1)

WM8960_REG_CTR2 

0x06: ADC & DAC Control (CTR2)

WM8960_REG_AUDIO_INTF0 

0x07: Audio Interface (0)

WM8960_REG_CLK2 

0x08: Clocking (2)

WM8960_REG_AUDIO_INTF1 

0x09: Audio Interface (1)

WM8960_REG_LEFT_DAC_VOL 

0x0A: Left DAC volume

WM8960_REG_RIGHT_DAC_VOL 

0x0B: Right DAC volume

WM8960_REG_RSVD0 
WM8960_REG_RSVD1 
WM8960_REG_RSVD2 
WM8960_REG_RESET 

0x0F: Reset

WM8960_REG_3D_CTR 

0x10: 3D Control

WM8960_REG_ALC1 

0x11: ALC1

WM8960_REG_ALC2 

0x12: ALC2

WM8960_REG_ALC3 

0x13: ALC3

WM8960_REG_NOISE_GATE 

0x14: Noise Gate

WM8960_REG_LEFT_ADC_VOL 

0x15: Left ADC volume

WM8960_REG_RIGHT_ADC_VOL 

0x16: Right ADC volume

WM8960_REG_ADD_CTL1 

0x17: Additional Control (1)

WM8960_REG_ADD_CTL2 

0x18: Additional Control (2)

WM8960_REG_PWR_MGMT1 

0x19: Power Management (1)

WM8960_REG_PWR_MGMT2 

0x1A: Power Management (2)

WM8960_REG_ADD_CTL3 

0x1B: Additional Control (3)

WM8960_REG_ANTI_POP1 

0x1C: Anti-pop 1

WM8960_REG_ANTI_POP2 

0x1D: Anti-pop 2

WM8960_REG_RSVD3 
WM8960_REG_RSVD4 
WM8960_REG_ADCL_SIG_PTH 

0x20: ADCL signal path

WM8960_REG_ADCR_SIG_PTH 

0x21: ADCR signal path

WM8960_REG_LEFT_OUT_MIX 

0x22: Left out Mix (1)

WM8960_REG_RSVD5 
WM8960_REG_RSVD6 
WM8960_REG_RIGHT_OUT_MIX 

0x25: Right out Mix (2)

WM8960_REG_MONO_OUT_MIX1 

0x26: Mono out Mix (1)

WM8960_REG_MONO_OUT_MIX2 

0x27: Mono out Mix (2)

WM8960_REG_LOUT2_VOL 

0x28: LOUT2 volume

WM8960_REG_ROUT2_VOL 

0x29: ROUT2 volume

WM8960_REG_MONO_OUT_VOL 

0x2A: Mono out volume

WM8960_REG_IN_BOOST_MIX1 

0x2B: Input boost mixer (1)

WM8960_REG_IN_BOOST_MIX2 

0x2C: Input boost mixer (2)

WM8960_REG_BYPASS1 

0x2D: Bypass (1)

WM8960_REG_BYPASS2 

0x2E: Bypass (2)

WM8960_REG_PWR_MGMT3 

0x2F: Power Management (3)

WM8960_REG_ADD_CTL4 

0x30: Additional Control (4)

WM8960_REG_CLASS_D_CTL1 

0x31: Class D Control (1)

WM8960_REG_RSVD7 
WM8960_REG_CLASS_D_CTL3 

0x33: Class D Control (3)

WM8960_REG_PLL_N 

0x34: PLL N

WM8960_REG_PLL_K1 

0x35: PLL K 1

WM8960_REG_PLL_K2 

0x36: PLL K 2

WM8960_REG_PLL_K3 

0x37: PLL K 3

◆ wm8960_word_length_t

Enumeration for supported word lengths in the WM8960 audio codec.

Enumerator
WM8960_WL_16BITS 

16-bit word length

WM8960_WL_20BITS 

20-bit word length

WM8960_WL_24BITS 

24-bit word length

WM8960_WL_32BITS 

32-bit word length

◆ WM8962Channel

enum class WM8962Channel
strong

Logical audio channels.

Enumerator
FrontLeft 
FrontRight 
HeadphoneLeft 
HeadphoneRight 
All 

◆ WM8962InputPgaSource

enum class WM8962InputPgaSource
strong

Input PGA source (used for routeInput)

Enumerator
Input1 
Input2 
Input3 
Input4 

◆ WM8962Protocol

enum class WM8962Protocol
strong

Digital audio interface protocol.

Enumerator
RightJustified 
LeftJustified 
I2S 
PCMB 
PCMA 

◆ WM8962Sequence

enum class WM8962Sequence : uint16_t
strong

Write sequencer sequence ids.

Enumerator
DACToHeadphonePowerUp 
AnalogueInputPowerUp 
ChipPowerDown 
SpeakerSleep 
SpeakerWake 

Function Documentation

◆ delayMs()

void delayMs ( unsigned long  ms)
inline

◆ makeBit()

static constexpr uint8_t makeBit ( uint8_t  l,
uint8_t  v 
)
staticconstexpr

◆ makeBits()

static constexpr uint8_t makeBits ( uint8_t  l,
uint8_t  r,
uint8_t  v 
)
staticconstexpr

◆ spi_bus_create()

error_t spi_bus_create ( struct SPIConfig *  config)
inline

◆ spi_bus_delete()

void spi_bus_delete ( spi_bus_handle_t  bus)
inline

Variable Documentation

◆ CFG_END_1

constexpr uint8_t CFG_END_1 = 0xaa
staticconstexpr

◆ CFG_END_2

constexpr uint8_t CFG_END_2 = 0xcc
staticconstexpr

◆ CFG_END_3

constexpr uint8_t CFG_END_3 = 0xee
staticconstexpr

◆ CFG_META_BURST

constexpr uint8_t CFG_META_BURST = 253
staticconstexpr

◆ CFG_META_DELAY

constexpr uint8_t CFG_META_DELAY = 254
staticconstexpr

◆ CFG_META_SWITCH

constexpr uint8_t CFG_META_SWITCH = 255
staticconstexpr

◆ CS42L51_ID

constexpr uint8_t CS42L51_ID = 0xD8
staticconstexpr

CS42L51 chip identification.

◆ CS42L51_ID_MASK

constexpr uint8_t CS42L51_ID_MASK = 0xF8
staticconstexpr

◆ es7210_coeff_div

const struct _coeff_div es7210_coeff_div[]
static

◆ es8311_coeff_div

const struct es8311_coeff_div es8311_coeff_div[]
static

◆ ESP32PinsSD

InfoSPI ESP32PinsSD {PinFunction::SD, 14, 2, 15, 13, SPI}
static

Default SPI pins for ESP32 Lyrat, AudioDriver etc CLK, MISO, MOSI, CS.

◆ MTB_RSLT_WM8960_BAD_ARG

constexpr bool MTB_RSLT_WM8960_BAD_ARG = false
staticconstexpr

◆ rate_code

const samplerate_t rate_code[14]
Initial value:
= {
@ RATE_44K
Definition DriverCommon.h:220
@ RATE_24K
Definition DriverCommon.h:218
@ RATE_22K
Definition DriverCommon.h:217
@ RATE_128K
Definition DriverCommon.h:225
@ RATE_8K
Definition DriverCommon.h:214
@ RATE_88K
Definition DriverCommon.h:223
@ RATE_176K
Definition DriverCommon.h:226
@ RATE_32K
Definition DriverCommon.h:219
@ RATE_96K
Definition DriverCommon.h:224
@ RATE_11K
Definition DriverCommon.h:215
@ RATE_64K
Definition DriverCommon.h:222
@ RATE_16K
Definition DriverCommon.h:216
@ RATE_48K
Definition DriverCommon.h:221
@ RATE_192K
Definition DriverCommon.h:227

◆ rate_num

const int rate_num[14]
Initial value:
= {8000, 11025, 16000, 22050, 24000, 32000, 44100,
48000, 64000, 88200, 96000, 128000, 176400, 192000}

◆ REGISTER_MAP_SIZE

constexpr uint32_t REGISTER_MAP_SIZE = 56u
staticconstexpr

◆ REGVAL_TBL

uint16_t REGVAL_TBL[58]
static
Initial value:
= {
0X0000, 0X0000, 0X0000, 0X0000, 0X0050, 0X0000, 0X0140, 0X0000, 0X0000,
0X0000, 0X0000, 0X00FF, 0X00FF, 0X0000, 0X0100, 0X00FF, 0X00FF, 0X0000,
0X012C, 0X002C, 0X002C, 0X002C, 0X002C, 0X0000, 0X0032, 0X0000, 0X0000,
0X0000, 0X0000, 0X0000, 0X0000, 0X0000, 0X0038, 0X000B, 0X0032, 0X0000,
0X0008, 0X000C, 0X0093, 0X00E9, 0X0000, 0X0000, 0X0000, 0X0000, 0X0003,
0X0010, 0X0010, 0X0100, 0X0100, 0X0002, 0X0001, 0X0001, 0X0039, 0X0039,
0X0039, 0X0039, 0X0001, 0X0001}

◆ SGTL5000_ADDR

constexpr int SGTL5000_ADDR = 0x0A
constexpr

7-bit I2C address with CTRL_ADR0_CS pin low (normal configuration)

◆ SGTL5000_ADDR_CS_HIGH

constexpr int SGTL5000_ADDR_CS_HIGH = 0x2A
constexpr

7-bit I2C address with CTRL_ADR0_CS pin high

◆ SPI

◆ tas5805m_registers

const tas5805m_cfg_reg_t tas5805m_registers[]
static

◆ tas5805m_volume

const uint8_t tas5805m_volume[]
static
Initial value:
= {
0xff, 0x9f, 0x8f, 0x7f, 0x6f, 0x5f, 0x5c, 0x5a, 0x58, 0x54, 0x50,
0x4c, 0x4a, 0x48, 0x44, 0x40, 0x3d, 0x3b, 0x39, 0x37, 0x35}

◆ WM8731_ADDR

constexpr int WM8731_ADDR = 0x1A
constexpr

7-bit I2C address (CSB pin low). If CSB is pulled high use 0x1B.

◆ WM8960_3D_CTR_3DDEPTH_100

constexpr uint16_t WM8960_3D_CTR_3DDEPTH_100 = 0x01Eu
staticconstexpr

◆ WM8960_3D_CTR_3DEN

constexpr uint16_t WM8960_3D_CTR_3DEN = 0x001u
staticconstexpr

◆ WM8960_3D_CTR_3DLC_HIGH

constexpr uint16_t WM8960_3D_CTR_3DLC_HIGH = 0x020u
staticconstexpr

◆ WM8960_3D_CTR_3DLC_LOW

constexpr uint16_t WM8960_3D_CTR_3DLC_LOW = 0x000u
staticconstexpr

◆ WM8960_3D_CTR_3DUC_HIGH

constexpr uint16_t WM8960_3D_CTR_3DUC_HIGH = 0x000u
staticconstexpr

◆ WM8960_3D_CTR_3DUC_LOW

constexpr uint16_t WM8960_3D_CTR_3DUC_LOW = 0x040u
staticconstexpr

◆ WM8960_ADCL_ADCR_SIG_PTH_MIC2B_CON

constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MIC2B_CON = 0x008u
staticconstexpr

◆ WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_0dB

constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_0dB = 0x000u
staticconstexpr

◆ WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_13dB

constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_13dB = 0x010u
staticconstexpr

◆ WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_20dB

constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_20dB = 0x020u
staticconstexpr

◆ WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_29dB

constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MICBOOST_29dB = 0x030u
staticconstexpr

◆ WM8960_ADCL_ADCR_SIG_PTH_MN1_CON

constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MN1_CON = 0x100u
staticconstexpr

◆ WM8960_ADCL_ADCR_SIG_PTH_MP2_CON

constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MP2_CON = 0x040u
staticconstexpr

◆ WM8960_ADCL_ADCR_SIG_PTH_MP3_CON

constexpr uint16_t WM8960_ADCL_ADCR_SIG_PTH_MP3_CON = 0x080u
staticconstexpr

◆ WM8960_AUDIO_INTF0_ALRSWAP

constexpr uint16_t WM8960_AUDIO_INTF0_ALRSWAP = 0x100u
staticconstexpr

◆ WM8960_AUDIO_INTF0_BCLKINV

constexpr uint16_t WM8960_AUDIO_INTF0_BCLKINV = 0x080u
staticconstexpr

◆ WM8960_AUDIO_INTF0_DLRSWAP

constexpr uint16_t WM8960_AUDIO_INTF0_DLRSWAP = 0x020u
staticconstexpr

◆ WM8960_AUDIO_INTF0_FORMAT_DSP_MODE

constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_DSP_MODE = 0x003u
staticconstexpr

◆ WM8960_AUDIO_INTF0_FORMAT_I2S_MODE

constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_I2S_MODE = 0x002u
staticconstexpr

◆ WM8960_AUDIO_INTF0_FORMAT_L_JUSTIF

constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_L_JUSTIF = 0x001u
staticconstexpr

◆ WM8960_AUDIO_INTF0_FORMAT_R_JUSTIF

constexpr uint16_t WM8960_AUDIO_INTF0_FORMAT_R_JUSTIF = 0x000u
staticconstexpr

◆ WM8960_AUDIO_INTF0_LRP_INV

constexpr uint16_t WM8960_AUDIO_INTF0_LRP_INV = 0x010u
staticconstexpr

◆ WM8960_AUDIO_INTF0_MS_MASTER

constexpr uint16_t WM8960_AUDIO_INTF0_MS_MASTER = 0x040u
staticconstexpr

◆ WM8960_AUDIO_INTF0_MS_SLAVE

constexpr uint16_t WM8960_AUDIO_INTF0_MS_SLAVE = 0x000u
staticconstexpr

◆ WM8960_AUDIO_INTF0_WL_16BITS

constexpr uint16_t WM8960_AUDIO_INTF0_WL_16BITS = 0x000u
staticconstexpr

◆ WM8960_AUDIO_INTF0_WL_20BITS

constexpr uint16_t WM8960_AUDIO_INTF0_WL_20BITS = 0x004u
staticconstexpr

◆ WM8960_AUDIO_INTF0_WL_24BITS

constexpr uint16_t WM8960_AUDIO_INTF0_WL_24BITS = 0x008u
staticconstexpr

◆ WM8960_AUDIO_INTF0_WL_32BITS

constexpr uint16_t WM8960_AUDIO_INTF0_WL_32BITS = 0x00Cu
staticconstexpr

◆ WM8960_AUDIO_INTF1_ADCCOMP_ALAW

constexpr uint16_t WM8960_AUDIO_INTF1_ADCCOMP_ALAW = 0x006u
staticconstexpr

◆ WM8960_AUDIO_INTF1_ADCCOMP_ULAW

constexpr uint16_t WM8960_AUDIO_INTF1_ADCCOMP_ULAW = 0x004u
staticconstexpr

◆ WM8960_AUDIO_INTF1_ALRCGPIO_GPIO

constexpr uint16_t WM8960_AUDIO_INTF1_ALRCGPIO_GPIO = 0x040u
staticconstexpr

◆ WM8960_AUDIO_INTF1_DACCOMP_ALAW

constexpr uint16_t WM8960_AUDIO_INTF1_DACCOMP_ALAW = 0x010u
staticconstexpr

◆ WM8960_AUDIO_INTF1_DACCOMP_ULAW

constexpr uint16_t WM8960_AUDIO_INTF1_DACCOMP_ULAW = 0x018u
staticconstexpr

◆ WM8960_AUDIO_INTF1_LOOPBACK_EN

constexpr uint16_t WM8960_AUDIO_INTF1_LOOPBACK_EN = 0x001u
staticconstexpr

◆ WM8960_AUDIO_INTF1_WL8_8BIT

constexpr uint16_t WM8960_AUDIO_INTF1_WL8_8BIT = 0x020u
staticconstexpr

◆ WM8960_CLK1_ADCDIV_BY_1

constexpr uint16_t WM8960_CLK1_ADCDIV_BY_1 = 0x000u
staticconstexpr

◆ WM8960_CLK1_ADCDIV_BY_1_5

constexpr uint16_t WM8960_CLK1_ADCDIV_BY_1_5 = 0x040u
staticconstexpr

◆ WM8960_CLK1_ADCDIV_BY_2

constexpr uint16_t WM8960_CLK1_ADCDIV_BY_2 = 0x080u
staticconstexpr

◆ WM8960_CLK1_ADCDIV_BY_3

constexpr uint16_t WM8960_CLK1_ADCDIV_BY_3 = 0x0C0u
staticconstexpr

◆ WM8960_CLK1_ADCDIV_BY_4

constexpr uint16_t WM8960_CLK1_ADCDIV_BY_4 = 0x100u
staticconstexpr

◆ WM8960_CLK1_ADCDIV_BY_5_5

constexpr uint16_t WM8960_CLK1_ADCDIV_BY_5_5 = 0x140u
staticconstexpr

◆ WM8960_CLK1_ADCDIV_BY_6

constexpr uint16_t WM8960_CLK1_ADCDIV_BY_6 = 0x180u
staticconstexpr

◆ WM8960_CLK1_CLKSEL_MCLK

constexpr uint16_t WM8960_CLK1_CLKSEL_MCLK = 0x000u
staticconstexpr

◆ WM8960_CLK1_CLKSEL_PLL

constexpr uint16_t WM8960_CLK1_CLKSEL_PLL = 0x001u
staticconstexpr

◆ WM8960_CLK1_DACDIV_BY_1

constexpr uint16_t WM8960_CLK1_DACDIV_BY_1 = 0x000u
staticconstexpr

◆ WM8960_CLK1_DACDIV_BY_1_5

constexpr uint16_t WM8960_CLK1_DACDIV_BY_1_5 = 0x008u
staticconstexpr

◆ WM8960_CLK1_DACDIV_BY_2

constexpr uint16_t WM8960_CLK1_DACDIV_BY_2 = 0x010u
staticconstexpr

◆ WM8960_CLK1_DACDIV_BY_3

constexpr uint16_t WM8960_CLK1_DACDIV_BY_3 = 0x018u
staticconstexpr

◆ WM8960_CLK1_DACDIV_BY_4

constexpr uint16_t WM8960_CLK1_DACDIV_BY_4 = 0x020u
staticconstexpr

◆ WM8960_CLK1_DACDIV_BY_5_5

constexpr uint16_t WM8960_CLK1_DACDIV_BY_5_5 = 0x028u
staticconstexpr

◆ WM8960_CLK1_DACDIV_BY_6

constexpr uint16_t WM8960_CLK1_DACDIV_BY_6 = 0x030u
staticconstexpr

◆ WM8960_CLK1_SYSCLKDIV_BY_1

constexpr uint16_t WM8960_CLK1_SYSCLKDIV_BY_1 = 0x000u
staticconstexpr

◆ WM8960_CLK1_SYSCLKDIV_BY_2

constexpr uint16_t WM8960_CLK1_SYSCLKDIV_BY_2 = 0x004u
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_11

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_11 = 0x008u
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_12

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_12 = 0x009u
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_16

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_16 = 0x00Au
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_1_5

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_1_5 = 0x001u
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_2

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_2 = 0x002u
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_22

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_22 = 0x00Bu
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_24

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_24 = 0x00Cu
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_3

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_3 = 0x003u
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_32

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_32 = 0x00Du
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_4

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_4 = 0x004u
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_5_5

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_5_5 = 0x005u
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_6

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_6 = 0x006u
staticconstexpr

◆ WM8960_CLK2_BCLKDIV_BY_8

constexpr uint16_t WM8960_CLK2_BCLKDIV_BY_8 = 0x007u
staticconstexpr

◆ WM8960_CLK2_DCLKDIV_BY_12

constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_12 = 0x180u
staticconstexpr

◆ WM8960_CLK2_DCLKDIV_BY_16

constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_16 = 0x1C0u
staticconstexpr

◆ WM8960_CLK2_DCLKDIV_BY_2

constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_2 = 0x040u
staticconstexpr

◆ WM8960_CLK2_DCLKDIV_BY_3

constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_3 = 0x080u
staticconstexpr

◆ WM8960_CLK2_DCLKDIV_BY_4

constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_4 = 0x0C0u
staticconstexpr

◆ WM8960_CLK2_DCLKDIV_BY_6

constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_6 = 0x100u
staticconstexpr

◆ WM8960_CLK2_DCLKDIV_BY_8

constexpr uint16_t WM8960_CLK2_DCLKDIV_BY_8 = 0x140u
staticconstexpr

◆ WM8960_CTR1_ADCHPD_DIS

constexpr uint16_t WM8960_CTR1_ADCHPD_DIS = 0x001u
staticconstexpr

◆ WM8960_CTR1_ADCPOL_L_INV

constexpr uint16_t WM8960_CTR1_ADCPOL_L_INV = 0x040u
staticconstexpr

◆ WM8960_CTR1_ADCPOL_LR_INV

constexpr uint16_t WM8960_CTR1_ADCPOL_LR_INV = 0x060u
staticconstexpr

◆ WM8960_CTR1_ADCPOL_R_INV

constexpr uint16_t WM8960_CTR1_ADCPOL_R_INV = 0x020u
staticconstexpr

◆ WM8960_CTR1_DACDIV2_6B_EN

constexpr uint16_t WM8960_CTR1_DACDIV2_6B_EN = 0x080u
staticconstexpr

◆ WM8960_CTR1_DACMU_MUTE

constexpr uint16_t WM8960_CTR1_DACMU_MUTE = 0x008u
staticconstexpr

◆ WM8960_CTR1_DACMU_NO

constexpr uint16_t WM8960_CTR1_DACMU_NO = 0x000u
staticconstexpr

◆ WM8960_CTR1_DEEMPH_32_KHZ

constexpr uint16_t WM8960_CTR1_DEEMPH_32_KHZ = 0x002u
staticconstexpr

◆ WM8960_CTR1_DEEMPH_44_1_KHZ

constexpr uint16_t WM8960_CTR1_DEEMPH_44_1_KHZ = 0x004u
staticconstexpr

◆ WM8960_CTR1_DEEMPH_48_KHZ

constexpr uint16_t WM8960_CTR1_DEEMPH_48_KHZ = 0x006u
staticconstexpr

◆ WM8960_CTR2_DACMR_SLOW_RMP

constexpr uint16_t WM8960_CTR2_DACMR_SLOW_RMP = 0x004u
staticconstexpr

◆ WM8960_CTR2_DACPOL_L_INV

constexpr uint16_t WM8960_CTR2_DACPOL_L_INV = 0x040u
staticconstexpr

◆ WM8960_CTR2_DACPOL_LR_INV

constexpr uint16_t WM8960_CTR2_DACPOL_LR_INV = 0x060u
staticconstexpr

◆ WM8960_CTR2_DACPOL_R_INV

constexpr uint16_t WM8960_CTR2_DACPOL_R_INV = 0x020u
staticconstexpr

◆ WM8960_CTR2_DACSLOPE_SS

constexpr uint16_t WM8960_CTR2_DACSLOPE_SS = 0x002u
staticconstexpr

◆ WM8960_CTR2_DACSMM_GRAD

constexpr uint16_t WM8960_CTR2_DACSMM_GRAD = 0x008u
staticconstexpr

◆ WM8960_FEATURE_MICROPHONES

constexpr uint8_t WM8960_FEATURE_MICROPHONES
staticconstexpr
Initial value:
=
@ WM8960_FEATURE_MICROPHONE1
Definition WM8960.h:277
@ WM8960_FEATURE_MICROPHONE2
Definition WM8960.h:278
@ WM8960_FEATURE_MICROPHONE3
Definition WM8960.h:279

◆ WM8960_I2C_ADDRESS

constexpr int WM8960_I2C_ADDRESS = 0x1A
staticconstexpr

◆ WM8960_LEFT_OUT_MIX_LD2LO_EN

constexpr uint16_t WM8960_LEFT_OUT_MIX_LD2LO_EN = 0x100u
staticconstexpr

◆ WM8960_LEFT_OUT_MIX_LI2LO_EN

constexpr uint16_t WM8960_LEFT_OUT_MIX_LI2LO_EN = 0x080u
staticconstexpr

◆ WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_0dB

constexpr uint16_t WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_0dB = 0x0C3u
staticconstexpr

◆ WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_30dB

constexpr uint16_t WM8960_LEFT_RIGHT_ADC_VOL_ADCVOL_30dB = 0x0FFu
staticconstexpr

◆ WM8960_LEFT_RIGHT_ADC_VOL_ADCVU_UP

constexpr uint16_t WM8960_LEFT_RIGHT_ADC_VOL_ADCVU_UP = 0x100u
staticconstexpr

◆ WM8960_LEFT_RIGHT_DAC_VOL_0dB

constexpr uint16_t WM8960_LEFT_RIGHT_DAC_VOL_0dB = 0x0FFu
staticconstexpr

◆ WM8960_LEFT_RIGHT_DAC_VOL_127dB

constexpr uint16_t WM8960_LEFT_RIGHT_DAC_VOL_127dB = 0x001u
staticconstexpr

◆ WM8960_LEFT_RIGHT_DAC_VOL_DACVU_UP

constexpr uint16_t WM8960_LEFT_RIGHT_DAC_VOL_DACVU_UP = 0x100u
staticconstexpr

◆ WM8960_LEFT_RIGHT_IN_VOL_INMUTE

constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_INMUTE = 0x080u
staticconstexpr

◆ WM8960_LEFT_RIGHT_IN_VOL_INVOL_0dB

constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_INVOL_0dB = 0x017u
staticconstexpr

◆ WM8960_LEFT_RIGHT_IN_VOL_INVOL_30dB

constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_INVOL_30dB = 0x03Fu
staticconstexpr

◆ WM8960_LEFT_RIGHT_IN_VOL_IPVU

constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_IPVU = 0x100u
staticconstexpr

◆ WM8960_LEFT_RIGHT_IN_VOL_IZC_ZC

constexpr uint16_t WM8960_LEFT_RIGHT_IN_VOL_IZC_ZC = 0x040u
staticconstexpr

◆ WM8960_LOUT1_ROUT1_VOL_O1ZC_ZC

constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_O1ZC_ZC = 0x080u
staticconstexpr

◆ WM8960_LOUT1_ROUT1_VOL_OUT1VOL_0dB

constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_OUT1VOL_0dB = 0x079u
staticconstexpr

◆ WM8960_LOUT1_ROUT1_VOL_OUT1VOL_6dB

constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_OUT1VOL_6dB = 0x07Fu
staticconstexpr

◆ WM8960_LOUT1_ROUT1_VOL_OUT1VU

constexpr uint16_t WM8960_LOUT1_ROUT1_VOL_OUT1VU = 0x100u
staticconstexpr

◆ WM8960_LOUT2_ROUT2_VOL_SPKRVOL_0dB

constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKRVOL_0dB = 0x079u
staticconstexpr

◆ WM8960_LOUT2_ROUT2_VOL_SPKRVOL_6dB

constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKRVOL_6dB = 0x07Fu
staticconstexpr

◆ WM8960_LOUT2_ROUT2_VOL_SPKRZC

constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKRZC = 0x080u
staticconstexpr

◆ WM8960_LOUT2_ROUT2_VOL_SPKVU

constexpr uint16_t WM8960_LOUT2_ROUT2_VOL_SPKVU = 0x100u
staticconstexpr

◆ WM8960_MONO_OUT_MIX1_MIX2_2MO_DI

constexpr uint16_t WM8960_MONO_OUT_MIX1_MIX2_2MO_DI = 0x000u
staticconstexpr

◆ WM8960_MONO_OUT_MIX1_MIX2_2MO_EN

constexpr uint16_t WM8960_MONO_OUT_MIX1_MIX2_2MO_EN = 0x080u
staticconstexpr

◆ WM8960_PLL_N_OPCLKDIV_BY_1

constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_1 = 0x000u
staticconstexpr

◆ WM8960_PLL_N_OPCLKDIV_BY_2

constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_2 = 0x040u
staticconstexpr

◆ WM8960_PLL_N_OPCLKDIV_BY_3

constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_3 = 0x080u
staticconstexpr

◆ WM8960_PLL_N_OPCLKDIV_BY_4

constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_4 = 0x0C0u
staticconstexpr

◆ WM8960_PLL_N_OPCLKDIV_BY_5_5

constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_5_5 = 0x100u
staticconstexpr

◆ WM8960_PLL_N_OPCLKDIV_BY_6

constexpr uint16_t WM8960_PLL_N_OPCLKDIV_BY_6 = 0x140u
staticconstexpr

◆ WM8960_PLL_N_PLLPRESCALE_DI

constexpr uint16_t WM8960_PLL_N_PLLPRESCALE_DI = 0x000u
staticconstexpr

◆ WM8960_PLL_N_PLLPRESCALE_EN

constexpr uint16_t WM8960_PLL_N_PLLPRESCALE_EN = 0x010u
staticconstexpr

◆ WM8960_PLL_N_SDM_FRAC

constexpr uint16_t WM8960_PLL_N_SDM_FRAC = 0x020u
staticconstexpr

◆ WM8960_PLL_N_SDM_INT

constexpr uint16_t WM8960_PLL_N_SDM_INT = 0x000u
staticconstexpr

◆ WM8960_PWR_MGMT1_ADCL_UP

constexpr uint16_t WM8960_PWR_MGMT1_ADCL_UP = 0x008u
staticconstexpr

◆ WM8960_PWR_MGMT1_ADCR_UP

constexpr uint16_t WM8960_PWR_MGMT1_ADCR_UP = 0x004u
staticconstexpr

◆ WM8960_PWR_MGMT1_AINL_UP

constexpr uint16_t WM8960_PWR_MGMT1_AINL_UP = 0x020u
staticconstexpr

◆ WM8960_PWR_MGMT1_AINR_UP

constexpr uint16_t WM8960_PWR_MGMT1_AINR_UP = 0x010u
staticconstexpr

◆ WM8960_PWR_MGMT1_DIGENB_DI

constexpr uint16_t WM8960_PWR_MGMT1_DIGENB_DI = 0x001u
staticconstexpr

◆ WM8960_PWR_MGMT1_MICB_UP

constexpr uint16_t WM8960_PWR_MGMT1_MICB_UP = 0x002u
staticconstexpr

◆ WM8960_PWR_MGMT1_VMIDSEL_250K

constexpr uint16_t WM8960_PWR_MGMT1_VMIDSEL_250K = 0x100u
staticconstexpr

◆ WM8960_PWR_MGMT1_VMIDSEL_50K

constexpr uint16_t WM8960_PWR_MGMT1_VMIDSEL_50K = 0x080u
staticconstexpr

◆ WM8960_PWR_MGMT1_VMIDSEL_5K

constexpr uint16_t WM8960_PWR_MGMT1_VMIDSEL_5K = 0x180u
staticconstexpr

◆ WM8960_PWR_MGMT1_VREF_UP

constexpr uint16_t WM8960_PWR_MGMT1_VREF_UP = 0x040u
staticconstexpr

◆ WM8960_PWR_MGMT2_DACL_UP

constexpr uint16_t WM8960_PWR_MGMT2_DACL_UP = 0x100u
staticconstexpr

◆ WM8960_PWR_MGMT2_DACR_UP

constexpr uint16_t WM8960_PWR_MGMT2_DACR_UP = 0x080u
staticconstexpr

◆ WM8960_PWR_MGMT2_LOUT1_UP

constexpr uint16_t WM8960_PWR_MGMT2_LOUT1_UP = 0x040u
staticconstexpr

◆ WM8960_PWR_MGMT2_OUT3_UP

constexpr uint16_t WM8960_PWR_MGMT2_OUT3_UP = 0x002u
staticconstexpr

◆ WM8960_PWR_MGMT2_PLL_EN_UP

constexpr uint16_t WM8960_PWR_MGMT2_PLL_EN_UP = 0x001u
staticconstexpr

◆ WM8960_PWR_MGMT2_ROUT1_UP

constexpr uint16_t WM8960_PWR_MGMT2_ROUT1_UP = 0x020u
staticconstexpr

◆ WM8960_PWR_MGMT2_SPKL_UP

constexpr uint16_t WM8960_PWR_MGMT2_SPKL_UP = 0x010u
staticconstexpr

◆ WM8960_PWR_MGMT2_SPKR_UP

constexpr uint16_t WM8960_PWR_MGMT2_SPKR_UP = 0x008u
staticconstexpr

◆ WM8960_PWR_MGMT3_LMIC_UP

constexpr uint16_t WM8960_PWR_MGMT3_LMIC_UP = 0x020u
staticconstexpr

◆ WM8960_PWR_MGMT3_LOMIX_UP

constexpr uint16_t WM8960_PWR_MGMT3_LOMIX_UP = 0x008u
staticconstexpr

◆ WM8960_PWR_MGMT3_RMIC_UP

constexpr uint16_t WM8960_PWR_MGMT3_RMIC_UP = 0x010u
staticconstexpr

◆ WM8960_PWR_MGMT3_ROMIX_UP

constexpr uint16_t WM8960_PWR_MGMT3_ROMIX_UP = 0x004u
staticconstexpr

◆ WM8960_RIGHT_OUT_MIX_RD2RO_EN

constexpr uint16_t WM8960_RIGHT_OUT_MIX_RD2RO_EN = 0x100u
staticconstexpr

◆ WM8960_RIGHT_OUT_MIX_RI2RO_EN

constexpr uint16_t WM8960_RIGHT_OUT_MIX_RI2RO_EN = 0x080u
staticconstexpr

◆ WM8960_TIMEOUT_MS

constexpr uint32_t WM8960_TIMEOUT_MS = 100u
staticconstexpr