Skip to content

Commit 1c085a4

Browse files
author
Marek Matej
committed
drivers: clock: esp32: fix ROM baudrate
Allow to update ROM Uart baudrate each time the clocks are reconfigured. Signed-off-by: Marek Matej <[email protected]>
1 parent 038fc8b commit 1c085a4

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

drivers/clock_control/clock_control_esp32.c

+5-9
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,12 @@ static int esp32_cpu_clock_configure(const struct esp32_cpu_clock_config *cpu_cf
498498
esp_cpu_set_cycle_count((uint64_t)esp_cpu_get_cycle_count() * rtc_clk_cfg.cpu_freq_mhz /
499499
old_config.freq_mhz);
500500

501+
#if ESP_ROM_UART_CLK_IS_XTAL
502+
uart_clock_src_hz = (uint32_t)rtc_clk_xtal_freq_get() * MHZ(1);
503+
#else
501504
uart_clock_src_hz = esp_clk_apb_freq();
505+
#endif
506+
502507
#if !defined(ESP_CONSOLE_UART_NONE)
503508
esp_rom_uart_set_clock_baudrate(ESP_CONSOLE_UART_NUM, uart_clock_src_hz,
504509
ESP_CONSOLE_UART_BAUDRATE);
@@ -545,7 +550,6 @@ static int clock_control_esp32_init(const struct device *dev)
545550
soc_reset_reason_t rst_reas;
546551
rtc_config_t rtc_cfg = RTC_CONFIG_DEFAULT();
547552
bool ret;
548-
uint32_t uart_clock_src_hz;
549553

550554
rst_reas = esp_rom_get_reset_reason(0);
551555
#if !defined(CONFIG_SOC_SERIES_ESP32)
@@ -565,14 +569,6 @@ static int clock_control_esp32_init(const struct device *dev)
565569
return ret;
566570
}
567571

568-
#if defined(CONFIG_SOC_SERIES_ESP32S3)
569-
uart_clock_src_hz = (uint32_t)rtc_clk_xtal_freq_get() * MHZ(1);
570-
#if !defined(ESP_CONSOLE_UART_NONE)
571-
esp_rom_uart_set_clock_baudrate(ESP_CONSOLE_UART_NUM, uart_clock_src_hz,
572-
ESP_CONSOLE_UART_BAUDRATE);
573-
#endif
574-
#endif
575-
576572
rtc_clk_fast_src_set(cfg->rtc.rtc_fast_clock_src);
577573

578574
ret = esp32_select_rtc_slow_clk(cfg->rtc.rtc_slow_clock_src);

0 commit comments

Comments
 (0)