From 82f26471f0857acacda19f37be27431e161868eb Mon Sep 17 00:00:00 2001 From: wanlei Date: Thu, 28 Dec 2023 14:54:19 +0800 Subject: [PATCH] feat(ledc): make esp_driver_ledc as component --- components/driver/CMakeLists.txt | 10 +------ components/driver/Kconfig | 2 -- .../driver/test_apps/.build-test-rules.yml | 4 --- .../driver/test_apps/ledc/CMakeLists.txt | 21 -------------- components/esp_driver_ledc/CMakeLists.txt | 14 ++++++++++ .../Kconfig.ledc => esp_driver_ledc/Kconfig} | 4 +-- .../include/driver/ledc.h | 8 +++--- .../ledc => esp_driver_ledc}/linker.lf | 2 +- .../ledc => esp_driver_ledc/src}/ledc.c | 28 +++++++++---------- .../test_apps/.build-test-rules.yml | 7 +++++ .../test_apps/ledc/CMakeLists.txt | 22 +++++++++++++++ .../test_apps/ledc/README.md | 0 .../test_apps/ledc/main/CMakeLists.txt | 8 ++++-- .../test_apps/ledc/main/test_app_main.c | 0 .../test_apps/ledc/main/test_ledc.c | 2 +- .../test_apps/ledc/pytest_ledc.py | 0 .../test_apps/ledc/sdkconfig.ci.iram_safe | 0 .../test_apps/ledc/sdkconfig.ci.release | 0 .../test_apps/ledc/sdkconfig.defaults | 0 .../test_apps/ledc/sdkconfig.defaults.esp32s3 | 0 docs/doxygen/Doxyfile | 2 +- .../release-5.x/5.3/peripherals.rst | 1 + .../release-5.x/5.3/peripherals.rst | 1 + .../light_driver/CMakeLists.txt | 2 +- examples/peripherals/.build-test-rules.yml | 4 +++ 25 files changed, 79 insertions(+), 63 deletions(-) delete mode 100644 components/driver/test_apps/ledc/CMakeLists.txt create mode 100644 components/esp_driver_ledc/CMakeLists.txt rename components/{driver/ledc/Kconfig.ledc => esp_driver_ledc/Kconfig} (87%) rename components/{driver/ledc => esp_driver_ledc}/include/driver/ledc.h (98%) rename components/{driver/ledc => esp_driver_ledc}/linker.lf (89%) rename components/{driver/ledc => esp_driver_ledc/src}/ledc.c (98%) create mode 100644 components/esp_driver_ledc/test_apps/.build-test-rules.yml create mode 100644 components/esp_driver_ledc/test_apps/ledc/CMakeLists.txt rename components/{driver => esp_driver_ledc}/test_apps/ledc/README.md (100%) rename components/{driver => esp_driver_ledc}/test_apps/ledc/main/CMakeLists.txt (53%) rename components/{driver => esp_driver_ledc}/test_apps/ledc/main/test_app_main.c (100%) rename components/{driver => esp_driver_ledc}/test_apps/ledc/main/test_ledc.c (99%) rename components/{driver => esp_driver_ledc}/test_apps/ledc/pytest_ledc.py (100%) rename components/{driver => esp_driver_ledc}/test_apps/ledc/sdkconfig.ci.iram_safe (100%) rename components/{driver => esp_driver_ledc}/test_apps/ledc/sdkconfig.ci.release (100%) rename components/{driver => esp_driver_ledc}/test_apps/ledc/sdkconfig.defaults (100%) rename components/{driver => esp_driver_ledc}/test_apps/ledc/sdkconfig.defaults.esp32s3 (100%) diff --git a/components/driver/CMakeLists.txt b/components/driver/CMakeLists.txt index 3c7d4c2fc0..8946bd9bce 100644 --- a/components/driver/CMakeLists.txt +++ b/components/driver/CMakeLists.txt @@ -10,7 +10,6 @@ set(srcs) # Always included headers set(includes "deprecated" "i2c/include" - "ledc/include" "parlio/include" "touch_sensor/include" "twai/include" @@ -54,13 +53,6 @@ if(CONFIG_SOC_I2S_SUPPORTED) list(APPEND srcs "deprecated/i2s_legacy.c") endif() -# LEDC related source files -if(CONFIG_SOC_LEDC_SUPPORTED) - list(APPEND srcs "ledc/ledc.c") - - list(APPEND ldfragments "ledc/linker.lf") -endif() - # MCPWM legacy driver if(CONFIG_SOC_MCPWM_SUPPORTED) list(APPEND srcs "deprecated/mcpwm_legacy.c") @@ -127,7 +119,7 @@ else() esp_driver_gpio esp_driver_pcnt esp_driver_gptimer esp_driver_spi esp_driver_mcpwm esp_driver_ana_cmpr esp_driver_i2s esp_driver_sdmmc esp_driver_sdspi esp_driver_sdio esp_driver_dac esp_driver_rmt esp_driver_tsens esp_driver_sdm esp_driver_i2c - esp_driver_uart + esp_driver_uart esp_driver_ledc LDFRAGMENTS ${ldfragments} ) endif() diff --git a/components/driver/Kconfig b/components/driver/Kconfig index 01d8babbd8..e45f34c994 100644 --- a/components/driver/Kconfig +++ b/components/driver/Kconfig @@ -101,6 +101,4 @@ menu "Driver Configurations" endmenu # Parallel IO Configuration - orsource "./ledc/Kconfig.ledc" - endmenu # Driver configurations diff --git a/components/driver/test_apps/.build-test-rules.yml b/components/driver/test_apps/.build-test-rules.yml index 735ddbaa99..aa51a239a2 100644 --- a/components/driver/test_apps/.build-test-rules.yml +++ b/components/driver/test_apps/.build-test-rules.yml @@ -18,10 +18,6 @@ components/driver/test_apps/i2s_test_apps/legacy_i2s_driver: temporary: true reason: lack of runners -components/driver/test_apps/ledc: - disable: - - if: SOC_LEDC_SUPPORTED != 1 - components/driver/test_apps/legacy_adc_driver: disable: - if: SOC_ADC_SUPPORTED != 1 diff --git a/components/driver/test_apps/ledc/CMakeLists.txt b/components/driver/test_apps/ledc/CMakeLists.txt deleted file mode 100644 index 5d032f7d92..0000000000 --- a/components/driver/test_apps/ledc/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -# This is the project CMakeLists.txt file for the test subproject -cmake_minimum_required(VERSION 3.16) - -# "Trim" the build. Include the minimal set of components, main, and anything it depends on. -set(COMPONENTS main) - -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(ledc_test) - -if(CONFIG_COMPILER_DUMP_RTL_FILES) - add_custom_target(check_test_app_sections ALL - COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py - --rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/ - --elf-file ${CMAKE_BINARY_DIR}/ledc_test.elf - find-refs - --from-sections=.iram0.text - --to-sections=.flash.text,.flash.rodata - --exit-code - DEPENDS ${elf} - ) -endif() diff --git a/components/esp_driver_ledc/CMakeLists.txt b/components/esp_driver_ledc/CMakeLists.txt new file mode 100644 index 0000000000..8958ebaa93 --- /dev/null +++ b/components/esp_driver_ledc/CMakeLists.txt @@ -0,0 +1,14 @@ + +set(srcs) +set(public_include "include") + +if(CONFIG_SOC_LEDC_SUPPORTED) + list(APPEND srcs "src/ledc.c") +endif() + +idf_component_register( + SRCS ${srcs} + INCLUDE_DIRS ${public_include} + PRIV_REQUIRES "esp_pm" "esp_driver_gpio" + LDFRAGMENTS "linker.lf" +) diff --git a/components/driver/ledc/Kconfig.ledc b/components/esp_driver_ledc/Kconfig similarity index 87% rename from components/driver/ledc/Kconfig.ledc rename to components/esp_driver_ledc/Kconfig index 74f8b7a37b..940f4db533 100644 --- a/components/driver/ledc/Kconfig.ledc +++ b/components/esp_driver_ledc/Kconfig @@ -1,4 +1,4 @@ -menu "LEDC Configuration" +menu "ESP-Driver:LEDC Configurations" config LEDC_CTRL_FUNC_IN_IRAM bool "Place LEDC control functions into IRAM" @@ -8,4 +8,4 @@ menu "LEDC Configuration" so that these functions can be IRAM-safe and able to be called in an IRAM context. Enabling this option can improve driver performance as well. -endmenu # LEDC Configuration +endmenu diff --git a/components/driver/ledc/include/driver/ledc.h b/components/esp_driver_ledc/include/driver/ledc.h similarity index 98% rename from components/driver/ledc/include/driver/ledc.h rename to components/esp_driver_ledc/include/driver/ledc.h index d4a149c9bf..2ce9877c79 100644 --- a/components/driver/ledc/include/driver/ledc.h +++ b/components/esp_driver_ledc/include/driver/ledc.h @@ -634,10 +634,10 @@ esp_err_t ledc_cb_register(ledc_mode_t speed_mode, ledc_channel_t channel, ledc_ * @note Be aware of the maximum value available on each element */ typedef struct { - uint32_t dir : 1; /*!< Duty change direction. Set 1 as increase, 0 as decrease */ - uint32_t cycle_num : SOC_LEDC_FADE_PARAMS_BIT_WIDTH; /*!< Number of PWM cycles of each step [0, 2**SOC_LEDC_FADE_PARAMS_BIT_WIDTH-1] */ - uint32_t scale : SOC_LEDC_FADE_PARAMS_BIT_WIDTH; /*!< Duty change of each step [0, 2**SOC_LEDC_FADE_PARAMS_BIT_WIDTH-1] */ - uint32_t step_num : SOC_LEDC_FADE_PARAMS_BIT_WIDTH; /*!< Total number of steps in one hardware fade [0, 2**SOC_LEDC_FADE_PARAMS_BIT_WIDTH-1] */ + uint32_t dir : 1; /*!< Duty change direction. Set 1 as increase, 0 as decrease */ + uint32_t cycle_num : SOC_LEDC_FADE_PARAMS_BIT_WIDTH; /*!< Number of PWM cycles of each step [0, 2**SOC_LEDC_FADE_PARAMS_BIT_WIDTH-1] */ + uint32_t scale : SOC_LEDC_FADE_PARAMS_BIT_WIDTH; /*!< Duty change of each step [0, 2**SOC_LEDC_FADE_PARAMS_BIT_WIDTH-1] */ + uint32_t step_num : SOC_LEDC_FADE_PARAMS_BIT_WIDTH; /*!< Total number of steps in one hardware fade [0, 2**SOC_LEDC_FADE_PARAMS_BIT_WIDTH-1] */ } ledc_fade_param_config_t; /** diff --git a/components/driver/ledc/linker.lf b/components/esp_driver_ledc/linker.lf similarity index 89% rename from components/driver/ledc/linker.lf rename to components/esp_driver_ledc/linker.lf index 4119b65081..1bb52d58a1 100644 --- a/components/driver/ledc/linker.lf +++ b/components/esp_driver_ledc/linker.lf @@ -1,5 +1,5 @@ [mapping:ledc_driver] -archive: libdriver.a +archive: libesp_driver_ledc.a entries: if LEDC_CTRL_FUNC_IN_IRAM = y: ledc: ledc_stop (noflash) diff --git a/components/driver/ledc/ledc.c b/components/esp_driver_ledc/src/ledc.c similarity index 98% rename from components/driver/ledc/ledc.c rename to components/esp_driver_ledc/src/ledc.c index 99c6a4cdf9..352a029cc4 100644 --- a/components/driver/ledc/ledc.c +++ b/components/esp_driver_ledc/src/ledc.c @@ -221,7 +221,7 @@ esp_err_t ledc_timer_set(ledc_mode_t speed_mode, ledc_timer_t timer_sel, uint32_ } static IRAM_ATTR esp_err_t ledc_duty_config(ledc_mode_t speed_mode, ledc_channel_t channel, int hpoint_val, -int duty_val, ledc_duty_direction_t duty_direction, uint32_t duty_num, uint32_t duty_cycle, uint32_t duty_scale) + int duty_val, ledc_duty_direction_t duty_direction, uint32_t duty_num, uint32_t duty_cycle, uint32_t duty_scale) { if (hpoint_val >= 0) { ledc_hal_set_hpoint(&(p_ledc_obj[speed_mode]->ledc_hal), channel, hpoint_val); @@ -347,7 +347,7 @@ static inline uint32_t ledc_calculate_divisor(uint32_t src_clk_freq, int freq_hz * NOTE: We are also going to round up the value when necessary, thanks to: * (freq_hz * precision / 2) */ - return ( ( (uint64_t) src_clk_freq << LEDC_LL_FRACTIONAL_BITS ) + freq_hz * precision / 2 ) + return (((uint64_t) src_clk_freq << LEDC_LL_FRACTIONAL_BITS) + freq_hz * precision / 2) / (freq_hz * precision); } @@ -453,7 +453,6 @@ static uint32_t ledc_auto_clk_divisor(ledc_mode_t speed_mode, int freq_hz, uint3 return ret; } - /** * @brief Function setting the LEDC timer divisor with the given source clock, * frequency and resolution. If the clock configuration passed is @@ -462,7 +461,7 @@ static uint32_t ledc_auto_clk_divisor(ledc_mode_t speed_mode, int freq_hz, uint3 static esp_err_t ledc_set_timer_div(ledc_mode_t speed_mode, ledc_timer_t timer_num, ledc_clk_cfg_t clk_cfg, int freq_hz, int duty_resolution) { uint32_t div_param = 0; - const uint32_t precision = ( 0x1 << duty_resolution ); + const uint32_t precision = (0x1 << duty_resolution); /* The clock sources are not initialized on purpose. To produce compiler warning if used but the selector functions * don't set them properly. */ /* Timer-specific mux. Set to timer-specific clock or LEDC_SCLK if a global clock is used. */ @@ -480,7 +479,7 @@ static esp_err_t ledc_set_timer_div(ledc_mode_t speed_mode, ledc_timer_t timer_n /* Before calculating the divisor, we need to have the RC_FAST frequency. * If it hasn't been measured yet, try calibrating it now. */ - if(s_ledc_slow_clk_rc_fast_freq == 0 && ledc_slow_clk_calibrate() == false) { + if (s_ledc_slow_clk_rc_fast_freq == 0 && ledc_slow_clk_calibrate() == false) { goto error; } @@ -554,7 +553,7 @@ static esp_err_t ledc_set_timer_div(ledc_mode_t speed_mode, ledc_timer_t timer_n if (i != timer_num && p_ledc_obj[speed_mode]->glb_clk_is_acquired[i]) { portEXIT_CRITICAL(&ledc_spinlock); ESP_RETURN_ON_FALSE(false, ESP_FAIL, LEDC_TAG, - "timer clock conflict, already is %d but attempt to %d", p_ledc_obj[speed_mode]->glb_clk, glb_clk); + "timer clock conflict, already is %d but attempt to %d", p_ledc_obj[speed_mode]->glb_clk, glb_clk); } } } @@ -593,11 +592,12 @@ static esp_err_t ledc_timer_del(ledc_mode_t speed_mode, ledc_timer_t timer_sel) bool is_configured = true; bool is_deleted = false; portENTER_CRITICAL(&ledc_spinlock); - if (p_ledc_obj[speed_mode]->glb_clk_is_acquired[timer_sel] == false #if SOC_LEDC_HAS_TIMER_SPECIFIC_MUX - && p_ledc_obj[speed_mode]->timer_specific_clk[timer_sel] == LEDC_TIMER_SPECIFIC_CLK_UNINIT + if (p_ledc_obj[speed_mode]->glb_clk_is_acquired[timer_sel] == false && p_ledc_obj[speed_mode]->timer_specific_clk[timer_sel] == LEDC_TIMER_SPECIFIC_CLK_UNINIT) +#else + if (p_ledc_obj[speed_mode]->glb_clk_is_acquired[timer_sel] == false) #endif - ) { + { is_configured = false; } else if (p_ledc_obj[speed_mode]->timer_is_stopped[timer_sel] == true) { is_deleted = true; @@ -974,7 +974,7 @@ static void IRAM_ATTR ledc_fade_isr(void *arg) } else { // Calculate new duty config parameters delta = (s_ledc_fade_rec[speed_mode][channel]->direction == LEDC_DUTY_DIR_DECREASE) ? - (duty_cur - duty_tar) : (duty_tar - duty_cur); + (duty_cur - duty_tar) : (duty_tar - duty_cur); if (delta > scale) { next_duty = duty_cur; step = (delta / scale > LEDC_DUTY_NUM_MAX) ? LEDC_DUTY_NUM_MAX : (delta / scale); @@ -1227,7 +1227,7 @@ esp_err_t ledc_fade_stop(ledc_mode_t speed_mode, ledc_channel_t channel) LEDC_ARG_CHECK(speed_mode < LEDC_SPEED_MODE_MAX, "speed_mode"); LEDC_ARG_CHECK(channel < LEDC_CHANNEL_MAX, "channel"); LEDC_CHECK(p_ledc_obj[speed_mode] != NULL, LEDC_NOT_INIT, ESP_ERR_INVALID_STATE); - LEDC_CHECK(ledc_fade_channel_init_check(speed_mode, channel) == ESP_OK , LEDC_FADE_INIT_ERROR_STR, ESP_FAIL); + LEDC_CHECK(ledc_fade_channel_init_check(speed_mode, channel) == ESP_OK, LEDC_FADE_INIT_ERROR_STR, ESP_FAIL); ledc_fade_t *fade = s_ledc_fade_rec[speed_mode][channel]; ledc_fade_fsm_t state = fade->fsm; bool wait_for_idle = false; @@ -1250,7 +1250,7 @@ esp_err_t ledc_fade_stop(ledc_mode_t speed_mode, ledc_channel_t channel) 1, //uint32_t duty_num, 1, //uint32_t duty_cycle, 0 //uint32_t duty_scale - ); + ); _ledc_update_duty(speed_mode, channel); state = fade->fsm; assert(state != LEDC_FSM_IDLE && state != LEDC_FSM_KILLED_PENDING); @@ -1490,7 +1490,7 @@ esp_err_t ledc_fill_multi_fade_param_list(ledc_mode_t speed_mode, ledc_channel_t uint32_t cycle, scale, step; gamma_corrected_phase_tail = gamma_correction_operator(phase_tail); uint32_t duty_delta = (dir == LEDC_DUTY_DIR_INCREASE) ? (gamma_corrected_phase_tail - gamma_corrected_phase_head) : - (gamma_corrected_phase_head - gamma_corrected_phase_tail); + (gamma_corrected_phase_head - gamma_corrected_phase_tail); uint32_t cycles_per_phase = avg_cycles_per_phase + surplus_cycles_last_phase; if (duty_delta == 0) { scale = 0; @@ -1549,7 +1549,7 @@ esp_err_t ledc_fill_multi_fade_param_list(ledc_mode_t speed_mode, ledc_channel_t } uint32_t remaining_duty_delta = (dir == LEDC_DUTY_DIR_INCREASE) ? (gamma_corrected_phase_tail - gamma_corrected_phase_head) : - (gamma_corrected_phase_head - gamma_corrected_phase_tail); + (gamma_corrected_phase_head - gamma_corrected_phase_tail); if (remaining_duty_delta) { total_fade_range += 1; } diff --git a/components/esp_driver_ledc/test_apps/.build-test-rules.yml b/components/esp_driver_ledc/test_apps/.build-test-rules.yml new file mode 100644 index 0000000000..50e40b72c0 --- /dev/null +++ b/components/esp_driver_ledc/test_apps/.build-test-rules.yml @@ -0,0 +1,7 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +components/esp_driver_ledc/test_apps/ledc: + disable: + - if: SOC_LEDC_SUPPORTED != 1 + depends_components: + - esp_driver_ledc diff --git a/components/esp_driver_ledc/test_apps/ledc/CMakeLists.txt b/components/esp_driver_ledc/test_apps/ledc/CMakeLists.txt new file mode 100644 index 0000000000..1a8d35567e --- /dev/null +++ b/components/esp_driver_ledc/test_apps/ledc/CMakeLists.txt @@ -0,0 +1,22 @@ +# This is the project CMakeLists.txt file for the test subproject +cmake_minimum_required(VERSION 3.16) + +# "Trim" the build. Include the minimal set of components, main, and anything it depends on. +set(COMPONENTS main) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(ledc_test) + +if(CONFIG_COMPILER_DUMP_RTL_FILES) + add_custom_target( + check_test_app_sections ALL + COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py + --rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/esp_driver_ledc/,${CMAKE_BINARY_DIR}/esp-idf/hal/ + --elf-file ${CMAKE_BINARY_DIR}/ledc_test.elf + find-refs + --from-sections=.iram0.text + --to-sections=.flash.text,.flash.rodata + --exit-code + DEPENDS ${elf} + ) +endif() diff --git a/components/driver/test_apps/ledc/README.md b/components/esp_driver_ledc/test_apps/ledc/README.md similarity index 100% rename from components/driver/test_apps/ledc/README.md rename to components/esp_driver_ledc/test_apps/ledc/README.md diff --git a/components/driver/test_apps/ledc/main/CMakeLists.txt b/components/esp_driver_ledc/test_apps/ledc/main/CMakeLists.txt similarity index 53% rename from components/driver/test_apps/ledc/main/CMakeLists.txt rename to components/esp_driver_ledc/test_apps/ledc/main/CMakeLists.txt index 5a5d4f716a..63794907bf 100644 --- a/components/driver/test_apps/ledc/main/CMakeLists.txt +++ b/components/esp_driver_ledc/test_apps/ledc/main/CMakeLists.txt @@ -3,6 +3,8 @@ set(srcs "test_app_main.c" # In order for the cases defined by `TEST_CASE` to be linked into the final elf, # the component can be registered as WHOLE_ARCHIVE -idf_component_register(SRCS ${srcs} - PRIV_REQUIRES unity esp_driver_pcnt driver esp_timer esp_psram - WHOLE_ARCHIVE) +idf_component_register( + SRCS ${srcs} + PRIV_REQUIRES unity esp_driver_pcnt esp_driver_ledc esp_driver_gpio esp_timer esp_psram + WHOLE_ARCHIVE +) diff --git a/components/driver/test_apps/ledc/main/test_app_main.c b/components/esp_driver_ledc/test_apps/ledc/main/test_app_main.c similarity index 100% rename from components/driver/test_apps/ledc/main/test_app_main.c rename to components/esp_driver_ledc/test_apps/ledc/main/test_app_main.c diff --git a/components/driver/test_apps/ledc/main/test_ledc.c b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc.c similarity index 99% rename from components/driver/test_apps/ledc/main/test_ledc.c rename to components/esp_driver_ledc/test_apps/ledc/main/test_ledc.c index fd7fda1880..1d3f7b6b80 100644 --- a/components/driver/test_apps/ledc/main/test_ledc.c +++ b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc.c @@ -589,7 +589,7 @@ TEST_CASE("LEDC set and get frequency", "[ledc][timeout=60]") #if SOC_CLK_TREE_SUPPORTED static void timer_set_clk_src_and_freq_test(ledc_mode_t speed_mode, ledc_clk_cfg_t clk_src, uint32_t duty_res, - uint32_t freq_hz) + uint32_t freq_hz) { ledc_timer_config_t ledc_time_config = { .speed_mode = speed_mode, diff --git a/components/driver/test_apps/ledc/pytest_ledc.py b/components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py similarity index 100% rename from components/driver/test_apps/ledc/pytest_ledc.py rename to components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py diff --git a/components/driver/test_apps/ledc/sdkconfig.ci.iram_safe b/components/esp_driver_ledc/test_apps/ledc/sdkconfig.ci.iram_safe similarity index 100% rename from components/driver/test_apps/ledc/sdkconfig.ci.iram_safe rename to components/esp_driver_ledc/test_apps/ledc/sdkconfig.ci.iram_safe diff --git a/components/driver/test_apps/ledc/sdkconfig.ci.release b/components/esp_driver_ledc/test_apps/ledc/sdkconfig.ci.release similarity index 100% rename from components/driver/test_apps/ledc/sdkconfig.ci.release rename to components/esp_driver_ledc/test_apps/ledc/sdkconfig.ci.release diff --git a/components/driver/test_apps/ledc/sdkconfig.defaults b/components/esp_driver_ledc/test_apps/ledc/sdkconfig.defaults similarity index 100% rename from components/driver/test_apps/ledc/sdkconfig.defaults rename to components/esp_driver_ledc/test_apps/ledc/sdkconfig.defaults diff --git a/components/driver/test_apps/ledc/sdkconfig.defaults.esp32s3 b/components/esp_driver_ledc/test_apps/ledc/sdkconfig.defaults.esp32s3 similarity index 100% rename from components/driver/test_apps/ledc/sdkconfig.defaults.esp32s3 rename to components/esp_driver_ledc/test_apps/ledc/sdkconfig.defaults.esp32s3 diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index d92b07e169..bc0c1e3269 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -73,7 +73,6 @@ INPUT = \ $(PROJECT_PATH)/components/bt/host/bluedroid/api/include/api/esp_spp_api.h \ $(PROJECT_PATH)/components/bt/host/nimble/esp-hci/include/esp_nimble_hci.h \ $(PROJECT_PATH)/components/console/esp_console.h \ - $(PROJECT_PATH)/components/driver/ledc/include/driver/ledc.h \ $(PROJECT_PATH)/components/driver/parlio/include/driver/parlio_tx.h \ $(PROJECT_PATH)/components/driver/parlio/include/driver/parlio_types.h \ $(PROJECT_PATH)/components/driver/touch_sensor/include/driver/touch_sensor_common.h \ @@ -108,6 +107,7 @@ INPUT = \ $(PROJECT_PATH)/components/esp_driver_gptimer/include/driver/gptimer.h \ $(PROJECT_PATH)/components/esp_driver_gptimer/include/driver/gptimer_etm.h \ $(PROJECT_PATH)/components/esp_driver_gptimer/include/driver/gptimer_types.h \ + $(PROJECT_PATH)/components/esp_driver_ledc/include/driver/ledc.h \ $(PROJECT_PATH)/components/esp_driver_mcpwm/include/driver/mcpwm_cap.h \ $(PROJECT_PATH)/components/esp_driver_mcpwm/include/driver/mcpwm_cmpr.h \ $(PROJECT_PATH)/components/esp_driver_mcpwm/include/driver/mcpwm_etm.h \ diff --git a/docs/en/migration-guides/release-5.x/5.3/peripherals.rst b/docs/en/migration-guides/release-5.x/5.3/peripherals.rst index 1ace4952cf..fef72ade67 100644 --- a/docs/en/migration-guides/release-5.x/5.3/peripherals.rst +++ b/docs/en/migration-guides/release-5.x/5.3/peripherals.rst @@ -24,6 +24,7 @@ In order to control the dependence of other components on drivers at a smaller g - `esp_driver_sdm` - Driver for Sigma-Delta Modulator - `esp_driver_i2c` - Driver for I2C - `esp_driver_uart` - Driver for UART +- `esp_driver_ledc` - Driver for LEDC For compatibility, the original `driver`` component is still treated as an all-in-one component by registering these `esp_driver_xyz`` components as its public dependencies. In other words, you do not need to modify the CMake file of an existing project, but you now have a way to specify the specific peripheral driver that your project depends on. diff --git a/docs/zh_CN/migration-guides/release-5.x/5.3/peripherals.rst b/docs/zh_CN/migration-guides/release-5.x/5.3/peripherals.rst index 09d3f4c59c..e7cad960c5 100644 --- a/docs/zh_CN/migration-guides/release-5.x/5.3/peripherals.rst +++ b/docs/zh_CN/migration-guides/release-5.x/5.3/peripherals.rst @@ -24,6 +24,7 @@ - `esp_driver_sdm` - Sigma-Delta 调制器驱动 - `esp_driver_i2c` - I2C 驱动 - `esp_driver_uart` - UART 驱动 +- `esp_driver_ledc` - LEDC 驱动 为了兼容性,原来的 `driver` 组件仍然存在,并作为一个 “all-in-one" 的组件,将以上这些 `esp_driver_xyz` 组件注册成自己的公共依赖。换句话说,你无需修改既有项目的 CMake 文件,但是你现在多了一个途径去指定你项目依赖的具体的外设驱动。 diff --git a/examples/bluetooth/esp_ble_mesh/common_components/light_driver/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/common_components/light_driver/CMakeLists.txt index fe06e61668..8e5cf4e70e 100644 --- a/examples/bluetooth/esp_ble_mesh/common_components/light_driver/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/common_components/light_driver/CMakeLists.txt @@ -7,6 +7,6 @@ set(COMPONENT_SRCS set(COMPONENT_ADD_INCLUDEDIRS ". include") # requirements can't depend on config -set(COMPONENT_REQUIRES example_nvs driver esp_driver_gpio) +set(COMPONENT_REQUIRES example_nvs driver esp_driver_gpio esp_driver_ledc) register_component() diff --git a/examples/peripherals/.build-test-rules.yml b/examples/peripherals/.build-test-rules.yml index b2ceb4fcb3..58d520907d 100644 --- a/examples/peripherals/.build-test-rules.yml +++ b/examples/peripherals/.build-test-rules.yml @@ -169,10 +169,14 @@ examples/peripherals/lcd/tjpgd: examples/peripherals/ledc: disable: - if: SOC_LEDC_SUPPORTED != 1 + depends_components: + - esp_driver_ledc examples/peripherals/ledc/ledc_gamma_curve_fade: disable: - if: SOC_LEDC_SUPPORTED != 1 or SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED != 1 + depends_components: + - esp_driver_ledc examples/peripherals/mcpwm: disable: