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
@@ -1563,6 +1563,10 @@ config SOC_I2S_SUPPORTS_TDM
bool
default y
config SOC_I2S_SUPPORTS_BT_DEST
bool
default y
config SOC_I2S_PDM_MAX_TX_LINES
int
default 2
@@ -589,6 +589,7 @@
#define SOC_I2S_SUPPORTS_TX_SYNC_CNT (1) // Support TX synchronization count (ideal_cnt)
#define SOC_I2S_SUPPORTS_RX_RECOMB (1) // Support RX recomb for DMA data format reorganization
#define SOC_I2S_SUPPORTS_TDM (1)
#define SOC_I2S_SUPPORTS_BT_DEST (1) // Support routing I2S TX/RX data to Bluetooth (Classic sync link / voice path), not via DMA
#define SOC_I2S_PDM_MAX_TX_LINES (2) // On I2S0
#define SOC_I2S_PDM_MAX_RX_LINES (4) // On I2S0
@@ -1552,14 +1552,14 @@ extern "C" {
*/
#define I2S_DESTINATION_REG(i) (REG_I2S_BASE(i) + 0xf4)
/** I2S_RX_DESTINATION : R/W; bitpos: [0]; default: 0;
* Set this bit to configure the data destination of i2s rx. 1: ble. 0: gdma.
* Set this bit to configure the data destination of i2s rx. 1: bt. 0: gdma.
*/
#define I2S_RX_DESTINATION (BIT(0))
#define I2S_RX_DESTINATION_M (I2S_RX_DESTINATION_V << I2S_RX_DESTINATION_S)
#define I2S_RX_DESTINATION_V 0x00000001U
#define I2S_RX_DESTINATION_S 0
/** I2S_TX_DESTINATION : R/W; bitpos: [1]; default: 0;
* Set this bit to configure the data destination of i2s tx. 1: ble. 0: gdma.
* Set this bit to configure the data destination of i2s tx. 1: bt. 0: gdma.
*/
#define I2S_TX_DESTINATION (BIT(1))
#define I2S_TX_DESTINATION_M (I2S_TX_DESTINATION_V << I2S_TX_DESTINATION_S)
@@ -1027,11 +1027,11 @@ typedef union {
typedef union {
struct {
/** rx_destination : R/W; bitpos: [0]; default: 0;
* Set this bit to configure the data destination of i2s rx. 1: ble. 0: gdma.
* Set this bit to configure the data destination of i2s rx. 1: bt. 0: gdma.
*/
uint32_t rx_destination:1;
/** tx_destination : R/W; bitpos: [1]; default: 0;
* Set this bit to configure the data destination of i2s tx. 1: ble. 0: gdma.
* Set this bit to configure the data destination of i2s tx. 1: bt. 0: gdma.
*/
uint32_t tx_destination:1;
uint32_t reserved_2:30;