166 uint32_t
init(uint32_t inputDevice, uint32_t outputDevice, uint8_t volume,
167 uint32_t audioFreq) {
207 tmp = ((tmp & 0x0EU) | 0xA0U);
486 return volume >= 100 ?
static_cast<uint8_t
>(0)
487 :
static_cast<uint8_t
>(volume * 2 + 56);
492 return reg == 0 ?
static_cast<uint8_t
>(100)
493 :
static_cast<uint8_t
>((reg - 56) / 2);
Header-only driver class for the CS42L51 codec chip.
Definition CS42L51.h:149
constexpr uint8_t volumeConvert(uint8_t volume)
Converts a volume in the range 0-100 to the codec's register value.
Definition CS42L51.h:485
uint32_t setFrequency(uint32_t audioFreq)
Sets new frequency.
Definition CS42L51.h:441
uint8_t is_initialized
Definition CS42L51.h:499
uint32_t stop(uint32_t cmd)
Definition CS42L51.h:387
uint32_t play()
Start the audio Codec play feature.
Definition CS42L51.h:304
uint8_t readReg(uint8_t reg)
Definition CS42L51.h:473
uint32_t init(uint32_t inputDevice, uint32_t outputDevice, uint8_t volume, uint32_t audioFreq)
Definition CS42L51.h:166
uint32_t readID()
Get the CS42L51 ID.
Definition CS42L51.h:298
uint32_t resume()
Resumes playing on the audio codec.
Definition CS42L51.h:382
uint32_t setVolume(uint8_t volume)
Definition CS42L51.h:422
uint32_t setMute(uint32_t cmd)
Definition CS42L51.h:446
uint32_t pause()
Pauses playing on the audio codec.
Definition CS42L51.h:379
uint8_t writeReg(uint8_t reg, uint8_t value)
Definition CS42L51.h:479
constexpr uint8_t volumeInvert(uint8_t reg)
Converts a codec register value back to a volume in the range 0-100.
Definition CS42L51.h:491
uint16_t device_addr
Definition CS42L51.h:498
uint8_t getVolume()
Get the output codec volume level.
Definition CS42L51.h:435
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition CS42L51.h:154
void deinit()
Deinitializes the audio codec.
Definition CS42L51.h:295
uint32_t reset()
Resets cs42l51 registers.
Definition CS42L51.h:471
i2c_bus_handle_t i2c_handle
Definition CS42L51.h:497
uint32_t current_devices
Definition CS42L51.h:500
uint32_t setOutputMode(uint32_t output)
Definition CS42L51.h:465
void setAddress(uint16_t addr)
Defines the I2C device address.
Definition CS42L51.h:157
Namespace for audio driver components.
Definition AudioBoard.h:5
CS42L51Frequency
Audio frequencies.
Definition CS42L51.h:93
@ CS42L51_FREQUENCY_8K
Definition CS42L51.h:104
@ CS42L51_FREQUENCY_22K
Definition CS42L51.h:101
@ CS42L51_FREQUENCY_192K
Definition CS42L51.h:94
@ CS42L51_FREQUENCY_88K
Definition CS42L51.h:97
@ CS42L51_FREQUENCY_16K
Definition CS42L51.h:102
@ CS42L51_FREQUENCY_96K
Definition CS42L51.h:96
@ CS42L51_FREQUENCY_44K
Definition CS42L51.h:99
@ CS42L51_FREQUENCY_32K
Definition CS42L51.h:100
@ CS42L51_FREQUENCY_48K
Definition CS42L51.h:98
@ CS42L51_FREQUENCY_11K
Definition CS42L51.h:103
@ CS42L51_FREQUENCY_176K
Definition CS42L51.h:95
CS42L51Reg
Definition CS42L51.h:30
@ CS42L51_ALCB_PGAB_CTRL
Definition CS42L51.h:41
@ CS42L51_BEEP_FREQ_AND_TIMING_CFG
Definition CS42L51.h:48
@ CS42L51_ALC_ENABLE_AND_ATTACK_RATE
Definition CS42L51.h:58
@ CS42L51_ALCA_PGAA_CTRL
Definition CS42L51.h:40
@ CS42L51_DAC_OUTPUT_CTRL
Definition CS42L51.h:38
@ CS42L51_ADC_CTRL
Definition CS42L51.h:36
@ CS42L51_PWR_CTRL_1
Definition CS42L51.h:32
@ CS42L51_CHIP_ID
Definition CS42L51.h:31
@ CS42L51_INTERFACE_CTRL
Definition CS42L51.h:34
@ CS42L51_AOUTA_VOL_CTRL
Definition CS42L51.h:52
@ CS42L51_MIC_CTRL
Definition CS42L51.h:35
@ CS42L51_ADCA_MIXER_VOL_CTRL
Definition CS42L51.h:44
@ CS42L51_AOUTB_VOL_CTRL
Definition CS42L51.h:53
@ CS42L51_CHARGE_PUMP_FREQ
Definition CS42L51.h:63
@ CS42L51_NOISE_GATE_CFG_AND_MISC
Definition CS42L51.h:61
@ CS42L51_BEEP_CFG_AND_TONE_CFG
Definition CS42L51.h:50
@ CS42L51_ALC_THR
Definition CS42L51.h:60
@ CS42L51_MIC_PWR_SPEED_CTRL
Definition CS42L51.h:33
@ CS42L51_PCMA_MIXER_VOL_CTRL
Definition CS42L51.h:46
@ CS42L51_BEEP_OFF_TIME_AND_VOL
Definition CS42L51.h:49
@ CS42L51_LIMITER_RELEASE_RATE_REG
Definition CS42L51.h:56
@ CS42L51_STATUS
Definition CS42L51.h:62
@ CS42L51_ADCB_ATTENUATOR
Definition CS42L51.h:43
@ CS42L51_ADCX_INPUT_SELECT
Definition CS42L51.h:37
@ CS42L51_ALC_RELEASE_RATE
Definition CS42L51.h:59
@ CS42L51_ADCA_ATTENUATOR
Definition CS42L51.h:42
@ CS42L51_LIMITER_THR_SZC_DISABLE
Definition CS42L51.h:55
@ CS42L51_TONE_CTRL
Definition CS42L51.h:51
@ CS42L51_DAC_CTRL
Definition CS42L51.h:39
@ CS42L51_PCMB_MIXER_VOL_CTRL
Definition CS42L51.h:47
@ CS42L51_LIMITER_ATTACK_RATE_REG
Definition CS42L51.h:57
@ CS42L51_ADC_PCM_CHANNEL_MIXER
Definition CS42L51.h:54
@ CS42L51_ADCB_MIXER_VOL_CTRL
Definition CS42L51.h:45
static constexpr uint8_t CS42L51_ID
CS42L51 chip identification.
Definition CS42L51.h:141
CS42L51InputDevice
Audio input devices: can be combined with |.
Definition CS42L51.h:77
@ CS42L51_IN_NONE
Definition CS42L51.h:78
@ CS42L51_IN_MIC2
Definition CS42L51.h:80
@ CS42L51_IN_MIC1
Definition CS42L51.h:79
@ CS42L51_IN_LINE1
Definition CS42L51.h:81
@ CS42L51_IN_LINE3
Definition CS42L51.h:83
@ CS42L51_IN_LINE2
Definition CS42L51.h:82
CS42L51Mute
Mute commands.
Definition CS42L51.h:128
@ CS42L51_MUTE_ON
Definition CS42L51.h:130
@ CS42L51_MUTE_OFF
Definition CS42L51.h:129
CS42L51VolumeSelect
Volume input/output selection.
Definition CS42L51.h:122
@ CS42L51_VOLUME_OUTPUT
Definition CS42L51.h:124
@ CS42L51_VOLUME_INPUT
Definition CS42L51.h:123
CS42L51Status
Component status.
Definition CS42L51.h:71
@ CS42L51_OK
Definition CS42L51.h:72
@ CS42L51_ERROR
Definition CS42L51.h:73
CS42L51OutputDevice
Audio output devices: can be combined with |.
Definition CS42L51.h:87
@ CS42L51_OUT_HEADPHONE
Definition CS42L51.h:89
@ CS42L51_OUT_NONE
Definition CS42L51.h:88
static constexpr uint8_t CS42L51_ID_MASK
Definition CS42L51.h:142
CS42L51Protocol
Audio protocols.
Definition CS42L51.h:134
@ CS42L51_PROTOCOL_R_JUSTIFIED
Definition CS42L51.h:137
@ CS42L51_PROTOCOL_L_JUSTIFIED
Definition CS42L51.h:135
@ CS42L51_PROTOCOL_I2S
Definition CS42L51.h:136
CS42L51PowerDownMode
Codec stop / power down options.
Definition CS42L51.h:116
@ CS42L51_PDWN_SW
Definition CS42L51.h:118
@ CS42L51_PDWN_HW
Definition CS42L51.h:117
void * i2c_bus_handle_t
Definition DriverCommon.h:155
CS42L51Resolution
Audio resolutions (only applicable for CS42L51_PROTOCOL_R_JUSTIFIED)
Definition CS42L51.h:108
@ CS42L51_RESOLUTION_24B
Definition CS42L51.h:112
@ CS42L51_RESOLUTION_16B
Definition CS42L51.h:109
@ CS42L51_RESOLUTION_18B
Definition CS42L51.h:110
@ CS42L51_RESOLUTION_20B
Definition CS42L51.h:111