From dfa95bfe6e3204c25389e1cc2f90aab8e724c397 Mon Sep 17 00:00:00 2001 From: Song Ruo Jing Date: Wed, 5 Feb 2025 22:03:03 +0800 Subject: [PATCH] fix(gpio): fix esp_rom_gpio_connect_out_signal for gpio num over 31 on esp32/s2 Closes https://github.com/espressif/esp-idf/issues/15209 --- components/esp_rom/patches/esp_rom_gpio.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/components/esp_rom/patches/esp_rom_gpio.c b/components/esp_rom/patches/esp_rom_gpio.c index bf8bef623c..7bed9c926a 100644 --- a/components/esp_rom/patches/esp_rom_gpio.c +++ b/components/esp_rom/patches/esp_rom_gpio.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -23,6 +23,10 @@ IRAM_ATTR void esp_rom_gpio_connect_out_signal(uint32_t gpio_num, uint32_t signa } REG_WRITE(GPIO_FUNC0_OUT_SEL_CFG_REG + (gpio_num * 4), value); - REG_WRITE(GPIO_ENABLE_W1TS_REG, (1 << gpio_num)); + if (gpio_num < 32) { + REG_WRITE(GPIO_ENABLE_W1TS_REG, (1 << gpio_num)); + } else { + REG_WRITE(GPIO_ENABLE1_W1TS_REG, (1 << (gpio_num - 32))); + } } #endif