From e5f2ed192d317f4480ef807a20aee8298e48d27b Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Tue, 13 May 2025 17:31:09 +0200 Subject: [PATCH 1/2] changes to compile as component of IDF branch release/v5.3 --- cores/esp32/esp32-hal-i2c-slave.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cores/esp32/esp32-hal-i2c-slave.c b/cores/esp32/esp32-hal-i2c-slave.c index 85eddcdfcf4..088c134fb6a 100644 --- a/cores/esp32/esp32-hal-i2c-slave.c +++ b/cores/esp32/esp32-hal-i2c-slave.c @@ -335,8 +335,14 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t } #endif // !defined(CONFIG_IDF_TARGET_ESP32P4) +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 3, 3) + i2c_ll_set_mode(i2c->dev, I2C_BUS_MODE_SLAVE); + i2c_ll_enable_pins_open_drain(i2c->dev, true); + i2c_ll_enable_fifo_mode(i2c->dev, true); +#else i2c_ll_slave_init(i2c->dev); i2c_ll_slave_set_fifo_mode(i2c->dev, true); +#endif i2c_ll_set_slave_addr(i2c->dev, slaveID, false); i2c_ll_set_tout(i2c->dev, I2C_LL_MAX_TIMEOUT); i2c_slave_set_frequency(i2c, frequency); @@ -357,7 +363,11 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t i2c_ll_disable_intr_mask(i2c->dev, I2C_LL_INTR_MASK); i2c_ll_clear_intr_mask(i2c->dev, I2C_LL_INTR_MASK); +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 3, 3) + i2c_ll_enable_fifo_mode(i2c->dev, true); +#else i2c_ll_slave_set_fifo_mode(i2c->dev, true); +#endif if (!i2c->intr_handle) { uint32_t flags = ESP_INTR_FLAG_LOWMED | ESP_INTR_FLAG_SHARED; From cde78c4b181102fc8197d6e1f5d1df27dfd5b656 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Tue, 13 May 2025 18:58:59 +0200 Subject: [PATCH 2/2] Update esp32-hal-i2c-slave.c --- cores/esp32/esp32-hal-i2c-slave.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/cores/esp32/esp32-hal-i2c-slave.c b/cores/esp32/esp32-hal-i2c-slave.c index 088c134fb6a..edaa15aaab5 100644 --- a/cores/esp32/esp32-hal-i2c-slave.c +++ b/cores/esp32/esp32-hal-i2c-slave.c @@ -338,11 +338,10 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 3, 3) i2c_ll_set_mode(i2c->dev, I2C_BUS_MODE_SLAVE); i2c_ll_enable_pins_open_drain(i2c->dev, true); - i2c_ll_enable_fifo_mode(i2c->dev, true); #else i2c_ll_slave_init(i2c->dev); - i2c_ll_slave_set_fifo_mode(i2c->dev, true); #endif + i2c_ll_slave_set_fifo_mode(i2c->dev, true); i2c_ll_set_slave_addr(i2c->dev, slaveID, false); i2c_ll_set_tout(i2c->dev, I2C_LL_MAX_TIMEOUT); i2c_slave_set_frequency(i2c, frequency); @@ -363,11 +362,7 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t i2c_ll_disable_intr_mask(i2c->dev, I2C_LL_INTR_MASK); i2c_ll_clear_intr_mask(i2c->dev, I2C_LL_INTR_MASK); -#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 3, 3) - i2c_ll_enable_fifo_mode(i2c->dev, true); -#else i2c_ll_slave_set_fifo_mode(i2c->dev, true); -#endif if (!i2c->intr_handle) { uint32_t flags = ESP_INTR_FLAG_LOWMED | ESP_INTR_FLAG_SHARED;