#ifndef _BOARD_CONFIG_H_
#define _BOARD_CONFIG_H_

// Movecall Moji configuration

#include <driver/gpio.h>        // 包含GPIO驱动库

// 音频采样率配置（16kHz）
#define AUDIO_INPUT_SAMPLE_RATE  16000      // 输入采样率
#define AUDIO_OUTPUT_SAMPLE_RATE 16000      // 输出采样率

// I2S音频接口GPIO配置
#define AUDIO_I2S_GPIO_MCLK GPIO_NUM_16     // 主时钟            MCLK   GPIO16
#define AUDIO_I2S_GPIO_WS   GPIO_NUM_45     // 字选择线          LRCK   GPIO45
#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_9      // 位时钟            SCLK   GPIO09
#define AUDIO_I2S_GPIO_DIN  GPIO_NUM_10     // 数据输入（麦克风）  DSDIN  GPIO8
#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_8      // 数据输出（扬声器）  ASDOUT GPIO8

// ES8311音频编解码器配置
#define AUDIO_CODEC_PA_PIN       GPIO_NUM_48    // 功放使能引脚         PA_CTRL      GPIO48
#define AUDIO_CODEC_I2C_SDA_PIN  GPIO_NUM_17    // I2C数据引脚         ES_I2C_SDA   GPIO17
#define AUDIO_CODEC_I2C_SCL_PIN  GPIO_NUM_18    // I2C时钟引脚         ES_I2C_CLK   GPIO18
#define AUDIO_CODEC_ES8311_ADDR  ES8311_CODEC_DEFAULT_ADDR    // ES8311音频编解码器I2C地址
// ES7210音频编解码器（ADC）地址与参考通道开关
#define AUDIO_CODEC_ES7210_ADDR  ES7210_CODEC_DEFAULT_ADDR
#define AUDIO_INPUT_REFERENCE    0

// 系统指示灯与启动按钮
#define BUILTIN_LED_GPIO        GPIO_NUM_21   // 板载LED （GPIO 21）             *******
#define BOOT_BUTTON_GPIO        GPIO_NUM_0    // BOOT按钮       BOOT    GPIO0

// 按键GPIO定义
#define KEY1_GPIO              GPIO_NUM_NC   // KEY1 - 本项目不启用该 按键
#define KEY2_GPIO              GPIO_NUM_NC   // KEY2 - 本项目不启用该 按键
#define KEY4_GPIO              GPIO_NUM_4    // KEY4 - 播放故事（发送文本消息）  Stoey  GPIO04

// ADC电量检测引脚
#define BATTERY_ADC_GPIO       GPIO_NUM_6     // 电池电压检测引脚（GPIO6）       BAT_MEAS_ADC  GPIO6
#define BATTERY_ADC_CHANNEL    ADC_CHANNEL_5  // GPIO6对应ADC1_CHANNEL_5      ADC_CHN       ADC1_CHN_5
#define BATTERY_ADC_UNIT       ADC_UNIT_1     // 使用ADC单元1

// 六路触摸按键定义
#define TOUCH1_GPIO            GPIO_NUM_1     // Touch1  GPIO01
#define TOUCH2_GPIO            GPIO_NUM_2     // Touch2  GPIO02
#define TOUCH3_GPIO            GPIO_NUM_15    // Touch3  GPIO15
#define TOUCH4_GPIO            GPIO_NUM_7     // Touch4  GPIO07
#define TOUCH5_GPIO            GPIO_NUM_NC    // Touch5 （未连接）
#define TOUCH6_GPIO            GPIO_NUM_NC    // Touch6 （未连接）

// UART引脚定义 （原4G接口引脚）
#define UART_TX_PIN GPIO_NUM_37  // UART TX 引脚     U0TXD GPIO37
#define UART_RX_PIN GPIO_NUM_36  // UART RX 引脚     U0RXD GPIO36

// 音量按键定义
#define VOLUME_UP_BUTTON_GPIO   GPIO_NUM_NC     // 音量加 （未连接）
#define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_NC     // 音量减 （未连接）

// 显示器配置 - 无显示器板载，引脚设为无效
#define DISPLAY_SDA_PIN GPIO_NUM_NC  // 未连接
#define DISPLAY_SCL_PIN GPIO_NUM_NC  // 未连接
#define DISPLAY_WIDTH   128          // 保留参数
#define DISPLAY_HEIGHT  128          // 保留参数
#define DISPLAY_MIRROR_X false       // X轴镜像禁用
#define DISPLAY_MIRROR_Y false       // Y轴镜像禁用
#define DISPLAY_SWAP_XY false        // 坐标轴不交换
#define DISPLAY_OFFSET_X  0          // X轴偏移
#define DISPLAY_OFFSET_Y  0          // Y轴偏移

// 显示器背光控制（未使用）
#define DISPLAY_BACKLIGHT_PIN GPIO_NUM_NC       // 背光控制引脚
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false   // 输出不反

// // ES7210功能开关与默认参数（按需启用）
// #define AUDIO_ES7210_ENABLE            0
// #define ES7210_INPUT_SAMPLE_RATE       16000
// #define ES7210_OUTPUT_SAMPLE_RATE      16000
// #define ES7210_MIC_GAIN_DB             18
// #define ES7210_LINEIN_GAIN_DB          0
// #define ES7210_MCLK_FREQUENCY_HZ       12288000
// #define ES7210_BCLK_FREQUENCY_HZ       1024000
// #define ES7210_LRCK_FREQUENCY_HZ       ES7210_INPUT_SAMPLE_RATE
// #define ES7210_POWER_ENABLE_GPIO       GPIO_NUM_NC
// #define ES7210_POWER_ON_LEVEL          1
// #define ES7210_I2C_SDA_PIN             GPIO_NUM_17
// #define ES7210_I2C_SCL_PIN             GPIO_NUM_18
// #define ES7210_I2C_ADDRESS             0x40
// #define ES7210_I2C_PORT                I2C_NUM_0
// #define ES7210_I2C_SPEED_HZ            400000

#endif // _BOARD_CONFIG_H_
