Skip to content

Commit 8cd1f99

Browse files
committed
Merge branch 'refactor/common_rom_gpio_apis' into 'master'
esp_rom: extract common GPIO apis into esp_rom_gpio.h See merge request espressif/esp-idf!9248
2 parents adf86bd + a4d0033 commit 8cd1f99

File tree

89 files changed

+440
-595
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+440
-595
lines changed

components/app_update/test/test_switch_ota.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ static void set_output_pin(uint32_t num_pin)
279279
TEST_ESP_OK(gpio_hold_dis(num_pin));
280280

281281
gpio_config_t io_conf;
282-
io_conf.intr_type = GPIO_PIN_INTR_DISABLE;
282+
io_conf.intr_type = GPIO_INTR_DISABLE;
283283
io_conf.mode = GPIO_MODE_OUTPUT;
284284
io_conf.pin_bit_mask = (1ULL << num_pin);
285285
io_conf.pull_down_en = 0;

components/bootloader_support/src/bootloader_common.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@
1919
#include "esp_log.h"
2020
#if CONFIG_IDF_TARGET_ESP32
2121
#include "esp32/rom/spi_flash.h"
22-
#include "esp32/rom/gpio.h"
2322
#elif CONFIG_IDF_TARGET_ESP32S2
2423
#include "esp32s2/rom/spi_flash.h"
2524
#include "esp32s2/rom/ets_sys.h"
26-
#include "esp32s2/rom/gpio.h"
2725
#endif
2826
#include "esp_rom_crc.h"
27+
#include "esp_rom_gpio.h"
2928
#include "esp_flash_partitions.h"
3029
#include "bootloader_flash.h"
3130
#include "bootloader_common.h"
3231
#include "soc/gpio_periph.h"
3332
#include "soc/rtc.h"
3433
#include "soc/efuse_reg.h"
34+
#include "hal/gpio_ll.h"
3535
#include "esp_image_format.h"
3636
#include "bootloader_sha.h"
3737
#include "sys/param.h"
@@ -57,17 +57,17 @@ bool bootloader_common_ota_select_valid(const esp_ota_select_entry_t *s)
5757

5858
esp_comm_gpio_hold_t bootloader_common_check_long_hold_gpio(uint32_t num_pin, uint32_t delay_sec)
5959
{
60-
gpio_pad_select_gpio(num_pin);
60+
esp_rom_gpio_pad_select_gpio(num_pin);
6161
if (GPIO_PIN_MUX_REG[num_pin]) {
6262
PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[num_pin]);
6363
}
64-
gpio_pad_pullup(num_pin);
64+
esp_rom_gpio_pad_pullup_only(num_pin);
6565
uint32_t tm_start = esp_log_early_timestamp();
66-
if (GPIO_INPUT_GET(num_pin) == 1) {
66+
if (gpio_ll_get_level(&GPIO, num_pin) == 1) {
6767
return GPIO_NOT_HOLD;
6868
}
6969
do {
70-
if (GPIO_INPUT_GET(num_pin) != 0) {
70+
if (gpio_ll_get_level(&GPIO, num_pin) != 0) {
7171
return GPIO_SHORT_HOLD;
7272
}
7373
} while (delay_sec > ((esp_log_early_timestamp() - tm_start) / 1000L));

components/bootloader_support/src/bootloader_console.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,13 @@
2424
#ifdef CONFIG_IDF_TARGET_ESP32
2525
#include "esp32/rom/ets_sys.h"
2626
#include "esp32/rom/uart.h"
27-
#include "esp32/rom/gpio.h"
2827
#elif CONFIG_IDF_TARGET_ESP32S2
2928
#include "esp32s2/rom/ets_sys.h"
3029
#include "esp32s2/rom/uart.h"
31-
#include "esp32s2/rom/gpio.h"
3230
#include "esp32s2/rom/usb/cdc_acm.h"
3331
#include "esp32s2/rom/usb/usb_common.h"
3432
#endif
33+
#include "esp_rom_gpio.h"
3534

3635
#ifdef CONFIG_ESP_CONSOLE_UART_NONE
3736
void bootloader_console_init(void)
@@ -70,9 +69,9 @@ void bootloader_console_init(void)
7069
const uint32_t tx_idx = uart_periph_signal[uart_num].tx_sig;
7170
const uint32_t rx_idx = uart_periph_signal[uart_num].rx_sig;
7271
PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[uart_rx_gpio]);
73-
gpio_pad_pullup(uart_rx_gpio);
74-
gpio_matrix_out(uart_tx_gpio, tx_idx, 0, 0);
75-
gpio_matrix_in(uart_rx_gpio, rx_idx, 0);
72+
esp_rom_gpio_pad_pullup_only(uart_rx_gpio);
73+
esp_rom_gpio_connect_out_signal(uart_tx_gpio, tx_idx, 0, 0);
74+
esp_rom_gpio_connect_in_signal(uart_rx_gpio, rx_idx, 0);
7675
// Enable the peripheral
7776
periph_ll_enable_clk_clear_rst(PERIPH_UART0_MODULE + uart_num);
7877
}

