Skip to content

Commit 81269ec

Browse files
committed
Fix lib builder errors
1 parent fcd64f7 commit 81269ec

File tree

3 files changed

+40
-4
lines changed

3 files changed

+40
-4
lines changed

cores/esp32/esp32-hal-i2c-slave.c

+19-2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,19 @@
4747
#include "esp32-hal-log.h"
4848
#include "esp32-hal-i2c-slave.h"
4949
#include "esp32-hal-periman.h"
50+
#include "esp_private/periph_ctrl.h"
51+
52+
#if SOC_PERIPH_CLK_CTRL_SHARED
53+
#define I2C_CLOCK_SRC_ATOMIC() PERIPH_RCC_ATOMIC()
54+
#else
55+
#define I2C_CLOCK_SRC_ATOMIC()
56+
#endif
57+
58+
#if !SOC_RCC_IS_INDEPENDENT
59+
#define I2C_RCC_ATOMIC() PERIPH_RCC_ATOMIC()
60+
#else
61+
#define I2C_RCC_ATOMIC()
62+
#endif
5063

5164
#define I2C_SLAVE_USE_RX_QUEUE 0 // 1: Queue, 0: RingBuffer
5265

@@ -535,10 +548,14 @@ static bool i2c_slave_set_frequency(i2c_slave_struct_t *i2c, uint32_t clk_speed)
535548
i2c_hal_clk_config_t clk_cal;
536549
#if SOC_I2C_SUPPORT_APB
537550
i2c_ll_master_cal_bus_clk(APB_CLK_FREQ, clk_speed, &clk_cal);
538-
i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_APB); /*!< I2C source clock from APB, 80M*/
551+
I2C_CLOCK_SRC_ATOMIC() {
552+
i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_APB); /*!< I2C source clock from APB, 80M*/
553+
}
539554
#elif SOC_I2C_SUPPORT_XTAL
540555
i2c_ll_master_cal_bus_clk(XTAL_CLK_FREQ, clk_speed, &clk_cal);
541-
i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_XTAL); /*!< I2C source clock from XTAL, 40M */
556+
I2C_CLOCK_SRC_ATOMIC() {
557+
i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_XTAL); /*!< I2C source clock from XTAL, 40M */
558+
}
542559
#endif
543560
i2c_ll_set_txfifo_empty_thr(i2c->dev, a);
544561
i2c_ll_set_rxfifo_full_thr(i2c->dev, SOC_I2C_FIFO_LEN - a);

cores/esp32/esp32-hal-i2c.c

+16-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,19 @@
2929
#include "hal/i2c_ll.h"
3030
#include "driver/i2c.h"
3131
#include "esp32-hal-periman.h"
32+
#include "esp_private/periph_ctrl.h"
33+
34+
#if SOC_PERIPH_CLK_CTRL_SHARED
35+
#define I2C_CLOCK_SRC_ATOMIC() PERIPH_RCC_ATOMIC()
36+
#else
37+
#define I2C_CLOCK_SRC_ATOMIC()
38+
#endif
39+
40+
#if !SOC_RCC_IS_INDEPENDENT
41+
#define I2C_RCC_ATOMIC() PERIPH_RCC_ATOMIC()
42+
#else
43+
#define I2C_RCC_ATOMIC()
44+
#endif
3245

3346
#if SOC_I2C_SUPPORT_APB || SOC_I2C_SUPPORT_XTAL
3447
#include "esp_private/esp_clk.h"
@@ -388,7 +401,9 @@ esp_err_t i2cSetClock(uint8_t i2c_num, uint32_t frequency) {
388401
periph_rtc_dig_clk8m_enable();
389402
}
390403
#endif
391-
i2c_hal_set_bus_timing(&(hal), frequency, i2c_clk_alloc[src_clk].clk, i2c_clk_alloc[src_clk].clk_freq);
404+
I2C_CLOCK_SRC_ATOMIC() {
405+
i2c_hal_set_bus_timing(&(hal), frequency, i2c_clk_alloc[src_clk].clk, i2c_clk_alloc[src_clk].clk_freq);
406+
}
392407
bus[i2c_num].frequency = frequency;
393408
//Clock Stretching Timeout: 20b:esp32, 5b:esp32-c3, 24b:esp32-s2
394409
i2c_set_timeout((i2c_port_t)i2c_num, I2C_LL_MAX_TIMEOUT);

libraries/PPP/src/PPP.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <string>
88
#include "driver/uart.h"
99
#include "hal/uart_ll.h"
10+
#include "esp_private/uart_share_hw_ctrl.h"
1011

1112
#define PPP_CMD_MODE_CHECK(x) \
1213
if (_dce == NULL) { \
@@ -653,7 +654,10 @@ bool PPPClass::setBaudrate(int baudrate) {
653654
log_e("uart_get_sclk_freq failed with %d %s", err, esp_err_to_name(err));
654655
return false;
655656
}
656-
uart_ll_set_baudrate(UART_LL_GET_HW(_uart_num), (uint32_t)baudrate, sclk_freq);
657+
658+
HP_UART_SRC_CLK_ATOMIC() {
659+
uart_ll_set_baudrate(UART_LL_GET_HW(_uart_num), (uint32_t)baudrate, sclk_freq);
660+
}
657661

658662
return true;
659663
}

0 commit comments

Comments
 (0)