esp-idf/components/esp_adc/include/esp_private/adc_dma.h

82 lines
1.6 KiB
C

/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_intr_alloc.h"
#include "hal/dma_types.h"
#include "hal/adc_hal.h"
#include "../adc_continuous_internal.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Initialize DMA interrupt event
*
* @param[in] adc_ctx ADC continuous mode driver handle
*
* @return
* - ESP_OK: On success
*/
esp_err_t adc_dma_intr_event_init(adc_continuous_ctx_t *adc_ctx);
/**
* @brief Initialize DMA on ADC continuous mode
*
* @param[in] adc_dma ADC DMA context
*
* @return
* - ESP_OK: On success
*/
esp_err_t adc_dma_init(adc_dma_t *adc_dma);
/**
* @brief Deinitialize DMA on ADC continuous mode
*
* @param[in] adc_dma ADC DMA context
*
* @return
* - ESP_OK: On success
*/
esp_err_t adc_dma_deinit(adc_dma_t adc_dma);
/**
* @brief Start DMA on ADC continuous mode
*
* @param[in] adc_dma ADC DMA context
* @param[in] addr ADC DMA descriptor
*
* @return
* - ESP_OK: On success
*/
esp_err_t adc_dma_start(adc_dma_t adc_dma, dma_descriptor_t *addr);
/**
* @brief Stop DMA on ADC continuous mode
*
* @param[in] adc_dma ADC DMA context
*
* @return
* - ESP_OK: On success
*/
esp_err_t adc_dma_stop(adc_dma_t adc_dma);
/**
* @brief Reset DMA on ADC continuous mode
*
* @param[in] adc_dma ADC DMA context
*
* @return
* - ESP_OK: On success
*/
esp_err_t adc_dma_reset(adc_dma_t adc_dma);
#ifdef __cplusplus
}
#endif