components/bootloader_support/src/bootloader_flash_config_esp32.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#include "sdkconfig.h"
1818
#include "esp_err.h"
1919
#include "esp_log.h"
20-
#include "esp32/rom/gpio.h"
20+
#include "esp_rom_gpio.h"
2121
#include "esp32/rom/spi_flash.h"
2222
#include "esp32/rom/efuse.h"
2323
#include "soc/gpio_periph.h"
@@ -93,15 +93,15 @@ void IRAM_ATTR bootloader_flash_gpio_config(const esp_image_header_t* pfhdr)
9393
} else {
9494
const uint32_t spiconfig = ets_efuse_get_spiconfig();
9595
if (spiconfig == EFUSE_SPICONFIG_SPI_DEFAULTS) {
96-
gpio_matrix_out(SPI_IOMUX_PIN_NUM_CS, SPICS0_OUT_IDX, 0, 0);
97-
gpio_matrix_out(SPI_IOMUX_PIN_NUM_MISO, SPIQ_OUT_IDX, 0, 0);
98-
gpio_matrix_in(SPI_IOMUX_PIN_NUM_MISO, SPIQ_IN_IDX, 0);
99-
gpio_matrix_out(SPI_IOMUX_PIN_NUM_MOSI, SPID_OUT_IDX, 0, 0);
100-
gpio_matrix_in(SPI_IOMUX_PIN_NUM_MOSI, SPID_IN_IDX, 0);
101-
gpio_matrix_out(SPI_IOMUX_PIN_NUM_WP, SPIWP_OUT_IDX, 0, 0);
102-
gpio_matrix_in(SPI_IOMUX_PIN_NUM_WP, SPIWP_IN_IDX, 0);
103-
gpio_matrix_out(SPI_IOMUX_PIN_NUM_HD, SPIHD_OUT_IDX, 0, 0);
104-
gpio_matrix_in(SPI_IOMUX_PIN_NUM_HD, SPIHD_IN_IDX, 0);
96+
esp_rom_gpio_connect_out_signal(SPI_IOMUX_PIN_NUM_CS, SPICS0_OUT_IDX, 0, 0);
97+
esp_rom_gpio_connect_out_signal(SPI_IOMUX_PIN_NUM_MISO, SPIQ_OUT_IDX, 0, 0);
98+
esp_rom_gpio_connect_in_signal(SPI_IOMUX_PIN_NUM_MISO, SPIQ_IN_IDX, 0);
99+
esp_rom_gpio_connect_out_signal(SPI_IOMUX_PIN_NUM_MOSI, SPID_OUT_IDX, 0, 0);
100+
esp_rom_gpio_connect_in_signal(SPI_IOMUX_PIN_NUM_MOSI, SPID_IN_IDX, 0);
101+
esp_rom_gpio_connect_out_signal(SPI_IOMUX_PIN_NUM_WP, SPIWP_OUT_IDX, 0, 0);
102+
esp_rom_gpio_connect_in_signal(SPI_IOMUX_PIN_NUM_WP, SPIWP_IN_IDX, 0);
103+
esp_rom_gpio_connect_out_signal(SPI_IOMUX_PIN_NUM_HD, SPIHD_OUT_IDX, 0, 0);
104+
esp_rom_gpio_connect_in_signal(SPI_IOMUX_PIN_NUM_HD, SPIHD_IN_IDX, 0);
105105
//select pin function gpio
106106
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA0_U, PIN_FUNC_GPIO);
107107
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA1_U, PIN_FUNC_GPIO);

