added prescaler for 16 bit pwm in LPC1347 target
Fork of mbed-dev by
Diff: targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/dma_api_HAL.h
- Revision:
- 50:a417edff4437
- Parent:
- 0:9b334a45a8ff
- Child:
- 144:ef7eb2e8f9f7
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/dma_api_HAL.h Wed Jan 13 12:45:11 2016 +0000 +++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/dma_api_HAL.h Fri Jan 15 07:45:16 2016 +0000 @@ -33,7 +33,15 @@ #include <stdint.h> #include "dma_api.h" +#include "em_device.h" + +#ifdef DMA_PRESENT #include "em_dma.h" +#endif + +#ifdef LDMA_PRESENT +#include "em_ldma.h" +#endif #ifdef __cplusplus extern "C" { @@ -60,10 +68,31 @@ #error "Unsupported DMA channel count (dma_api.c)." #endif +#ifdef LDMA_PRESENT +typedef void (*LDMAx_CBFunc_t)(unsigned int channel, bool primary, void *user); + +typedef struct +{ + LDMAx_CBFunc_t cbFunc; + void *userPtr; +} LDMAx_Callback_t; + +void LDMAx_StartTransfer( int ch, + LDMA_TransferCfg_t *transfer, + LDMA_Descriptor_t *descriptor, + LDMAx_CBFunc_t cbFunc, + void *userData ); +bool LDMAx_ChannelEnabled( int ch ); +#endif + typedef struct { DMAUsage dmaUsageState; int dmaChannel; +#ifndef LDMA_PRESENT DMA_CB_TypeDef dmaCallback; +#else + LDMAx_Callback_t dmaCallback; +#endif } DMA_OPTIONS_t; typedef void (*DMACallback)(void);