Browse Source

feat(pm): removed dependency on driver component

Marius Vikhammer 2 years ago
parent
commit
d293ad94bd

+ 1 - 1
components/driver/uart/uart.c

@@ -27,7 +27,7 @@
 #include "driver/rtc_io.h"
 #include "driver/uart_select.h"
 #include "driver/lp_io.h"
-#include "esp_private/uart_private.h"
+#include "esp_private/uart_share_hw_ctrl.h"
 #include "esp_private/periph_ctrl.h"
 #include "esp_clk_tree.h"
 #include "sdkconfig.h"

+ 0 - 0
components/driver/include/esp_private/uart_private.h → components/esp_hw_support/include/esp_private/uart_share_hw_ctrl.h


+ 1 - 1
components/esp_pm/CMakeLists.txt

@@ -6,5 +6,5 @@ endif()
 
 idf_component_register(SRCS "pm_locks.c" "pm_trace.c" "pm_impl.c"
                        INCLUDE_DIRS include
-                       PRIV_REQUIRES esp_system driver esp_driver_gpio esp_timer
+                       PRIV_REQUIRES esp_system esp_driver_gpio esp_timer
                        LDFRAGMENTS linker.lf)

+ 10 - 3
components/esp_pm/pm_impl.c

@@ -15,14 +15,15 @@
 #include "esp_pm.h"
 #include "esp_log.h"
 #include "esp_cpu.h"
+#include "esp_clk_tree.h"
+#include "soc/soc_caps.h"
 
 #include "esp_private/crosscore_int.h"
-#include "esp_private/uart_private.h"
+#include "esp_private/periph_ctrl.h"
 
 #include "soc/rtc.h"
 #include "hal/uart_ll.h"
 #include "hal/uart_types.h"
-#include "driver/uart.h"
 #include "driver/gpio.h"
 
 #include "freertos/FreeRTOS.h"
@@ -43,11 +44,17 @@
 #include "esp_private/sleep_cpu.h"
 #include "esp_private/sleep_gpio.h"
 #include "esp_private/sleep_modem.h"
+#include "esp_private/uart_share_hw_ctrl.h"
 #include "esp_sleep.h"
 #include "esp_memory_utils.h"
 
 #include "sdkconfig.h"
 
+#if SOC_PERIPH_CLK_CTRL_SHARED
+#define HP_UART_SRC_CLK_ATOMIC()       PERIPH_RCC_ATOMIC()
+#else
+#define HP_UART_SRC_CLK_ATOMIC()
+#endif
 
 #define MHZ (1000000)
 
@@ -903,7 +910,7 @@ void esp_pm_impl_init(void)
         uart_ll_set_sclk(UART_LL_GET_HW(CONFIG_ESP_CONSOLE_UART_NUM), (soc_module_clk_t)clk_source);
     }
     uint32_t sclk_freq;
-    esp_err_t err = uart_get_sclk_freq(clk_source, &sclk_freq);
+    esp_err_t err = esp_clk_tree_src_get_freq_hz((soc_module_clk_t)clk_source, ESP_CLK_TREE_SRC_FREQ_PRECISION_CACHED, &sclk_freq);
     assert(err == ESP_OK);
     HP_UART_SRC_CLK_ATOMIC() {
         uart_ll_set_baudrate(UART_LL_GET_HW(CONFIG_ESP_CONSOLE_UART_NUM), CONFIG_ESP_CONSOLE_UART_BAUDRATE, sclk_freq);

+ 1 - 1
components/esp_system/test_apps/esp_system_unity_tests/main/test_sleep.c

@@ -26,7 +26,7 @@
 #include "esp_rom_sys.h"
 #include "esp_timer.h"
 #include "esp_private/esp_clk.h"
-#include "esp_private/uart_private.h"
+#include "esp_private/uart_share_hw_ctrl.h"
 #include "esp_random.h"
 #include "nvs_flash.h"
 #include "nvs.h"

+ 1 - 1
components/ulp/lp_core/lp_core_uart.c

@@ -13,7 +13,7 @@
 #include "hal/rtc_io_types.h"
 #include "esp_clk_tree.h"
 #include "esp_private/periph_ctrl.h"
-#include "esp_private/uart_private.h"
+#include "esp_private/uart_share_hw_ctrl.h"
 
 #define LP_UART_PORT_NUM    LP_UART_NUM_0
 #define LP_UART_TX_IDLE_NUM_DEFAULT     (0U)