#pragma once

/*
 * AI-Thinker ESP32-A1S Audio Kit V2.2 — Hardware Pin Configuration
 * ES8388 codec (I2C control + I2S data), SD card (SPI), power amp.
 * DIP switch: 1=OFF, 2=ON, 3=ON, 4=OFF, 5=OFF  (SD active, KEY2 busy)
 */

/* ---------- I2C Bus (ES8388 control) ---------- */
#define PLIP_I2C_PORT       I2C_NUM_0
#define PLIP_I2C_SCL        32
#define PLIP_I2C_SDA        33
#define PLIP_I2C_FREQ_HZ    400000

/* ---------- ES8388 Audio Codec (I2C address) ---------- */
#define PLIP_ES8388_ADDR    0x10   /* 7-bit: 0x10 with ADDR pin low */

/* ---------- I2S Audio Data ---------- */
#define PLIP_I2S_NUM        I2S_NUM_0
#define PLIP_I2S_MCLK       0      /* GPIO0 — must be 0/1/3 on original ESP32 */
#define PLIP_I2S_BCLK       27
#define PLIP_I2S_WS         25     /* LRCK */
#define PLIP_I2S_DOUT       26     /* DAC → speaker */
#define PLIP_I2S_DIN        35     /* ADC ← mic (input-only, ES8388 ASDOUT) */

/* ---------- Power Amplifier ---------- */
#define PLIP_PA_ENABLE      21     /* Active HIGH, drives NS4150 amp */

/* ---------- SD Card (SPI / HSPI) ---------- */
#define PLIP_SD_CS          13
#define PLIP_SD_MOSI        15
#define PLIP_SD_MISO        2
#define PLIP_SD_SCK         14
#define PLIP_SD_MOUNT       "/sdcard"

/* ---------- Audio Parameters ---------- */
#define PLIP_SAMPLE_RATE    16000
#define PLIP_BITS_PER_SAMPLE 16
#define PLIP_CHANNELS       2      /* ES8388 I2S always stereo; output averaged */

/* ---------- Off-hook GPIO (dev kit uses BOOT/KEY1 GPIO4 as stand-in) ---------- */
/* Actual value comes from CONFIG_PLIP_HOOK_GPIO (Kconfig) */

/* ---------- SLIC K50835F / AG1171-class front-end (A1S board wiring) ---------- */
/* KEY3=GPIO19, KEY4=GPIO23, KEY5=GPIO18, KEY6=GPIO5 share these pins — reassigned to SLIC */
#define PLIP_SLIC_RM    18   /* Ring Mode output — HIGH = ring burst active       */
#define PLIP_SLIC_FR    5    /* Forward/Reverse output — toggled at 25 Hz for bell */
#define PLIP_SLIC_SHK   23   /* Switch Hook input  — HIGH = off-hook (active-high) */
#define PLIP_SLIC_PD    19   /* Power Down (open-drain) — HIGH = SLIC active       */
