RTEMS  5.0.0
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;
79  void *pArgument;
80 } AfeCmd;
81 
82 
85 typedef struct {
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  *----------------------------------------------------------------------------*/
108 extern uint32_t Afe_ConfigureDma(AfeDma *pAfed ,
109  Afec *pAfeHw ,
110  uint8_t AfeId,
111  sXdmad *pXdmad);
112 extern uint32_t Afe_SendData(AfeDma *pAfed, AfeCmd *pCommand);
113 
114 
115 #endif /* #ifndef _AFE_DMA_ */
116 
uint32_t * pRxBuff
Definition: afe_dma.h:73
uint8_t afeId
Definition: afe_dma.h:93
Afec * pAfeHw
Definition: afe_dma.h:87
void * pArgument
Definition: afe_dma.h:79
volatile int8_t semaphore
Definition: afe_dma.h:95
void(* AfeCallback)(uint8_t, void *)
Definition: afe_dma.h:64
Spi Transfer Request prepared by the application upper layer.
Definition: afe_dma.h:71
AfeCmd * pCurrentCommand
Definition: afe_dma.h:89
sXdmad * pXdmad
Definition: afe_dma.h:91
AfeCallback callback
Definition: afe_dma.h:77
Afec hardware registers.
Definition: component_afec.h:41
Definition: afe_dma.h:85
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
Definition: xdmad.h:127
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
uint16_t RxSize
Definition: afe_dma.h:75