mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Committer:
bogdanm
Date:
Thu Oct 01 15:25:22 2015 +0300
Revision:
0:9b334a45a8ff
Child:
50:a417edff4437
Initial commit on mbed-dev

Replaces mbed-src (now inactive)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 0:9b334a45a8ff 1 /***************************************************************************//**
bogdanm 0:9b334a45a8ff 2 * @file dma_api_HAL.h
bogdanm 0:9b334a45a8ff 3 *******************************************************************************
bogdanm 0:9b334a45a8ff 4 * @section License
bogdanm 0:9b334a45a8ff 5 * <b>(C) Copyright 2015 Silicon Labs, http://www.silabs.com</b>
bogdanm 0:9b334a45a8ff 6 *******************************************************************************
bogdanm 0:9b334a45a8ff 7 *
bogdanm 0:9b334a45a8ff 8 * Permission is granted to anyone to use this software for any purpose,
bogdanm 0:9b334a45a8ff 9 * including commercial applications, and to alter it and redistribute it
bogdanm 0:9b334a45a8ff 10 * freely, subject to the following restrictions:
bogdanm 0:9b334a45a8ff 11 *
bogdanm 0:9b334a45a8ff 12 * 1. The origin of this software must not be misrepresented; you must not
bogdanm 0:9b334a45a8ff 13 * claim that you wrote the original software.
bogdanm 0:9b334a45a8ff 14 * 2. Altered source versions must be plainly marked as such, and must not be
bogdanm 0:9b334a45a8ff 15 * misrepresented as being the original software.
bogdanm 0:9b334a45a8ff 16 * 3. This notice may not be removed or altered from any source distribution.
bogdanm 0:9b334a45a8ff 17 *
bogdanm 0:9b334a45a8ff 18 * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
bogdanm 0:9b334a45a8ff 19 * obligation to support this Software. Silicon Labs is providing the
bogdanm 0:9b334a45a8ff 20 * Software "AS IS", with no express or implied warranties of any kind,
bogdanm 0:9b334a45a8ff 21 * including, but not limited to, any implied warranties of merchantability
bogdanm 0:9b334a45a8ff 22 * or fitness for any particular purpose or warranties against infringement
bogdanm 0:9b334a45a8ff 23 * of any proprietary rights of a third party.
bogdanm 0:9b334a45a8ff 24 *
bogdanm 0:9b334a45a8ff 25 * Silicon Labs will not be liable for any consequential, incidental, or
bogdanm 0:9b334a45a8ff 26 * special damages, or any other relief, or for any claim by any third party,
bogdanm 0:9b334a45a8ff 27 * arising from your use of this Software.
bogdanm 0:9b334a45a8ff 28 *
bogdanm 0:9b334a45a8ff 29 ******************************************************************************/
bogdanm 0:9b334a45a8ff 30
bogdanm 0:9b334a45a8ff 31 #ifndef MBED_DMA_API_HAL_H
bogdanm 0:9b334a45a8ff 32 #define MBED_DMA_API_HAL_H
bogdanm 0:9b334a45a8ff 33
bogdanm 0:9b334a45a8ff 34 #include <stdint.h>
bogdanm 0:9b334a45a8ff 35 #include "dma_api.h"
bogdanm 0:9b334a45a8ff 36 #include "em_dma.h"
bogdanm 0:9b334a45a8ff 37
bogdanm 0:9b334a45a8ff 38 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 39 extern "C" {
bogdanm 0:9b334a45a8ff 40 #endif
bogdanm 0:9b334a45a8ff 41
bogdanm 0:9b334a45a8ff 42 /* Purpose of this file: extend dma_api.h to include EFM-specific DMA attributes */
bogdanm 0:9b334a45a8ff 43
bogdanm 0:9b334a45a8ff 44 #define DMA_CAP_2DCOPY (1 << 0)
bogdanm 0:9b334a45a8ff 45 #define DMA_CAP_NONE (0 << 0)
bogdanm 0:9b334a45a8ff 46
bogdanm 0:9b334a45a8ff 47 #if ( DMA_CHAN_COUNT <= 4 )
bogdanm 0:9b334a45a8ff 48 #define DMACTRL_CH_CNT 4
bogdanm 0:9b334a45a8ff 49 #define DMACTRL_ALIGNMENT 256
bogdanm 0:9b334a45a8ff 50
bogdanm 0:9b334a45a8ff 51 #elif ( ( DMA_CHAN_COUNT > 4 ) && ( DMA_CHAN_COUNT <= 8 ) )
bogdanm 0:9b334a45a8ff 52 #define DMACTRL_CH_CNT 8
bogdanm 0:9b334a45a8ff 53 #define DMACTRL_ALIGNMENT 256
bogdanm 0:9b334a45a8ff 54
bogdanm 0:9b334a45a8ff 55 #elif ( ( DMA_CHAN_COUNT > 8 ) && ( DMA_CHAN_COUNT <= 16 ) )
bogdanm 0:9b334a45a8ff 56 #define DMACTRL_CH_CNT 16
bogdanm 0:9b334a45a8ff 57 #define DMACTRL_ALIGNMENT 512
bogdanm 0:9b334a45a8ff 58
bogdanm 0:9b334a45a8ff 59 #else
bogdanm 0:9b334a45a8ff 60 #error "Unsupported DMA channel count (dma_api.c)."
bogdanm 0:9b334a45a8ff 61 #endif
bogdanm 0:9b334a45a8ff 62
bogdanm 0:9b334a45a8ff 63 typedef struct {
bogdanm 0:9b334a45a8ff 64 DMAUsage dmaUsageState;
bogdanm 0:9b334a45a8ff 65 int dmaChannel;
bogdanm 0:9b334a45a8ff 66 DMA_CB_TypeDef dmaCallback;
bogdanm 0:9b334a45a8ff 67 } DMA_OPTIONS_t;
bogdanm 0:9b334a45a8ff 68
bogdanm 0:9b334a45a8ff 69 typedef void (*DMACallback)(void);
bogdanm 0:9b334a45a8ff 70
bogdanm 0:9b334a45a8ff 71 extern DMA_DESCRIPTOR_TypeDef dmaControlBlock[];
bogdanm 0:9b334a45a8ff 72
bogdanm 0:9b334a45a8ff 73 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 74 }
bogdanm 0:9b334a45a8ff 75 #endif
bogdanm 0:9b334a45a8ff 76
bogdanm 0:9b334a45a8ff 77 #endif