mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 03:07:21 +02:00
fix(i2c,mcpwm): fix gpio pull strategy
Closes https://github.com/espressif/esp-idf/issues/15774
This commit is contained in:
@ -324,6 +324,7 @@ static esp_err_t s_hp_i2c_pins_config(i2c_bus_handle_t handle)
|
|||||||
} else {
|
} else {
|
||||||
gpio_pullup_dis(handle->sda_num);
|
gpio_pullup_dis(handle->sda_num);
|
||||||
}
|
}
|
||||||
|
gpio_pulldown_dis(handle->sda_num);
|
||||||
gpio_func_sel(handle->sda_num, PIN_FUNC_GPIO);
|
gpio_func_sel(handle->sda_num, PIN_FUNC_GPIO);
|
||||||
esp_rom_gpio_connect_out_signal(handle->sda_num, i2c_periph_signal[port_id].sda_out_sig, 0, 0);
|
esp_rom_gpio_connect_out_signal(handle->sda_num, i2c_periph_signal[port_id].sda_out_sig, 0, 0);
|
||||||
esp_rom_gpio_connect_in_signal(handle->sda_num, i2c_periph_signal[port_id].sda_in_sig, 0);
|
esp_rom_gpio_connect_in_signal(handle->sda_num, i2c_periph_signal[port_id].sda_in_sig, 0);
|
||||||
@ -337,6 +338,7 @@ static esp_err_t s_hp_i2c_pins_config(i2c_bus_handle_t handle)
|
|||||||
} else {
|
} else {
|
||||||
gpio_pullup_dis(handle->scl_num);
|
gpio_pullup_dis(handle->scl_num);
|
||||||
}
|
}
|
||||||
|
gpio_pulldown_dis(handle->scl_num);
|
||||||
gpio_func_sel(handle->scl_num, PIN_FUNC_GPIO);
|
gpio_func_sel(handle->scl_num, PIN_FUNC_GPIO);
|
||||||
esp_rom_gpio_connect_out_signal(handle->scl_num, i2c_periph_signal[port_id].scl_out_sig, 0, 0);
|
esp_rom_gpio_connect_out_signal(handle->scl_num, i2c_periph_signal[port_id].scl_out_sig, 0, 0);
|
||||||
esp_rom_gpio_connect_in_signal(handle->scl_num, i2c_periph_signal[port_id].scl_in_sig, 0);
|
esp_rom_gpio_connect_in_signal(handle->scl_num, i2c_periph_signal[port_id].scl_in_sig, 0);
|
||||||
|
@ -307,9 +307,13 @@ esp_err_t mcpwm_new_capture_channel(mcpwm_cap_timer_handle_t cap_timer, const mc
|
|||||||
esp_rom_gpio_connect_in_signal(config->gpio_num, mcpwm_periph_signals.groups[group->group_id].captures[cap_chan_id].cap_sig, 0);
|
esp_rom_gpio_connect_in_signal(config->gpio_num, mcpwm_periph_signals.groups[group->group_id].captures[cap_chan_id].cap_sig, 0);
|
||||||
if (config->flags.pull_down) {
|
if (config->flags.pull_down) {
|
||||||
gpio_pulldown_en(config->gpio_num);
|
gpio_pulldown_en(config->gpio_num);
|
||||||
|
} else {
|
||||||
|
gpio_pulldown_dis(config->gpio_num);
|
||||||
}
|
}
|
||||||
if (config->flags.pull_up) {
|
if (config->flags.pull_up) {
|
||||||
gpio_pullup_en(config->gpio_num);
|
gpio_pullup_en(config->gpio_num);
|
||||||
|
} else {
|
||||||
|
gpio_pullup_dis(config->gpio_num);
|
||||||
}
|
}
|
||||||
|
|
||||||
// deprecated, to be removed in in esp-idf v6.0
|
// deprecated, to be removed in in esp-idf v6.0
|
||||||
|
@ -120,9 +120,13 @@ esp_err_t mcpwm_new_gpio_fault(const mcpwm_gpio_fault_config_t *config, mcpwm_fa
|
|||||||
|
|
||||||
if (config->flags.pull_down) {
|
if (config->flags.pull_down) {
|
||||||
gpio_pulldown_en(config->gpio_num);
|
gpio_pulldown_en(config->gpio_num);
|
||||||
|
} else {
|
||||||
|
gpio_pulldown_dis(config->gpio_num);
|
||||||
}
|
}
|
||||||
if (config->flags.pull_up) {
|
if (config->flags.pull_up) {
|
||||||
gpio_pullup_en(config->gpio_num);
|
gpio_pullup_en(config->gpio_num);
|
||||||
|
} else {
|
||||||
|
gpio_pullup_dis(config->gpio_num);
|
||||||
}
|
}
|
||||||
|
|
||||||
// deprecated, to be removed in in esp-idf v6.0
|
// deprecated, to be removed in in esp-idf v6.0
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -201,9 +201,13 @@ esp_err_t mcpwm_new_gpio_sync_src(const mcpwm_gpio_sync_src_config_t *config, mc
|
|||||||
|
|
||||||
if (config->flags.pull_down) {
|
if (config->flags.pull_down) {
|
||||||
gpio_pulldown_en(config->gpio_num);
|
gpio_pulldown_en(config->gpio_num);
|
||||||
|
} else {
|
||||||
|
gpio_pulldown_dis(config->gpio_num);
|
||||||
}
|
}
|
||||||
if (config->flags.pull_up) {
|
if (config->flags.pull_up) {
|
||||||
gpio_pullup_en(config->gpio_num);
|
gpio_pullup_en(config->gpio_num);
|
||||||
|
} else {
|
||||||
|
gpio_pullup_dis(config->gpio_num);
|
||||||
}
|
}
|
||||||
|
|
||||||
// deprecated, to be removed in in esp-idf v6.0
|
// deprecated, to be removed in in esp-idf v6.0
|
||||||
|
Reference in New Issue
Block a user