mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-09 20:01:56 +00:00
This patches just changes the header file organisation Signed-off-by: Francois Ramu <francois.ramu@st.com>
73 lines
2.0 KiB
C
73 lines
2.0 KiB
C
/*
|
|
* Copyright (c) 2019 Song Qiang <songqiang1304521@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef DMA_STM32_H_
|
|
#define DMA_STM32_H_
|
|
|
|
static u32_t table_m_size[] = {
|
|
LL_DMA_MDATAALIGN_BYTE,
|
|
LL_DMA_MDATAALIGN_HALFWORD,
|
|
LL_DMA_MDATAALIGN_WORD,
|
|
};
|
|
|
|
static u32_t table_p_size[] = {
|
|
LL_DMA_PDATAALIGN_BYTE,
|
|
LL_DMA_PDATAALIGN_HALFWORD,
|
|
LL_DMA_PDATAALIGN_WORD,
|
|
};
|
|
|
|
/* Maximum data sent in single transfer (Bytes) */
|
|
#define DMA_STM32_MAX_DATA_ITEMS 0xffff
|
|
|
|
struct dma_stm32_stream {
|
|
u32_t direction;
|
|
bool source_periph;
|
|
bool busy;
|
|
u32_t src_size;
|
|
u32_t dst_size;
|
|
void *callback_arg;
|
|
void (*dma_callback)(void *arg, u32_t id,
|
|
int error_code);
|
|
};
|
|
|
|
struct dma_stm32_data {
|
|
int max_streams;
|
|
struct dma_stm32_stream *streams;
|
|
};
|
|
|
|
struct dma_stm32_config {
|
|
struct stm32_pclken pclken;
|
|
void (*config_irq)(struct device *dev);
|
|
bool support_m2m;
|
|
u32_t base;
|
|
};
|
|
|
|
extern u32_t table_ll_stream[];
|
|
extern u32_t (*func_ll_is_active_tc[])(DMA_TypeDef *DMAx);
|
|
extern void (*func_ll_clear_tc[])(DMA_TypeDef *DMAx);
|
|
extern u32_t (*func_ll_is_active_ht[])(DMA_TypeDef *DMAx);
|
|
extern void (*func_ll_clear_ht[])(DMA_TypeDef *DMAx);
|
|
#ifdef CONFIG_DMA_STM32_V1
|
|
extern u32_t table_ll_channel[];
|
|
#endif
|
|
|
|
void stm32_dma_dump_stream_irq(DMA_TypeDef *dma, u32_t id);
|
|
void stm32_dma_clear_stream_irq(DMA_TypeDef *dma, u32_t id);
|
|
bool stm32_dma_is_irq_happened(DMA_TypeDef *dma, u32_t id);
|
|
bool stm32_dma_is_unexpected_irq_happened(DMA_TypeDef *dma, u32_t id);
|
|
void stm32_dma_enable_stream(DMA_TypeDef *dma, u32_t id);
|
|
int stm32_dma_disable_stream(DMA_TypeDef *dma, u32_t id);
|
|
void stm32_dma_config_channel_function(DMA_TypeDef *dma, u32_t id, u32_t slot);
|
|
#ifdef CONFIG_DMA_STM32_V1
|
|
void stm32_dma_disable_fifo_irq(DMA_TypeDef *dma, u32_t id);
|
|
bool stm32_dma_check_fifo_mburst(LL_DMA_InitTypeDef *DMAx);
|
|
u32_t stm32_dma_get_fifo_threshold(u16_t fifo_mode_control);
|
|
u32_t stm32_dma_get_mburst(struct dma_config *config, bool source_periph);
|
|
u32_t stm32_dma_get_pburst(struct dma_config *config, bool source_periph);
|
|
#endif
|
|
|
|
#endif /* DMA_STM32_H_*/
|