252 AD_LOGW(
"Codec mode not support, default is decode mode");
303 switch (iface->
rate) {
333 regval |= (iface->
mode << 15);
334 regval |= (bits << 4);
335 regval |= (fmat << 2);
360 if (volume > 0x3f) volume = 0x3f;
377 return (res >> 4) & 0x3f;
381 if (volume > 0x3f) volume = 0x3f;
389 res |= (volume << 4);
396 uint16_t regval, temp, clrbit;
401 temp = (gain & 0x7) << 6;
402 clrbit = ~(0x7 << 6);
405 temp = (gain & 0x7) << 3;
406 clrbit = ~(0x7 << 3);
443 uint8_t send_buff[2];
444 send_buff[0] = (data >> 8) & 0xff;
445 send_buff[1] = data & 0xff;
447 sizeof(reg_add), (uint8_t*)send_buff,
453 return i2c_bus_read_bytes(
i2c_handle, devAddr, ®_add,
sizeof(reg_add),
461 val = (data_rd[0] << 8) + data_rd[1];
467 switch (sampledata) {
500 uint16_t src_value = 0;
501 switch (input_device) {
517 src_value = 0x0408 | 0x2020;
#define RESULT_OK
Definition DriverCommon.h:74
#define AD_LOGI(...)
Definition Logger.h:13
#define AD_LOGE(...)
Definition Logger.h:15
#define AD_LOGW(...)
Definition Logger.h:14
Header-only driver class for the AC101 codec chip.
Definition AC101.h:108
static constexpr uint8_t I2S1_MXR_GAIN
Definition AC101.h:134
static constexpr int NACK_VAL
Definition AC101.h:118
error_t deinit()
Definition AC101.h:229
static constexpr uint8_t HMIC_STATUS
Definition AC101.h:139
static constexpr uint8_t DAC_MXR_SRC
Definition AC101.h:142
error_t i2sConfigClock(ac_i2s_clock_t *cfg)
Definition AC101.h:341
static constexpr uint8_t ADC_VOL_CTRL
Definition AC101.h:136
static constexpr uint8_t I2S1_SDIN_CTRL
Definition AC101.h:128
static constexpr uint8_t AC_DAC_DAPCTRL
Definition AC101.h:152
static constexpr uint8_t AC_DAC_DAPRLAVC
Definition AC101.h:158
static constexpr int ACK_CHECK_DIS
Definition AC101.h:116
static constexpr uint8_t I2S1_VOL_CTRL2
Definition AC101.h:131
static constexpr uint8_t AC_DAC_DAPHHPFC
Definition AC101.h:153
static constexpr uint8_t I2S1_VOL_CTRL4
Definition AC101.h:133
static constexpr uint8_t ADC_SRC
Definition AC101.h:145
static constexpr uint8_t HPOUT_CTRL
Definition AC101.h:150
void setAddress(int addr)
Defines the I2C device address.
Definition AC101.h:177
error_t ctrlStateActive(codec_mode_t mode, bool ctrlStateActive)
Definition AC101.h:233
static constexpr uint8_t I2S1_MXR_SRC
Definition AC101.h:129
static constexpr uint8_t CHIP_AUDIO_RS
Definition AC101.h:119
static constexpr uint8_t AC_DAC_DAPLLAVC
Definition AC101.h:156
static constexpr uint8_t OMIXER_DACA_CTRL
Definition AC101.h:147
error_t setVoiceMute(bool enable)
Definition AC101.h:421
error_t setOutputMixerGain(ac_output_mixer_gain_t gain, ac_output_mixer_source_t source)
Definition AC101.h:394
static constexpr uint8_t DAC_VOL_CTRL
Definition AC101.h:141
error_t writeReg(uint8_t reg_add, uint16_t data)
Definition AC101.h:442
static constexpr uint8_t PLL_CTRL2
Definition AC101.h:121
static constexpr uint8_t HMIC_CTRL1
Definition AC101.h:137
static constexpr int WRITE_BIT
Definition AC101.h:113
static constexpr uint8_t AC_DAC_DAPLETHD
Definition AC101.h:164
static constexpr int ACK_VAL
Definition AC101.h:117
static constexpr uint8_t AC_DAC_DAPHGKPA
Definition AC101.h:165
static constexpr uint8_t AC_DAC_DAPLHPFC
Definition AC101.h:154
static constexpr uint8_t MOD_CLK_ENA
Definition AC101.h:123
static constexpr uint8_t I2S_SR_CTRL
Definition AC101.h:125
static constexpr uint8_t I2S1_VOL_CTRL1
Definition AC101.h:130
int i2c_addr
Definition AC101.h:565
static constexpr uint8_t AC_DAC_DAPOPT
Definition AC101.h:169
static constexpr uint8_t ADC_SRCBST_CTRL
Definition AC101.h:146
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Definition AC101.h:263
static constexpr uint8_t AC_DAC_DAPLGATC
Definition AC101.h:162
static constexpr uint8_t AC_DAC_DAPHETHD
Definition AC101.h:163
static constexpr uint8_t AC_DAC_DAPLGOPA
Definition AC101.h:168
static constexpr int I2C_MASTER_WRITE
Definition AC101.h:111
static constexpr uint8_t SPKOUT_CTRL
Definition AC101.h:151
error_t stop(ac_module_t mode)
Definition AC101.h:556
static constexpr uint8_t ADC_APC_CTRL
Definition AC101.h:144
static constexpr uint8_t ADC_DIG_CTRL
Definition AC101.h:135
void setCodecClk(samplerate_t sampledata)
Definition AC101.h:465
static constexpr int ACK_CHECK_EN
Definition AC101.h:115
error_t readI2C(uint8_t devAddr, uint8_t reg_add, uint8_t *p_data, size_t size)
Definition AC101.h:451
static constexpr int AC101_ADDR
Definition AC101.h:110
static constexpr uint8_t AC_DAC_DAPHGOPA
Definition AC101.h:167
static constexpr uint8_t PLL_CTRL1
Definition AC101.h:120
static constexpr int I2C_MASTER_READ
Definition AC101.h:112
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition AC101.h:174
static constexpr uint8_t AC_DAC_DAPLHAVC
Definition AC101.h:155
int getEarphVolume()
Definition AC101.h:374
static constexpr uint8_t MOD_RST_CTRL
Definition AC101.h:124
static constexpr uint8_t DAC_DAP_ENA
Definition AC101.h:170
int getSpkVolume()
Definition AC101.h:352
uint16_t readReg(uint8_t reg_addr)
Definition AC101.h:457
i2c_bus_handle_t i2c_handle
Definition AC101.h:564
static constexpr uint8_t HMIC_CTRL2
Definition AC101.h:138
static constexpr uint8_t SYSCLK_CTRL
Definition AC101.h:122
error_t start(ac_module_t mode)
Definition AC101.h:523
static constexpr uint8_t I2S1LCK_CTRL
Definition AC101.h:126
static constexpr uint8_t OMIXER_BST1_CTRL
Definition AC101.h:149
static constexpr int READ_BIT
Definition AC101.h:114
error_t setVoiceVolume(int volume)
Definition AC101.h:431
static constexpr uint8_t OMIXER_SR
Definition AC101.h:148
static constexpr uint8_t DAC_DIG_CTRL
Definition AC101.h:140
static constexpr uint8_t AC_DAC_DAPHGDEC
Definition AC101.h:159
static constexpr uint8_t I2S1_VOL_CTRL3
Definition AC101.h:132
static constexpr uint8_t AC_DAC_DAPLGKPA
Definition AC101.h:166
uint16_t getSrcValue(input_device_t input_device)
Determines the value for the SRC register based on the selected input_device.
Definition AC101.h:499
static constexpr uint8_t AC_DAC_DAPLGDEC
Definition AC101.h:160
static constexpr uint8_t DAC_MXR_GAIN
Definition AC101.h:143
error_t setEarphVolume(uint8_t volume)
Definition AC101.h:380
static constexpr uint8_t I2S1_SDOUT_CTRL
Definition AC101.h:127
error_t getVoiceVolume(int *volume)
Definition AC101.h:438
static constexpr uint8_t AC_DAC_DAPRHAVC
Definition AC101.h:157
error_t setSpkVolume(uint8_t volume)
Definition AC101.h:359
error_t init(codec_config_t *codec_cfg)
Definition AC101.h:181
static constexpr uint8_t AC_DAC_DAPHGATC
Definition AC101.h:161
Namespace for audio driver components.
Definition AudioBoard.h:5
ac_adda_fs_i2s1_t
Definition AC101.h:15
@ SAMPLE_RATE_48000
Definition AC101.h:24
@ SAMPLE_RATE_8000
Definition AC101.h:16
@ SAMPLE_RATE_16000
Definition AC101.h:19
@ SAMPLE_RATE_24000
Definition AC101.h:21
@ SAMPLE_RATE_96000
Definition AC101.h:25
@ SAMPLE_RATE_12000
Definition AC101.h:18
@ SAMPLE_RATE_22050
Definition AC101.h:20
@ SAMPLE_RATE_32000
Definition AC101.h:22
@ SAMPLE_RATE_44100
Definition AC101.h:23
@ SAMPLE_RATE_192000
Definition AC101.h:26
@ SAMPLE_RATE_11052
Definition AC101.h:17
input_device_t
Definition DriverCommon.h:170
@ ADC_INPUT_ALL
Definition DriverCommon.h:175
@ ADC_INPUT_LINE1
Definition DriverCommon.h:172
@ ADC_INPUT_LINE3
Definition DriverCommon.h:174
@ ADC_INPUT_LINE2
Definition DriverCommon.h:173
void delayMs(unsigned long ms)
Definition API_Delay.h:19
@ BIT_LENGTH_24BITS
Definition DriverCommon.h:240
@ BIT_LENGTH_16BITS
Definition DriverCommon.h:237
ac_i2s1_lrck_div_t
Definition AC101.h:47
@ LRCK_DIV_256
Definition AC101.h:52
@ LRCK_DIV_32
Definition AC101.h:49
@ LRCK_DIV_128
Definition AC101.h:51
@ LRCK_DIV_64
Definition AC101.h:50
@ LRCK_DIV_16
Definition AC101.h:48
codec_mode_t
Definition DriverCommon.h:290
@ CODEC_MODE_ENCODE
Definition DriverCommon.h:293
@ CODEC_MODE_BOTH
Definition DriverCommon.h:295
@ CODEC_MODE_DECODE
Definition DriverCommon.h:294
@ CODEC_MODE_LINE_IN
Definition DriverCommon.h:296
int error_t
Definition DriverCommon.h:150
ac_bits_length_t
Definition AC101.h:55
@ BIT_LENGTH_8_BITS
Definition AC101.h:56
@ BIT_LENGTH_20_BITS
Definition AC101.h:58
@ BIT_LENGTH_24_BITS
Definition AC101.h:59
@ BIT_LENGTH_16_BITS
Definition AC101.h:57
samplerate_t
Definition DriverCommon.h:213
@ RATE_44K
Definition DriverCommon.h:220
@ RATE_24K
Definition DriverCommon.h:218
@ RATE_22K
Definition DriverCommon.h:217
@ RATE_8K
Definition DriverCommon.h:214
@ RATE_32K
Definition DriverCommon.h:219
@ RATE_11K
Definition DriverCommon.h:215
@ RATE_16K
Definition DriverCommon.h:216
@ RATE_48K
Definition DriverCommon.h:221
ac_module_t
Definition AC101.h:69
@ AC_MODULE_ADC
Definition AC101.h:71
@ AC_MODULE_MIN
Definition AC101.h:70
@ AC_MODULE_LINE
Definition AC101.h:74
@ AC_MODULE_DAC
Definition AC101.h:72
@ AC_MODULE_MAX
Definition AC101.h:75
@ AC_MODULE_ADC_DAC
Definition AC101.h:73
ac_output_mixer_source_t
Definition AC101.h:78
@ SRC_MIC1
Definition AC101.h:79
@ SRC_LINEIN
Definition AC101.h:81
@ SRC_MIC2
Definition AC101.h:80
ac_i2s1_bclk_div_t
Definition AC101.h:29
@ BCLK_DIV_96
Definition AC101.h:41
@ BCLK_DIV_32
Definition AC101.h:38
@ BCLK_DIV_6
Definition AC101.h:33
@ BCLK_DIV_12
Definition AC101.h:35
@ BCLK_DIV_48
Definition AC101.h:39
@ BCLK_DIV_4
Definition AC101.h:32
@ BCLK_DIV_64
Definition AC101.h:40
@ BCLK_DIV_24
Definition AC101.h:37
@ BCLK_DIV_16
Definition AC101.h:36
@ BCLK_DIV_1
Definition AC101.h:30
@ BCLK_DIV_128
Definition AC101.h:42
@ BCLK_DIV_192
Definition AC101.h:43
@ BCLK_DIV_2
Definition AC101.h:31
@ BCLK_DIV_8
Definition AC101.h:34
ac_output_mixer_gain_t
Definition AC101.h:84
@ GAIN_45DB
Definition AC101.h:91
@ GAIN_30DB
Definition AC101.h:90
@ GAIN_60DB
Definition AC101.h:92
@ GAIN_N15DB
Definition AC101.h:87
@ GAIN_0DB
Definition AC101.h:88
@ GAIN_N45DB
Definition AC101.h:85
@ GAIN_15DB
Definition AC101.h:89
@ GAIN_N30DB
Definition AC101.h:86
@ I2S_RIGHT
Definition DriverCommon.h:253
@ I2S_DSP
Definition DriverCommon.h:254
@ I2S_LEFT
Definition DriverCommon.h:252
@ I2S_NORMAL
Definition DriverCommon.h:251
ac_mode_sm_t
Definition AC101.h:62
@ AC_MODE_MASTER
Definition AC101.h:65
@ AC_MODE_SLAVE
Definition AC101.h:64
@ AC_MODE_MAX
Definition AC101.h:66
@ AC_MODE_MIN
Definition AC101.h:63
void * i2c_bus_handle_t
Definition DriverCommon.h:155
I2S interface parameters for the audio codec.
Definition DriverCommon.h:384
i2s_format_t fmt
Definition DriverCommon.h:386
samplerate_t rate
Definition DriverCommon.h:387
i2s_master_slave_t mode
Definition DriverCommon.h:385
sample_bits_t bits
Definition DriverCommon.h:388
Configure AC101 clock.
Definition AC101.h:98
ac_i2s1_lrck_div_t lclk_div
Definition AC101.h:100
ac_i2s1_bclk_div_t bclk_div
Definition AC101.h:99
Top-level codec configuration passed to the audio driver at init.
Definition DriverCommon.h:397
input_device_t input_device
Definition DriverCommon.h:398