no-OS
Loading...
Searching...
No Matches
stm32_dma.c File Reference

Implementation of stm32 DMA functionality. More...

#include "stm32_dma.h"
#include "no_os_error.h"
#include "no_os_alloc.h"
#include "stm32_irq.h"
Include dependency graph for stm32_dma.c:

Functions

int stm32_dma_config_xfer (struct no_os_dma_ch *channel, struct no_os_dma_xfer_desc *xfer)
 Configure a DMA channel for a transfer.
 
int stm32_dma_init (struct no_os_dma_desc **desc, const struct no_os_dma_init_param *param)
 Initialize a DMA controller.
 
int stm32_dma_xfer_start (struct no_os_dma_desc *desc, struct no_os_dma_ch *chan)
 Start a DMA transfer for a specific channel .
 
int stm32_dma_xfer_abort (struct no_os_dma_desc *desc, struct no_os_dma_ch *chan)
 Disable a DMA channel.
 
int stm32_dma_remove (struct no_os_dma_desc *desc)
 Free the resources allocated for a DMA descriptor.
 

Variables

const struct no_os_dma_platform_ops stm32_dma_ops
 stm32 platform specific DMA platform ops structure
 

Detailed Description

Implementation of stm32 DMA functionality.

Author
Janani Sunil (janan.nosp@m.i.su.nosp@m.nil@a.nosp@m.nalo.nosp@m.g.com)

Copyright 2024(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Function Documentation

◆ stm32_dma_config_xfer()

int stm32_dma_config_xfer ( struct no_os_dma_ch * channel,
struct no_os_dma_xfer_desc * xfer )

Configure a DMA channel for a transfer.

Parameters
channel- The DMA channel descriptor.
xfer- Descriptor for the transfer.
Returns
0 in case of success, negative error codes otherwise

◆ stm32_dma_init()

int stm32_dma_init ( struct no_os_dma_desc ** desc,
const struct no_os_dma_init_param * param )

Initialize a DMA controller.

Parameters
desc- Descriptor to be initialized.
param- Initialization parameter for the decriptor.
Returns
0 in case of success -ENOMEM if there is not enough free memory

◆ stm32_dma_remove()

int stm32_dma_remove ( struct no_os_dma_desc * desc)

Free the resources allocated for a DMA descriptor.

Parameters
desc- Descriptor to be freed.
Returns
0 in case of success, negative error code otherwise

◆ stm32_dma_xfer_abort()

int stm32_dma_xfer_abort ( struct no_os_dma_desc * desc,
struct no_os_dma_ch * chan )

Disable a DMA channel.

Parameters
desc- Descriptor for the DMA controller.
chan- The DMA Channel
Returns
0 in case of success, negative error codes otherwise

◆ stm32_dma_xfer_start()

int stm32_dma_xfer_start ( struct no_os_dma_desc * desc,
struct no_os_dma_ch * chan )

Start a DMA transfer for a specific channel .

Parameters
desc- Descriptor for the DMA controller.
chan- The DMA Channel
Returns
0 in case of success, negative error codes otherwise

Variable Documentation

◆ stm32_dma_ops

const struct no_os_dma_platform_ops stm32_dma_ops
Initial value:
= {
.dma_init = stm32_dma_init,
.dma_config_xfer = stm32_dma_config_xfer,
.dma_xfer_start = stm32_dma_xfer_start,
.dma_xfer_abort = stm32_dma_xfer_abort,
.dma_remove = stm32_dma_remove
}
int stm32_dma_init(struct no_os_dma_desc **desc, const struct no_os_dma_init_param *param)
Initialize a DMA controller.
Definition stm32_dma.c:121
int stm32_dma_config_xfer(struct no_os_dma_ch *channel, struct no_os_dma_xfer_desc *xfer)
Configure a DMA channel for a transfer.
Definition stm32_dma.c:27
int stm32_dma_xfer_start(struct no_os_dma_desc *desc, struct no_os_dma_ch *chan)
Start a DMA transfer for a specific channel .
Definition stm32_dma.c:183
int stm32_dma_remove(struct no_os_dma_desc *desc)
Free the resources allocated for a DMA descriptor.
Definition stm32_dma.c:241
int stm32_dma_xfer_abort(struct no_os_dma_desc *desc, struct no_os_dma_ch *chan)
Disable a DMA channel.
Definition stm32_dma.c:214

stm32 platform specific DMA platform ops structure