feat(i2s): add BLE destination config for esp32s31

This commit is contained in:
Chen Chen
2026-05-19 17:31:48 +08:00
parent 8f28ebb6d1
commit 145bf152de
28 changed files with 850 additions and 60 deletions
@@ -25,6 +25,9 @@
#define I2S_LL_SUPPORT(_feat) I2S_LL_SUPPORT_ ## _feat
#define I2S_LL_BUS_WIDTH 24
#define I2S_LL_INST_NUM 2
#define I2S_LL_PDM_SUPPORTED_PORT_MASK (1U << 0) // PDM is supported on I2S0
#define I2S_LL_PCM2PDM_SUPPORTED_PORT_MASK (1U << 0) // PCM2PDM is supported on I2S0
#define I2S_LL_PDM2PCM_SUPPORTED_PORT_MASK (1U << 0) // PDM2PCM is supported on I2S0
#define I2S_LL_TRANS_SIZE_ALIGN_WORD 1 // I2S DMA transfer size must be aligned to word
#define I2S_LL_ADC_DAC_CAPABLE 1 // I2S supports to connect to ADC / DAC converters
@@ -1150,6 +1153,49 @@ static inline void i2s_ll_enable_builtin_adc_dac(i2s_dev_t *hw, bool enable)
hw->conf2.camera_en = 0;
}
/**
* @brief Set I2S data destination
*/
static inline void i2s_ll_set_destination(i2s_dev_t *hw, i2s_dir_t dir, i2s_destination_t destination)
{
(void)hw;
(void)dir;
(void)destination;
}
/**
* @brief Check whether an I2S data destination is supported on the specified port
*/
static inline bool i2s_ll_is_destination_supported(int port_id, i2s_destination_t destination)
{
(void)port_id;
return destination == I2S_DESTINATION_DMA;
}
/**
* @brief Check whether I2S PDM mode is supported on the specified port
*/
static inline bool i2s_ll_is_pdm_supported(int port_id)
{
return (I2S_LL_PDM_SUPPORTED_PORT_MASK & (1U << port_id)) != 0;
}
/**
* @brief Check whether I2S TX PCM2PDM converter is supported on the specified port
*/
static inline bool i2s_ll_is_pcm2pdm_supported(int port_id)
{
return (I2S_LL_PCM2PDM_SUPPORTED_PORT_MASK & (1U << port_id)) != 0;
}
/**
* @brief Check whether I2S RX PDM2PCM converter is supported on the specified port
*/
static inline bool i2s_ll_is_pdm2pcm_supported(int port_id)
{
return (I2S_LL_PDM2PCM_SUPPORTED_PORT_MASK & (1U << port_id)) != 0;
}
#ifdef __cplusplus
}
#endif