mirror of
https://github.com/espressif/esp-idf.git
synced 2025-12-03 07:38:00 +00:00
Merge branch 'feature/lp_i2s' into 'master'
lp_i2s: support lp_i2s driver Closes IDF-10355 See merge request espressif/esp-idf!31494
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "soc/i2s_periph.h"
|
||||
#include "soc/gpio_sig_map.h"
|
||||
#include "soc/lp_gpio_sig_map.h"
|
||||
|
||||
/*
|
||||
Bunch of constants for every I2S peripheral: GPIO signals, irqs, hw addr of registers etc
|
||||
@@ -84,3 +85,29 @@ const i2s_signal_conn_t i2s_periph_signal[SOC_I2S_NUM] = {
|
||||
.module = PERIPH_I2S2_MODULE,
|
||||
},
|
||||
};
|
||||
|
||||
const i2s_signal_conn_t lp_i2s_periph_signal[SOC_LP_I2S_NUM] = {
|
||||
[0] = {
|
||||
.mck_out_sig = -1,
|
||||
.mck_in_sig = -1,
|
||||
|
||||
.m_tx_bck_sig = LP_I2S_O_BCK_PAD_OUT_IDX,
|
||||
.m_rx_bck_sig = LP_I2S_I_BCK_PAD_OUT_IDX,
|
||||
.m_tx_ws_sig = LP_I2S_O_WS_PAD_OUT_IDX,
|
||||
.m_rx_ws_sig = LP_I2S_I_WS_PAD_OUT_IDX,
|
||||
|
||||
.s_tx_bck_sig = LP_I2S_O_BCK_PAD_IN_IDX,
|
||||
.s_rx_bck_sig = LP_I2S_I_BCK_PAD_IN_IDX,
|
||||
.s_tx_ws_sig = LP_I2S_O_WS_PAD_IN_IDX,
|
||||
.s_rx_ws_sig = LP_I2S_I_WS_PAD_IN_IDX,
|
||||
|
||||
.data_out_sigs[0] = LP_I2S_O_SD_PAD_OUT_IDX,
|
||||
.data_out_sigs[1] = -1,
|
||||
.data_in_sigs[0] = LP_I2S_I_SD_PAD_IN_IDX,
|
||||
.data_in_sigs[1] = -1,
|
||||
.data_in_sigs[2] = -1,
|
||||
.data_in_sigs[3] = -1,
|
||||
|
||||
.irq = ETS_LP_I2S_INTR_SOURCE,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -243,6 +243,10 @@ config SOC_LP_I2C_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_LP_I2S_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_LP_SPI_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
@@ -815,6 +819,10 @@ config SOC_I2S_TDM_FULL_DATA_WIDTH
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_LP_I2S_NUM
|
||||
int
|
||||
default 1
|
||||
|
||||
config SOC_ISP_BF_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -889,7 +889,7 @@ typedef union {
|
||||
} lp_i2s_date_reg_t;
|
||||
|
||||
|
||||
typedef struct {
|
||||
typedef struct lp_i2s_dev_t {
|
||||
volatile lp_i2s_vad_conf_reg_t vad_conf;
|
||||
volatile lp_i2s_vad_result_reg_t vad_result;
|
||||
volatile lp_i2s_rx_mem_conf_reg_t rx_mem_conf;
|
||||
|
||||
@@ -163,9 +163,11 @@
|
||||
/**
|
||||
* @brief: Special memory address
|
||||
*/
|
||||
#define LP_I2S_RAM_BASE 0x50125c00
|
||||
#define MIPI_CSI_BRG_MEM_BASE 0x50104000
|
||||
#define MIPI_DSI_BRG_MEM_BASE 0x50105000
|
||||
|
||||
|
||||
/**
|
||||
* This are module helper MACROs for quick module reference
|
||||
* including some module(renamed) address
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
#define SOC_LP_GPIO_MATRIX_SUPPORTED 1
|
||||
#define SOC_LP_PERIPHERALS_SUPPORTED 1
|
||||
#define SOC_LP_I2C_SUPPORTED 1
|
||||
#define SOC_LP_I2S_SUPPORTED 1
|
||||
#define SOC_LP_SPI_SUPPORTED 1
|
||||
#define SOC_SPIRAM_SUPPORTED 1
|
||||
#define SOC_PSRAM_DMA_CAPABLE 1
|
||||
@@ -325,6 +326,9 @@
|
||||
#define SOC_I2S_PDM_MAX_RX_LINES (4) // On I2S0
|
||||
#define SOC_I2S_TDM_FULL_DATA_WIDTH (1) /*!< No limitation to data bit width when using multiple slots */
|
||||
|
||||
/*-------------------------- LP_I2S CAPS -------------------------------------*/
|
||||
#define SOC_LP_I2S_NUM (1U)
|
||||
|
||||
/*-------------------------- ISP CAPS ----------------------------------------*/
|
||||
#define SOC_ISP_BF_SUPPORTED 1
|
||||
#define SOC_ISP_CCM_SUPPORTED 1
|
||||
|
||||
Reference in New Issue
Block a user