-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Open
Copy link
Labels
bugThe issue is a bug, or the PR is fixing a bugThe issue is a bug, or the PR is fixing a bugplatform: ESP32Espressif ESP32Espressif ESP32
Description
Describe the bug
Just confirmed with zephyr ref 2a88cb5 on my custom esp32s3 hardware:
Since PR 91027 was merged, the ledc pwm clock source selection uses RC_FAST automatically. Since I don't have the I2C drivers enabled and thus preventing periph_rtc_dig_clk8m_enable()
from ever getting called, the line 162 channel->clock_src_hz = periph_rtc_dig_clk8m_get_freq();
sets clock_src_hz to zero in pwm_led_esp32_timer_config()
.
This makes the pwm code print errors to the log and prevents it from working.
My current workaround is to patch components/esp_hw_support/clk_ctrl_os.c
like this:
diff --git a/components/esp_hw_support/clk_ctrl_os.c b/components/esp_hw_support/clk_ctrl_os.c
index 14ba0446d1..7a9989fb26 100644
--- a/components/esp_hw_support/clk_ctrl_os.c
+++ b/components/esp_hw_support/clk_ctrl_os.c
@@ -46,6 +46,11 @@ uint32_t periph_rtc_dig_clk8m_get_freq(void)
/* Workaround: CLK8M calibration cannot be performed, we can only return its theoretic value */
return SOC_CLK_RC_FAST_FREQ_APPROX;
#else
+#if SOC_CLK_RC_FAST_SUPPORT_CALIBRATION
+ if (s_rc_fast_freq == 0) {
+ s_rc_fast_freq = esp_clk_tree_rc_fast_get_freq_hz(ESP_CLK_TREE_SRC_FREQ_PRECISION_EXACT);
+ }
+#endif
return s_rc_fast_freq;
#endif
}
Regression
- This is a regression.
Steps to reproduce
- compile the blinky pwm sample with logging on zephyr version >= v4.2.0 on any esp32s3 board
- start debugging with espressif monitor
- observe the error messages and the non-working pwm
Relevant log output
Impact
Functional Limitation
Environment
No response
Additional Context
No response
Metadata
Metadata
Assignees
Labels
bugThe issue is a bug, or the PR is fixing a bugThe issue is a bug, or the PR is fixing a bugplatform: ESP32Espressif ESP32Espressif ESP32