components/bootloader_support/src/bootloader_flash_config_esp32s2.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,8 @@
1717
#include "sdkconfig.h"
1818
#include "esp_err.h"
1919
#include "esp_log.h"
20-
#include "esp32s2/rom/gpio.h"
2120
#include "esp32s2/rom/spi_flash.h"
2221
#include "esp32s2/rom/efuse.h"
23-
#include "soc/gpio_periph.h"
2422
#include "soc/efuse_reg.h"
2523
#include "soc/spi_reg.h"
2624
#include "soc/spi_mem_reg.h"

components/bootloader_support/src/bootloader_utility.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
#include "esp32/rom/spi_flash.h"
2727
#include "esp32/rom/rtc.h"
2828
#include "esp32/rom/uart.h"
29-
#include "esp32/rom/gpio.h"
3029
#include "esp32/rom/secure_boot.h"
3130
#elif CONFIG_IDF_TARGET_ESP32S2
3231
#include "esp32s2/rom/cache.h"
@@ -35,7 +34,6 @@
3534
#include "esp32s2/rom/spi_flash.h"
3635
#include "esp32s2/rom/rtc.h"
3736
#include "esp32s2/rom/uart.h"
38-
#include "esp32s2/rom/gpio.h"
3937
#include "esp32s2/rom/secure_boot.h"
4038
#include "soc/extmem_reg.h"
4139
#include "soc/cache_memory.h"

components/bootloader_support/src/esp32/bootloader_esp32.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
#include "esp32/rom/cache.h"
3838
#include "esp32/rom/efuse.h"
3939
#include "esp32/rom/ets_sys.h"
40-
#include "esp32/rom/gpio.h"
40+
#include "esp_rom_gpio.h"
4141
#include "esp32/rom/spi_flash.h"
4242
#include "esp32/rom/rtc.h"
4343
#include "esp32/rom/uart.h"
@@ -74,15 +74,15 @@ void bootloader_configure_spi_pins(int drv)
7474
} else {
7575
const uint32_t spiconfig = ets_efuse_get_spiconfig();
7676
if (spiconfig == EFUSE_SPICONFIG_SPI_DEFAULTS) {
77-
gpio_matrix_out(FLASH_CS_IO, SPICS0_OUT_IDX, 0, 0);
78-
gpio_matrix_out(FLASH_SPIQ_IO, SPIQ_OUT_IDX, 0, 0);
79-
gpio_matrix_in(FLASH_SPIQ_IO, SPIQ_IN_IDX, 0);
80-
gpio_matrix_out(FLASH_SPID_IO, SPID_OUT_IDX, 0, 0);
81-
gpio_matrix_in(FLASH_SPID_IO, SPID_IN_IDX, 0);
82-
gpio_matrix_out(FLASH_SPIWP_IO, SPIWP_OUT_IDX, 0, 0);
83-
gpio_matrix_in(FLASH_SPIWP_IO, SPIWP_IN_IDX, 0);
84-
gpio_matrix_out(FLASH_SPIHD_IO, SPIHD_OUT_IDX, 0, 0);
85-
gpio_matrix_in(FLASH_SPIHD_IO, SPIHD_IN_IDX, 0);
77+
esp_rom_gpio_connect_out_signal(FLASH_CS_IO, SPICS0_OUT_IDX, 0, 0);
78+
esp_rom_gpio_connect_out_signal(FLASH_SPIQ_IO, SPIQ_OUT_IDX, 0, 0);
79+
esp_rom_gpio_connect_in_signal(FLASH_SPIQ_IO, SPIQ_IN_IDX, 0);
80+
esp_rom_gpio_connect_out_signal(FLASH_SPID_IO, SPID_OUT_IDX, 0, 0);
81+
esp_rom_gpio_connect_in_signal(FLASH_SPID_IO, SPID_IN_IDX, 0);
82+
esp_rom_gpio_connect_out_signal(FLASH_SPIWP_IO, SPIWP_OUT_IDX, 0, 0);
83+
esp_rom_gpio_connect_in_signal(FLASH_SPIWP_IO, SPIWP_IN_IDX, 0);
84+
esp_rom_gpio_connect_out_signal(FLASH_SPIHD_IO, SPIHD_OUT_IDX, 0, 0);
85+
esp_rom_gpio_connect_in_signal(FLASH_SPIHD_IO, SPIHD_IN_IDX, 0);
8686
//select pin function gpio
8787
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA0_U, PIN_FUNC_GPIO);
8888
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA1_U, PIN_FUNC_GPIO);

components/bootloader_support/src/esp32s2/bootloader_esp32s2.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#include "soc/gpio_sig_map.h"
2020
#include "soc/io_mux_reg.h"
2121
#include "esp32s2/rom/efuse.h"
22-
#include "esp32s2/rom/gpio.h"
22+
#include "esp_rom_gpio.h"
2323
#include "esp32s2/rom/spi_flash.h"
2424

