13 #include "hal/spi_types.h"
14 #include "driver/spi_slave.h"
15 #include "driver/spi_master.h"
16 #include "driver/i2c.h"
17 #include "driver/i2s.h"
21 #include "audio_hal/audio_error.h"
22 #include "audio_hal/audio_gpio.h"
23 #include "audio_hal/audio_hal.h"
24 #include "audio_hal/audio_mem.h"
25 #include "audio_hal/audiokit_board_select.h"
26 #include "audio_hal/audiokit_logger.h"
29 #ifndef ES8311_MCLK_SRC
30 # define ES8311_MCLK_SRC -1
33 #define BUTTON_REC_ID PIN_KEY1
34 #define BUTTON_MODE_ID PIN_KEY2
35 #define BUTTON_SET_ID PIN_KEY3
36 #define BUTTON_PLAY_ID PIN_KEY4
37 #define BUTTON_VOLDOWN_ID PIN_KEY5
38 #define BUTTON_VOLUP_ID PIN_KEY6
41 #define AUDIO_CODEC_DEFAULT_CONFIG() \
43 .adc_input = AUDIO_HAL_ADC_INPUT_LINE1, \
44 .dac_output = AUDIO_HAL_DAC_OUTPUT_ALL, \
45 .codec_mode = AUDIO_HAL_CODEC_MODE_BOTH, \
47 .mode = AUDIO_HAL_MODE_SLAVE, \
48 .fmt = AUDIO_HAL_I2S_NORMAL, \
49 .samples = AUDIO_HAL_48K_SAMPLES, \
50 .bits = AUDIO_HAL_BIT_LENGTH_16BITS, \
60 int8_t sd_cs = PIN_AUDIO_KIT_SD_CARD_CS;
61 int8_t sd_miso = PIN_AUDIO_KIT_SD_CARD_MISO;
62 int8_t sd_mosi = PIN_AUDIO_KIT_SD_CARD_MOSI;
63 int8_t sd_clk = PIN_AUDIO_KIT_SD_CARD_CLK;
64 int8_t sd_intr = SDCARD_INTR_GPIO;
65 int8_t sd_max_open_files = SDCARD_OPEN_FILE_NUM_MAX;
69 int8_t i2s_mclk = PIN_I2S_AUDIO_KIT_MCLK;
70 int8_t i2s_bck = PIN_I2S_AUDIO_KIT_BCK;
71 int8_t i2s_ws = PIN_I2S_AUDIO_KIT_WS;
72 int8_t i2s_out = PIN_I2S_AUDIO_KIT_DATA_OUT;
73 int8_t i2s_in = PIN_I2S_AUDIO_KIT_DATA_IN;
75 int8_t i2s1_mclk = PIN_I2S_AUDIO_KIT_MCLK1;
76 int8_t i2s1_bck = PIN_I2S_AUDIO_KIT_BCK1;
77 int8_t i2s1_ws = PIN_I2S_AUDIO_KIT_WS1;
78 int8_t i2s1_out = PIN_I2S_AUDIO_KIT_DATA_OUT1;
79 int8_t i2s1_in = PIN_I2S_AUDIO_KIT_DATA_IN1;
82 int8_t i2c_num = I2C_NUM_0;
83 int8_t i2c_scl = I2C_MASTER_SCL_IO;
84 int8_t i2c_sda = I2C_MASTER_SDA_IO;
86 int8_t key1 = PIN_KEY1;
87 int8_t key2 = PIN_KEY2;
88 int8_t key3 = PIN_KEY3;
89 int8_t key4 = PIN_KEY4;
90 int8_t key5 = PIN_KEY5;
91 int8_t key6 = PIN_KEY6;
93 int8_t detect_auxin = AUXIN_DETECT_GPIO;
94 int8_t detect_headphone = HEADPHONE_DETECT;
95 int8_t enable_pa = PA_ENABLE_GPIO;
97 int8_t led_green = GREEN_LED_GPIO;
99 int8_t adc_detect = ADC_DETECT;
100 int8_t es7243_mclk = ES7243_MCLK;
101 int8_t es8311_mclk_src = ES8311_MCLK_SRC;
102 int8_t reset_codec = RESET_CODEC;
103 int8_t reset_board = RESET_BOARD;
104 int8_t led_blue = BLUE_LED_GPIO;
117 esp_err_t get_i2c_pins(i2c_port_t port, i2c_config_t* i2c_config)
119 AUDIO_NULL_CHECK(TAG, i2c_config,
return ESP_FAIL);
120 if (port == I2C_NUM_0) {
121 i2c_config->sda_io_num = pins.i2c_sda;
122 i2c_config->scl_io_num = pins.i2c_scl;
123 }
else if (port == I2C_NUM_1 ) {
125 i2c_config->sda_io_num = pins.i2c_sda;
126 i2c_config->scl_io_num = pins.i2c_scl;
128 i2c_config->sda_io_num = -1;
129 i2c_config->scl_io_num = -1;
130 KIT_LOGE(
"i2c port %d is not supported", port);
134 KIT_LOGI(
"i2c port: %d", port);
135 KIT_LOGI(
"i2c sda: %d", i2c_config->sda_io_num);
136 KIT_LOGI(
"i2c scl: %d", i2c_config->scl_io_num);
141 esp_err_t get_i2s_pins(i2s_port_t port, i2s_pin_config_t* i2s_config)
143 AUDIO_NULL_CHECK(TAG, i2s_config,
return ESP_FAIL);
144 if (port == I2S_NUM_0) {
145 i2s_config->bck_io_num = pins.i2s_bck;
146 i2s_config->ws_io_num = pins.i2s_ws;
147 i2s_config->data_out_num = pins.i2s_out;
148 i2s_config->data_in_num = pins.i2s_in;
149 i2s_config->mck_io_num = pins.i2s_mclk;
150 }
else if (port == I2S_NUM_1) {
151 i2s_config->bck_io_num = pins.i2s1_bck;
152 i2s_config->ws_io_num = pins.i2s1_ws;
153 i2s_config->data_out_num = pins.i2s1_out;
154 i2s_config->data_in_num = pins.i2s1_in;
155 i2s_config->mck_io_num = pins.i2s1_mclk;
158 KIT_LOGE(
"i2s port %d is not supported", port);
162 KIT_LOGI(
"i2s bck_io_num: %d", i2s_config->bck_io_num);
163 KIT_LOGI(
"i2s ws_io_num: %d", i2s_config->ws_io_num);
164 KIT_LOGI(
"i2s data_out_num: %d", i2s_config->data_out_num);
165 KIT_LOGI(
"i2s data_in_num: %d", i2s_config->data_in_num);
170 esp_err_t get_spi_pins(
171 spi_bus_config_t* spi_config, spi_device_interface_config_t* spi_device_interface_config)
173 AUDIO_NULL_CHECK(TAG, spi_config,
return ESP_FAIL);
174 AUDIO_NULL_CHECK(TAG, spi_device_interface_config,
return ESP_FAIL);
176 spi_config->mosi_io_num = -1;
177 spi_config->miso_io_num = -1;
178 spi_config->sclk_io_num = -1;
179 spi_config->quadwp_io_num = -1;
180 spi_config->quadhd_io_num = -1;
182 spi_device_interface_config->spics_io_num = -1;
184 KIT_LOGW(
"SPI interface is not supported");
190 int8_t get_sdcard_intr_gpio(
void) {
return pins.sd_intr; }
192 int8_t get_sdcard_open_file_num_max(
void) {
return pins.sd_max_open_files; }
196 int8_t get_auxin_detect_gpio(
void) {
return pins.detect_auxin; }
198 int8_t get_headphone_detect_gpio(
void) {
return pins.detect_headphone; }
200 int8_t get_pa_enable_gpio(
void) {
return pins.enable_pa; }
204 int8_t get_input_rec_id(
void) {
return pins.key1; }
206 int8_t get_input_mode_id(
void) {
return pins.key2; }
208 int8_t get_input_set_id(
void) {
return pins.key3; }
210 int8_t get_input_play_id(
void) {
return pins.key4; }
212 int8_t get_input_volup_id(
void) {
return pins.key5; }
214 int8_t get_input_voldown_id(
void) {
return pins.key6; }
217 int8_t get_adc_detect_gpio() {
return pins.adc_detect; }
218 int8_t get_es7243_mclk_gpio() {
return pins.es7243_mclk; }
219 int8_t get_es8311_mclk_src() {
return pins.es8311_mclk_src; }
220 int8_t get_reset_codec_gpio() {
return pins.reset_codec; }
221 int8_t get_reset_board_gpio() {
return pins.reset_board; }
222 int8_t get_blue_led_gpio() {
return pins.led_blue; }
223 int8_t get_green_led_gpio(
void) {
return pins.led_green; }
AUDIOKIT_BOARD selects a specic board: 1) lyrat_v4_3 2) lyrat_v4_2 3) lyrat_mini_v1_1 4) esp32_s2_kal...