11/*
2- * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
2+ * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
33 *
44 * SPDX-License-Identifier: Apache-2.0
55 */
@@ -20,17 +20,19 @@ static const char *TAG = "gpio-filter";
2020 */
2121typedef struct gpio_pin_glitch_filter_t {
2222 gpio_glitch_filter_t base ;
23- esp_pm_lock_handle_t pm_lock ;
2423#if CONFIG_PM_ENABLE
24+ esp_pm_lock_handle_t pm_lock ;
2525 char pm_lock_name [GLITCH_FILTER_PM_LOCK_NAME_LEN_MAX ]; // pm lock name
2626#endif
2727} gpio_pin_glitch_filter_t ;
2828
2929static esp_err_t gpio_filter_destroy (gpio_pin_glitch_filter_t * filter )
3030{
31+ #if CONFIG_PM_ENABLE
3132 if (filter -> pm_lock ) {
3233 esp_pm_lock_delete (filter -> pm_lock );
3334 }
35+ #endif
3436
3537 free (filter );
3638 return ESP_OK ;
@@ -46,12 +48,14 @@ static esp_err_t gpio_pin_glitch_filter_del(gpio_glitch_filter_t *filter)
4648static esp_err_t gpio_pin_glitch_filter_enable (gpio_glitch_filter_t * filter )
4749{
4850 ESP_RETURN_ON_FALSE (filter -> fsm == GLITCH_FILTER_FSM_INIT , ESP_ERR_INVALID_STATE , TAG , "filter not in init state" );
49- gpio_pin_glitch_filter_t * pin_filter = __containerof (filter , gpio_pin_glitch_filter_t , base );
51+ [[ maybe_unused ]] gpio_pin_glitch_filter_t * pin_filter = __containerof (filter , gpio_pin_glitch_filter_t , base );
5052
53+ #if CONFIG_PM_ENABLE
5154 // acquire pm lock
5255 if (pin_filter -> pm_lock ) {
5356 esp_pm_lock_acquire (pin_filter -> pm_lock );
5457 }
58+ #endif
5559
5660 gpio_ll_pin_filter_enable (NULL , filter -> gpio_num );
5761 filter -> fsm = GLITCH_FILTER_FSM_ENABLE ;
@@ -61,14 +65,16 @@ static esp_err_t gpio_pin_glitch_filter_enable(gpio_glitch_filter_t *filter)
6165static esp_err_t gpio_pin_glitch_filter_disable (gpio_glitch_filter_t * filter )
6266{
6367 ESP_RETURN_ON_FALSE (filter -> fsm == GLITCH_FILTER_FSM_ENABLE , ESP_ERR_INVALID_STATE , TAG , "filter not in enable state" );
64- gpio_pin_glitch_filter_t * pin_filter = __containerof (filter , gpio_pin_glitch_filter_t , base );
68+ [[ maybe_unused ]] gpio_pin_glitch_filter_t * pin_filter = __containerof (filter , gpio_pin_glitch_filter_t , base );
6569
6670 gpio_ll_pin_filter_disable (NULL , filter -> gpio_num );
6771
72+ #if CONFIG_PM_ENABLE
6873 // release pm lock
6974 if (pin_filter -> pm_lock ) {
7075 esp_pm_lock_release (pin_filter -> pm_lock );
7176 }
77+ #endif
7278
7379 filter -> fsm = GLITCH_FILTER_FSM_INIT ;
7480 return ESP_OK ;
0 commit comments