2525
#include "bootloader_init.h"
@@ -66,15 +66,15 @@ void bootloader_configure_spi_pins(int drv)
6666
hd_gpio_num = (spiconfig >> 24) & 0x3f;
6767
wp_gpio_num = wp_pin;
6868
}
69-
gpio_pad_set_drv(clk_gpio_num, drv);
70-
gpio_pad_set_drv(q_gpio_num, drv);
71-
gpio_pad_set_drv(d_gpio_num, drv);
72-
gpio_pad_set_drv(cs0_gpio_num, drv);
69+
esp_rom_gpio_pad_set_drv(clk_gpio_num, drv);
70+
esp_rom_gpio_pad_set_drv(q_gpio_num, drv);
71+
esp_rom_gpio_pad_set_drv(d_gpio_num, drv);
72+
esp_rom_gpio_pad_set_drv(cs0_gpio_num, drv);
7373
if (hd_gpio_num <= MAX_PAD_GPIO_NUM) {
74-
gpio_pad_set_drv(hd_gpio_num, drv);
74+
esp_rom_gpio_pad_set_drv(hd_gpio_num, drv);
7575
}
7676
if (wp_gpio_num <= MAX_PAD_GPIO_NUM) {
77-
gpio_pad_set_drv(wp_gpio_num, drv);
77+
esp_rom_gpio_pad_set_drv(wp_gpio_num, drv);
7878
}
7979
}
8080

components/driver/gpio.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "soc/gpio_periph.h"
2929
#include "esp_log.h"
3030
#include "hal/gpio_hal.h"
31+
#include "esp_rom_gpio.h"
3132

3233
static const char *GPIO_TAG = "gpio";
3334
#define GPIO_CHECK(a, str, ret_val) \
@@ -192,7 +193,7 @@ static esp_err_t gpio_output_enable(gpio_num_t gpio_num)
192193
{
193194
GPIO_CHECK(GPIO_IS_VALID_OUTPUT_GPIO(gpio_num), "GPIO output gpio_num error", ESP_ERR_INVALID_ARG);
194195
gpio_hal_output_enable(gpio_context.gpio_hal, gpio_num);
195-
gpio_matrix_out(gpio_num, SIG_GPIO_OUT_IDX, false, false);
196+
esp_rom_gpio_connect_out_signal(gpio_num, SIG_GPIO_OUT_IDX, false, false);
196197
return ESP_OK;
197198
}
198199

components/driver/i2c.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "soc/i2c_periph.h"
3131
#include "driver/i2c.h"
3232
#include "driver/periph_ctrl.h"
33+
#include "esp_rom_gpio.h"
3334

3435
static const char *I2C_TAG = "i2c";
3536
#define I2C_CHECK(a, str, ret) if(!(a)) { \
@@ -788,15 +789,15 @@ esp_err_t i2c_set_pin(i2c_port_t i2c_num, int sda_io_num, int scl_io_num, bool s
788789
} else {
789790
gpio_set_pull_mode(sda_io_num, GPIO_FLOATING);
790791
}
791-
gpio_matrix_out(sda_io_num, sda_out_sig, 0, 0);
792-
gpio_matrix_in(sda_io_num, sda_in_sig, 0);
792+
esp_rom_gpio_connect_out_signal(sda_io_num, sda_out_sig, 0, 0);
793+
esp_rom_gpio_connect_in_signal(sda_io_num, sda_in_sig, 0);
793794
}
794795
if (scl_io_num >= 0) {
795796
gpio_set_level(scl_io_num, I2C_IO_INIT_LEVEL);
796797
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[scl_io_num], PIN_FUNC_GPIO);
797798
gpio_set_direction(scl_io_num, GPIO_MODE_INPUT_OUTPUT_OD);
798-
gpio_matrix_out(scl_io_num, scl_out_sig, 0, 0);
799-
gpio_matrix_in(scl_io_num, scl_in_sig, 0);
799+
esp_rom_gpio_connect_out_signal(scl_io_num, scl_out_sig, 0, 0);
800+
esp_rom_gpio_connect_in_signal(scl_io_num, scl_in_sig, 0);
800801
if (scl_pullup_en == GPIO_PULLUP_ENABLE) {
801802
gpio_set_pull_mode(scl_io_num, GPIO_PULLUP_ONLY);
802803
} else {

components/driver/i2s.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#include "freertos/xtensa_api.h"
2323
#include "freertos/semphr.h"
2424

25-
#include "esp32/rom/lldesc.h"
25+
#include "soc/lldesc.h"
2626
#include "driver/gpio.h"
2727
#include "driver/i2s.h"
2828

@@ -38,6 +38,7 @@
3838
#include "esp_log.h"
3939
#include "esp_pm.h"
4040
#include "esp_efuse.h"
41+
#include "esp_rom_gpio.h"
4142

4243
static const char* I2S_TAG = "I2S";
4344

@@ -121,7 +122,7 @@ static inline void gpio_matrix_out_check(uint32_t gpio, uint32_t signal_idx, boo
121122
if (gpio != -1) {
122123
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio], PIN_FUNC_GPIO);
123124
gpio_set_direction(gpio, GPIO_MODE_DEF_OUTPUT);
124-
gpio_matrix_out(gpio, signal_idx, out_inv, oen_inv);
125+
esp_rom_gpio_connect_out_signal(gpio, signal_idx, out_inv, oen_inv);
125126
}
126127
}
127128

