Skip to content

Commit 81abb4b

Browse files
committed
Merge branch 'bugfix/fix_8388_vol_map' into 'master'
esp_codec_dev: Fix es8388 set volume reg not correct See merge request adf/esp-adf-internal!1173
2 parents 5a047f8 + 2bef97b commit 81abb4b

File tree

5 files changed

+15
-7
lines changed

5 files changed

+15
-7
lines changed

components/esp_codec_dev/device/es7210/es7210.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ static int es7210_mic_select(audio_codec_es7210_t *codec, es7210_input_mics_t mi
220220
if (mic_num >= ENABLE_TDM_MAX_NUM) {
221221
ret |= es7210_write_reg(codec, ES7210_SDP_INTERFACE2_REG12, 0x02);
222222
ESP_LOGI(TAG, "Enable TDM mode");
223+
} else {
224+
ret |= es7210_write_reg(codec, ES7210_SDP_INTERFACE2_REG12, 0x00);
223225
}
224226
return ret;
225227
}

components/esp_codec_dev/device/es8311/es8311.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,8 @@ static int es8311_open(const audio_codec_if_t *h, void *cfg, int cfg_size)
547547
if (codec_cfg->no_dac_ref == false) {
548548
/* set internal reference signal (ADCL + DACR) */
549549
ret |= es8311_write_reg(codec, ES8311_GPIO_REG44, 0x50);
550+
} else {
551+
ret |= es8311_write_reg(codec, ES8311_GPIO_REG44, 0);
550552
}
551553
if (ret != 0) {
552554
return ESP_CODEC_DEV_WRITE_FAIL;

components/esp_codec_dev/device/es8388/es8388.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ static const esp_codec_dev_vol_range_t vol_range = {
2828
.min_vol =
2929
{
3030
.vol = 0xC0,
31-
.db_value = -96.5,
31+
.db_value = -96,
3232
},
3333
.max_vol =
3434
{
@@ -250,6 +250,12 @@ static int es8388_open(const audio_codec_if_t *h, void *cfg, int cfg_size)
250250
res |= es8388_write_reg(codec, ES8388_DACCONTROL21, 0x80);
251251
res |= es8388_write_reg(codec, ES8388_DACCONTROL23, 0x00); // vroi=0
252252
res |= es8388_set_adc_dac_volume(codec, ES_MODULE_DAC, 0, 0); // 0db
253+
254+
res |= es8388_write_reg(codec, ES8388_DACCONTROL24, 0x1E); // Set L1 R1 L2 R2 volume. 0x00: -30dB, 0x1E: 0dB, 0x21: 3dB
255+
res |= es8388_write_reg(codec, ES8388_DACCONTROL25, 0x1E);
256+
res |= es8388_write_reg(codec, ES8388_DACCONTROL26, 0);
257+
res |= es8388_write_reg(codec, ES8388_DACCONTROL27, 0);
258+
253259
// TODO default use DAC_ALL
254260
int tmp = DAC_OUTPUT_LOUT1 | DAC_OUTPUT_LOUT2 | DAC_OUTPUT_ROUT1 | DAC_OUTPUT_ROUT2;
255261
res |= es8388_write_reg(codec, ES8388_DACPOWER, tmp); // 0x3c Enable DAC and Enable Lout/Rout/1/2
@@ -324,10 +330,8 @@ static int es8388_set_vol(const audio_codec_if_t *h, float db_value)
324330
}
325331
db_value -= codec->hw_gain;
326332
int volume = esp_codec_dev_vol_calc_reg(&vol_range, db_value);
327-
int res = es8388_write_reg(codec, ES8388_DACCONTROL24, volume);
328-
res |= es8388_write_reg(codec, ES8388_DACCONTROL25, volume);
329-
res |= es8388_write_reg(codec, ES8388_DACCONTROL26, 0);
330-
res |= es8388_write_reg(codec, ES8388_DACCONTROL27, 0);
333+
int res = es8388_write_reg(codec, ES8388_DACCONTROL5, volume);
334+
res |= es8388_write_reg(codec, ES8388_DACCONTROL4, volume);
331335
ESP_LOGD(TAG, "Set volume reg:%x db:%f", volume, db_value);
332336
return res ? ESP_CODEC_DEV_WRITE_FAIL : ESP_CODEC_DEV_OK;
333337
}

components/esp_codec_dev/idf_component.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 1.0.0
1+
version: 1.0.1
22
description: Audio codec device support for Espressif SOC
33
url: https://github.com/espressif/esp-adf/tree/master/components/esp_codec_dev
44

components/esp_codec_dev/include/esp_codec_dev_types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
extern "C" {
1515
#endif
1616

17-
#define ESP_CODEC_DEV_VERSION "1.0.0"
17+
#define ESP_CODEC_DEV_VERSION "1.0.1"
1818

1919
/**
2020
* @brief Define error number of codec device module

0 commit comments

Comments
 (0)