mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-01 18:50:34 +03:00
Merge branch 'refactor/rtcio_interface_update' into 'master'
refactor(lp_io): switch LP I2C/LP I2S to lp_gpio_matrix_input/output APIs See merge request espressif/esp-idf!48118
This commit is contained in:
@@ -381,10 +381,10 @@ static esp_err_t s_lp_i2c_pins_config(i2c_bus_handle_t handle)
|
||||
rtc_gpio_pullup_dis(handle->sda_num);
|
||||
}
|
||||
#if !SOC_LP_GPIO_MATRIX_SUPPORTED
|
||||
rtc_gpio_iomux_func_sel(handle->sda_num, i2c_periph_signal[port_id].iomux_func);
|
||||
rtc_gpio_iomux_input(handle->sda_num, i2c_periph_signal[port_id].iomux_func, i2c_periph_signal[port_id].sda_in_sig);
|
||||
#else
|
||||
lp_gpio_connect_out_signal(handle->sda_num, i2c_periph_signal[port_id].sda_out_sig, 0, 0);
|
||||
lp_gpio_connect_in_signal(handle->sda_num, i2c_periph_signal[port_id].sda_in_sig, 0);
|
||||
lp_gpio_matrix_output(handle->sda_num, i2c_periph_signal[port_id].sda_out_sig, 0, 0);
|
||||
lp_gpio_matrix_input(handle->sda_num, i2c_periph_signal[port_id].sda_in_sig, 0);
|
||||
#endif
|
||||
|
||||
rtc_gpio_init(handle->scl_num);
|
||||
@@ -396,10 +396,10 @@ static esp_err_t s_lp_i2c_pins_config(i2c_bus_handle_t handle)
|
||||
rtc_gpio_pullup_dis(handle->scl_num);
|
||||
}
|
||||
#if !SOC_LP_GPIO_MATRIX_SUPPORTED
|
||||
rtc_gpio_iomux_func_sel(handle->scl_num, i2c_periph_signal[port_id].iomux_func);
|
||||
rtc_gpio_iomux_input(handle->scl_num, i2c_periph_signal[port_id].iomux_func, i2c_periph_signal[port_id].scl_in_sig);
|
||||
#else
|
||||
lp_gpio_connect_out_signal(handle->scl_num, i2c_periph_signal[port_id].scl_out_sig, 0, 0);
|
||||
lp_gpio_connect_in_signal(handle->scl_num, i2c_periph_signal[port_id].scl_in_sig, 0);
|
||||
lp_gpio_matrix_output(handle->scl_num, i2c_periph_signal[port_id].scl_out_sig, 0, 0);
|
||||
lp_gpio_matrix_input(handle->scl_num, i2c_periph_signal[port_id].scl_in_sig, 0);
|
||||
#endif
|
||||
|
||||
return ESP_OK;
|
||||
@@ -444,8 +444,8 @@ esp_err_t i2c_common_deinit_pins(i2c_bus_handle_t handle)
|
||||
ESP_RETURN_ON_ERROR(rtc_gpio_deinit(handle->sda_num), TAG, "deinit rtc gpio failed");
|
||||
ESP_RETURN_ON_ERROR(rtc_gpio_deinit(handle->scl_num), TAG, "deinit rtc gpio failed");
|
||||
#if SOC_LP_GPIO_MATRIX_SUPPORTED
|
||||
ESP_RETURN_ON_ERROR(lp_gpio_connect_in_signal(LP_GPIO_MATRIX_CONST_ZERO_INPUT, i2c_periph_signal[port_id].scl_in_sig, 0), TAG, "failed to connect lp gpio to zero");
|
||||
ESP_RETURN_ON_ERROR(lp_gpio_connect_in_signal(LP_GPIO_MATRIX_CONST_ZERO_INPUT, i2c_periph_signal[port_id].sda_in_sig, 0), TAG, "failed to connect lp gpio to zero");
|
||||
ESP_RETURN_ON_ERROR(lp_gpio_matrix_input(LP_GPIO_MATRIX_CONST_ZERO_INPUT, i2c_periph_signal[port_id].scl_in_sig, 0), TAG, "failed to connect lp gpio to zero");
|
||||
ESP_RETURN_ON_ERROR(lp_gpio_matrix_input(LP_GPIO_MATRIX_CONST_ZERO_INPUT, i2c_periph_signal[port_id].sda_in_sig, 0), TAG, "failed to connect lp gpio to zero");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -91,22 +91,18 @@ esp_err_t lp_i2s_channel_init_pdm_rx_mode(lp_i2s_chan_handle_t handle, const lp_
|
||||
static esp_err_t s_io_init(lp_i2s_chan_handle_t chan, const lp_i2s_pdm_rx_gpio_config_t *config)
|
||||
{
|
||||
if (config->clk >= 0) {
|
||||
rtc_gpio_set_direction(config->clk, RTC_GPIO_MODE_INPUT_ONLY);
|
||||
rtc_gpio_init(config->clk);
|
||||
rtc_gpio_iomux_func_sel(config->clk, 0);
|
||||
ESP_RETURN_ON_ERROR(rtc_gpio_init(config->clk), TAG, "failed to init clk io");
|
||||
if (chan->role == I2S_ROLE_MASTER) {
|
||||
lp_gpio_connect_in_signal(config->clk, lp_i2s_periph_signal[chan->ctlr->id].m_rx_ws_sig, 0);
|
||||
lp_gpio_matrix_input(config->clk, lp_i2s_periph_signal[chan->ctlr->id].m_rx_ws_sig, 0);
|
||||
} else {
|
||||
lp_gpio_connect_in_signal(config->clk, lp_i2s_periph_signal[chan->ctlr->id].s_rx_ws_sig, 0);
|
||||
lp_gpio_matrix_input(config->clk, lp_i2s_periph_signal[chan->ctlr->id].s_rx_ws_sig, 0);
|
||||
}
|
||||
ESP_LOGD(TAG, "clk io: %d, role: %d, signal: %"PRId8, config->clk, chan->role, chan->role ? lp_i2s_periph_signal[chan->ctlr->id].s_rx_ws_sig : lp_i2s_periph_signal[chan->ctlr->id].m_rx_ws_sig);
|
||||
}
|
||||
|
||||
if (config->din >= 0) {
|
||||
rtc_gpio_set_direction(config->din, RTC_GPIO_MODE_INPUT_ONLY);
|
||||
rtc_gpio_init(config->din);
|
||||
rtc_gpio_iomux_func_sel(config->din, 0);
|
||||
lp_gpio_connect_in_signal(config->din, lp_i2s_periph_signal[chan->ctlr->id].data_in_sigs[0], 0);
|
||||
lp_gpio_matrix_input(config->din, lp_i2s_periph_signal[chan->ctlr->id].data_in_sigs[0], 0);
|
||||
ESP_LOGD(TAG, "din io: %d, signal: %"PRId8, config->din, lp_i2s_periph_signal[chan->ctlr->id].data_in_sigs[0]);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -67,34 +67,28 @@ esp_err_t lp_i2s_channel_init_std_mode(lp_i2s_chan_handle_t handle, const lp_i2s
|
||||
static esp_err_t s_io_init(lp_i2s_chan_handle_t chan, const lp_i2s_std_gpio_config_t *config)
|
||||
{
|
||||
if (config->bck >= 0) {
|
||||
rtc_gpio_set_direction(config->bck, RTC_GPIO_MODE_INPUT_ONLY);
|
||||
rtc_gpio_init(config->bck);
|
||||
rtc_gpio_iomux_func_sel(config->bck, 0);
|
||||
if (chan->role == I2S_ROLE_MASTER) {
|
||||
lp_gpio_connect_in_signal(config->bck, lp_i2s_periph_signal[chan->ctlr->id].m_rx_bck_sig, 0);
|
||||
lp_gpio_matrix_input(config->bck, lp_i2s_periph_signal[chan->ctlr->id].m_rx_bck_sig, 0);
|
||||
} else {
|
||||
lp_gpio_connect_in_signal(config->bck, lp_i2s_periph_signal[chan->ctlr->id].s_rx_bck_sig, 0);
|
||||
lp_gpio_matrix_input(config->bck, lp_i2s_periph_signal[chan->ctlr->id].s_rx_bck_sig, 0);
|
||||
}
|
||||
ESP_LOGD(TAG, "bck io: %d, role: %d, signal: %"PRId8, config->bck, chan->role, chan->role ? lp_i2s_periph_signal[chan->ctlr->id].s_rx_bck_sig : lp_i2s_periph_signal[chan->ctlr->id].m_rx_bck_sig);
|
||||
}
|
||||
|
||||
if (config->ws >= 0) {
|
||||
rtc_gpio_set_direction(config->ws, RTC_GPIO_MODE_INPUT_ONLY);
|
||||
rtc_gpio_init(config->ws);
|
||||
rtc_gpio_iomux_func_sel(config->ws, 0);
|
||||
if (chan->role == I2S_ROLE_MASTER) {
|
||||
lp_gpio_connect_in_signal(config->ws, lp_i2s_periph_signal[chan->ctlr->id].m_rx_ws_sig, 0);
|
||||
lp_gpio_matrix_input(config->ws, lp_i2s_periph_signal[chan->ctlr->id].m_rx_ws_sig, 0);
|
||||
} else {
|
||||
lp_gpio_connect_in_signal(config->ws, lp_i2s_periph_signal[chan->ctlr->id].s_rx_ws_sig, 0);
|
||||
lp_gpio_matrix_input(config->ws, lp_i2s_periph_signal[chan->ctlr->id].s_rx_ws_sig, 0);
|
||||
}
|
||||
ESP_LOGD(TAG, "ws io: %d, role: %d, signal: %"PRId8, config->ws, chan->role, chan->role ? lp_i2s_periph_signal[chan->ctlr->id].s_rx_ws_sig : lp_i2s_periph_signal[chan->ctlr->id].m_rx_ws_sig);
|
||||
}
|
||||
|
||||
if (config->din >= 0) {
|
||||
rtc_gpio_set_direction(config->din, RTC_GPIO_MODE_INPUT_ONLY);
|
||||
rtc_gpio_init(config->din);
|
||||
rtc_gpio_iomux_func_sel(config->din, 0);
|
||||
lp_gpio_connect_in_signal(config->din, lp_i2s_periph_signal[chan->ctlr->id].data_in_sigs[0], 0);
|
||||
lp_gpio_matrix_input(config->din, lp_i2s_periph_signal[chan->ctlr->id].data_in_sigs[0], 0);
|
||||
ESP_LOGD(TAG, "din io: %d, signal: %"PRId8, config->din, lp_i2s_periph_signal[chan->ctlr->id].data_in_sigs[0]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user