@@ -131,7 +132,7 @@ static inline void gpio_matrix_in_check(uint32_t gpio, uint32_t signal_idx, bool
131132
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio], PIN_FUNC_GPIO);
132133
//Set direction, for some GPIOs, the input function are not enabled as default.
133134
gpio_set_direction(gpio, GPIO_MODE_DEF_INPUT);
134-
gpio_matrix_in(gpio, signal_idx, inv);
135+
esp_rom_gpio_connect_in_signal(gpio, signal_idx, inv);
135136
}
136137
}
137138

components/driver/include/driver/gpio.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
#include "soc/gpio_periph.h"
2323
#include "hal/gpio_types.h"
2424

25+
// |================================= WARNING ====================================================== |
26+
// | Including ROM header file in a PUBLIC API file will be REMOVED in the next major release (5.x). |
27+
// | User should include "esp_rom_gpio.h" in their code if they have to use those ROM API. |
28+
// |================================================================================================ |
2529
#if CONFIG_IDF_TARGET_ESP32
2630
#include "esp32/rom/gpio.h"
2731
#elif CONFIG_IDF_TARGET_ESP32S2

components/driver/ledc.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "soc/rtc.h"
2323
#include "hal/ledc_hal.h"
2424
#include "driver/ledc.h"
25+
#include "esp_rom_gpio.h"
2526

2627
static const char* LEDC_TAG = "ledc";
2728

@@ -361,7 +362,7 @@ esp_err_t ledc_set_pin(int gpio_num, ledc_mode_t speed_mode, ledc_channel_t ledc
361362
LEDC_ARG_CHECK(speed_mode < LEDC_SPEED_MODE_MAX, "speed_mode");
362363
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio_num], PIN_FUNC_GPIO);
363364
gpio_set_direction(gpio_num, GPIO_MODE_OUTPUT);
364-
gpio_matrix_out(gpio_num, ledc_periph_signal[speed_mode].sig_out0_idx + ledc_channel, 0, 0);
365+
esp_rom_gpio_connect_out_signal(gpio_num, ledc_periph_signal[speed_mode].sig_out0_idx + ledc_channel, 0, 0);
365366
return ESP_OK;
366367
}
367368

@@ -403,7 +404,7 @@ esp_err_t ledc_channel_config(const ledc_channel_config_t* ledc_conf)
403404
/*set LEDC signal in gpio matrix*/
404405
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio_num], PIN_FUNC_GPIO);
405406
gpio_set_direction(gpio_num, GPIO_MODE_OUTPUT);
406-
gpio_matrix_out(gpio_num, ledc_periph_signal[speed_mode].sig_out0_idx + ledc_channel, 0, 0);
407+
esp_rom_gpio_connect_out_signal(gpio_num, ledc_periph_signal[speed_mode].sig_out0_idx + ledc_channel, 0, 0);
407408

408409
return ret;
409410
}

components/driver/mcpwm.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include "driver/periph_ctrl.h"
2525
#include "sdkconfig.h"
2626
#include "hal/mcpwm_hal.h"
27-
27+
#include "esp_rom_gpio.h"
2828

