RTEMS: bsps/arm/atsam/include/libchip/include/afe_dma.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
afe_dma.h
Go to the documentation of this file.
1/* ---------------------------------------------------------------------------- */
2/* Atmel Microcontroller Software Support */
3/* SAM Software Package License */
4/* ---------------------------------------------------------------------------- */
5/* Copyright (c) 2015, Atmel Corporation */
6/* */
7/* All rights reserved. */
8/* */
9/* Redistribution and use in source and binary forms, with or without */
10/* modification, are permitted provided that the following condition is met: */
11/* */
12/* - Redistributions of source code must retain the above copyright notice, */
13/* this list of conditions and the disclaimer below. */
14/* */
15/* Atmel's name may not be used to endorse or promote products derived from */
16/* this software without specific prior written permission. */
17/* */
18/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21/* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28/* ---------------------------------------------------------------------------- */
29
49#ifndef _AFE_DMA_
50#define _AFE_DMA_
51
52/*----------------------------------------------------------------------------
53 * Headers
54 *----------------------------------------------------------------------------*/
55
56#include "chip.h"
57
58
59/*----------------------------------------------------------------------------
60 * Types
61 *----------------------------------------------------------------------------*/
62
64 typedef void (*AfeCallback)(uint8_t, void *);
65
71 typedef struct {
73 uint32_t *pRxBuff;
75 uint16_t RxSize;
77 AfeCallback callback;
79 void *pArgument;
80} AfeCmd;
81
82
85 typedef struct {
87 Afec *pAfeHw;
89 AfeCmd *pCurrentCommand;
91 sXdmad *pXdmad;
93 uint8_t afeId;
95 volatile int8_t semaphore;
96} AfeDma;
97
98
99/*------------------------------------------------------------------------------
100 * Definitions
101 *----------------------------------------------------------------------------*/
102#define AFE_OK 0
103#define AFE_ERROR 1
104#define AFE_ERROR_LOCK 2
105/*------------------------------------------------------------------------------
106 * Exported functions
107 *----------------------------------------------------------------------------*/
108extern uint32_t Afe_ConfigureDma(AfeDma *pAfed ,
109 Afec *pAfeHw ,
110 uint8_t AfeId,
111 sXdmad *pXdmad);
112extern uint32_t Afe_SendData(AfeDma *pAfed, AfeCmd *pCommand);
113
114
115#endif /* #ifndef _AFE_DMA_ */
116
Afe_ConfigureDma
uint32_t Afe_ConfigureDma(AfeDma *pAfed, Afec *pAfeHw, uint8_t AfeId, sXdmad *pXdmad)
Initializes the AfeDma structure and the corresponding AFE & DMA . hardware select value....
Definition: afe_dma.c:198
Afe_SendData
uint32_t Afe_SendData(AfeDma *pAfed, AfeCmd *pCommand)
Starts a AFE transfer. This is a non blocking function. It will return as soon as the transfer is sta...
Definition: afe_dma.c:223
AfeCallback
void(* AfeCallback)(uint8_t, void *)
Definition: afe_dma.h:64
AfeCmd
Spi Transfer Request prepared by the application upper layer.
Definition: afe_dma.h:71
AfeCmd::pRxBuff
uint32_t * pRxBuff
Definition: afe_dma.h:73
AfeCmd::RxSize
uint16_t RxSize
Definition: afe_dma.h:75
AfeCmd::pArgument
void * pArgument
Definition: afe_dma.h:79
AfeCmd::callback
AfeCallback callback
Definition: afe_dma.h:77
AfeDma
Definition: afe_dma.h:85
AfeDma::pAfeHw
Afec * pAfeHw
Definition: afe_dma.h:87
AfeDma::pCurrentCommand
AfeCmd * pCurrentCommand
Definition: afe_dma.h:89
AfeDma::pXdmad
sXdmad * pXdmad
Definition: afe_dma.h:91
AfeDma::afeId
uint8_t afeId
Definition: afe_dma.h:93
AfeDma::semaphore
volatile int8_t semaphore
Definition: afe_dma.h:95
Afec
Afec hardware registers.
Definition: component_afec.h:41
_Xdmad
Definition: xdmad.h:127