esp-idf/components/esp_driver_gptimer/include/esp_private/gptimer.h

58 lines
1.8 KiB
C

/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
// DO NOT USE THESE APIS IN YOUR APPLICATIONS
// The following APIs are for internal use, public to other IDF components, but not for users' applications.
#pragma once
#include "esp_err.h"
#include "esp_intr_alloc.h"
#include "esp_pm.h"
#include "driver/gptimer.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Get GPTimer interrupt handle
*
* @param[in] timer Timer handle created by `gptimer_new_timer()`
* @param[out] ret_intr_handle Timer's internal interrupt handle
* @return
* - ESP_OK: Get GPTimer interrupt handle successfully
* - ESP_ERR_INVALID_ARG: Get GPTimer interrupt handle failed because of invalid argument
* - ESP_FAIL: Get GPTimer interrupt handle failed because of other error
*/
esp_err_t gptimer_get_intr_handle(gptimer_handle_t timer, intr_handle_t *ret_intr_handle);
/**
* @brief Get GPTimer power management lock
*
* @param[in] timer Timer handle created by `gptimer_new_timer()`
* @param[out] ret_pm_lock Timer's internal power management lock
* @return
* - ESP_OK: Get GPTimer power management lock successfully
* - ESP_ERR_INVALID_ARG: Get GPTimer power management lock failed because of invalid argument
* - ESP_FAIL: Get GPTimer power management lock failed because of other error
*/
esp_err_t gptimer_get_pm_lock(gptimer_handle_t timer, esp_pm_lock_handle_t *ret_pm_lock);
/**
* @brief Get the group_id from the timer handle
*
* @param[in] timer Timer handle created by `gptimer_new_timer()`
* @return
* - ESP_OK: Get GPTimer group_id from handler successfully
* - ESP_ERR_INVALID_ARG: Get GPTimer group_id failed because of invalid argument
*/
esp_err_t gptimer_get_group_id(gptimer_handle_t timer, int *group_id);
#ifdef __cplusplus
}
#endif