2929
typedef struct {
3030
mcpwm_hal_context_t hal;
@@ -115,22 +115,22 @@ esp_err_t mcpwm_gpio_init(mcpwm_unit_t mcpwm_num, mcpwm_io_signals_t io_signal,
115115
if (mcpwm_gpio_sig) {
116116
MCPWM_CHECK((GPIO_IS_VALID_OUTPUT_GPIO(gpio_num)), MCPWM_GPIO_ERROR, ESP_ERR_INVALID_ARG);
117117
gpio_set_direction(gpio_num, GPIO_MODE_OUTPUT);
118-
gpio_matrix_out(gpio_num, PWM0_OUT0A_IDX + io_signal, 0, 0);
118+
esp_rom_gpio_connect_out_signal(gpio_num, PWM0_OUT0A_IDX + io_signal, 0, 0);
119119
} else {
120120
gpio_set_direction(gpio_num, GPIO_MODE_INPUT);
121-
gpio_matrix_in(gpio_num, PWM0_SYNC0_IN_IDX + io_signal - OFFSET_FOR_GPIO_IDX_1, 0);
121+
esp_rom_gpio_connect_in_signal(gpio_num, PWM0_SYNC0_IN_IDX + io_signal - OFFSET_FOR_GPIO_IDX_1, 0);
122122
}
123123
} else { //MCPWM_UNIT_1
124124
if (mcpwm_gpio_sig) {
125125
MCPWM_CHECK((GPIO_IS_VALID_OUTPUT_GPIO(gpio_num)), MCPWM_GPIO_ERROR, ESP_ERR_INVALID_ARG);
126126
gpio_set_direction(gpio_num, GPIO_MODE_OUTPUT);
127-
gpio_matrix_out(gpio_num, PWM1_OUT0A_IDX + io_signal, 0, 0);
127+
esp_rom_gpio_connect_out_signal(gpio_num, PWM1_OUT0A_IDX + io_signal, 0, 0);
128128
} else if (io_signal >= MCPWM_SYNC_0 && io_signal <= MCPWM_FAULT_2) {
129129
gpio_set_direction(gpio_num, GPIO_MODE_INPUT);
130-
gpio_matrix_in(gpio_num, PWM1_SYNC0_IN_IDX + io_signal - OFFSET_FOR_GPIO_IDX_1, 0);
130+
esp_rom_gpio_connect_in_signal(gpio_num, PWM1_SYNC0_IN_IDX + io_signal - OFFSET_FOR_GPIO_IDX_1, 0);
131131
} else {
132132
gpio_set_direction(gpio_num, GPIO_MODE_INPUT);
133-
gpio_matrix_in(gpio_num, PWM1_SYNC0_IN_IDX + io_signal - OFFSET_FOR_GPIO_IDX_2, 0);
133+
esp_rom_gpio_connect_in_signal(gpio_num, PWM1_SYNC0_IN_IDX + io_signal - OFFSET_FOR_GPIO_IDX_2, 0);
134134
}
135135
}
136136
return ESP_OK;

components/driver/pcnt.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "driver/periph_ctrl.h"
2121
#include "hal/pcnt_hal.h"
2222
#include "soc/pcnt_caps.h"
23+
#include "esp_rom_gpio.h"
2324

2425
#define PCNT_CHANNEL_ERR_STR "PCNT CHANNEL ERROR"
2526
#define PCNT_UNIT_ERR_STR "PCNT UNIT ERROR"
@@ -98,14 +99,14 @@ static inline esp_err_t _pcnt_set_pin(pcnt_port_t pcnt_port, pcnt_unit_t unit, p
9899
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[pulse_io], PIN_FUNC_GPIO);
99100
gpio_set_direction(pulse_io, GPIO_MODE_INPUT);
100101
gpio_set_pull_mode(pulse_io, GPIO_PULLUP_ONLY);
101-
gpio_matrix_in(pulse_io, input_sig_index, 0);
102+
esp_rom_gpio_connect_in_signal(pulse_io, input_sig_index, 0);
102103
}
103104

104105
if (ctrl_io >= 0) {
105106
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[ctrl_io], PIN_FUNC_GPIO);
106107
gpio_set_direction(ctrl_io, GPIO_MODE_INPUT);
107108
gpio_set_pull_mode(ctrl_io, GPIO_PULLUP_ONLY);
108-
gpio_matrix_in(ctrl_io, ctrl_sig_index, 0);
109+
esp_rom_gpio_connect_in_signal(ctrl_io, ctrl_sig_index, 0);
109110
}
110111

111112
return ESP_OK;

0 commit comments

Comments
 (0)