From 27858becc20d749157d153dab154a95025324634 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 31 Mar 2013 18:13:19 +0000 Subject: [PATCH] Several fixes for open1788 SDCARD DMA git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5803 42af7a65-404d-4744-a932-0658087f49c3 --- arch/arm/src/lpc17xx/chip/lpc17_gpdma.h | 17 +++++++++++++---- arch/arm/src/lpc17xx/lpc17_sdcard.c | 4 ++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/lpc17xx/chip/lpc17_gpdma.h b/arch/arm/src/lpc17xx/chip/lpc17_gpdma.h index dc80b8e05cc..a915559b968 100644 --- a/arch/arm/src/lpc17xx/chip/lpc17_gpdma.h +++ b/arch/arm/src/lpc17xx/chip/lpc17_gpdma.h @@ -562,10 +562,19 @@ # define DMACH_CONFIG_DSTPER_MAT3p1 (DMA_REQ_MAT3p1 << DMACH_CONFIG_DSTPER_SHIFT) #define DMACH_CONFIG_XFRTYPE_SHIFT (11) /* Bits 11-13: Type of transfer */ #define DMACH_CONFIG_XFRTYPE_MASK (7 << DMACH_CONFIG_XFRTYPE_SHIFT) -# define DMACH_CONFIG_XFRTYPE_M2M (0 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Memory to memory DMA */ -# define DMACH_CONFIG_XFRTYPE_M2P (1 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Memory to peripheral DMA */ -# define DMACH_CONFIG_XFRTYPE_P2M (2 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Peripheral to memory DMA */ -# define DMACH_CONFIG_XFRTYPE_P2P (3 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Peripheral to peripheral DMA */ + /* Flow controller = DMA controller */ +# define DMACH_CONFIG_XFRTYPE_M2M (0 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Memory to memory */ +# define DMACH_CONFIG_XFRTYPE_M2P (1 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Memory to peripheral */ +# define DMACH_CONFIG_XFRTYPE_P2M (2 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Peripheral to memory */ +# define DMACH_CONFIG_XFRTYPE_P2P (3 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Peripheral to peripheral */ +#ifdef LPC178x + /* Flow controller = Dest peripheral */ +# define DMACH_CONFIG_XFRTYPE_M2M_DC (4 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Memory to memory */ +# define DMACH_CONFIG_XFRTYPE_M2P_DC (5 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Memory to peripheral */ + /* Flow controller = Source peripheral */ +# define DMACH_CONFIG_XFRTYPE_P2M_SC (6 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Peripheral to memory */ +# define DMACH_CONFIG_XFRTYPE_P2P_SC (7 << DMACH_CONFIG_XFRTYPE_SHIFT) /* Peripheral to peripheral */ +#endif #define DMACH_CONFIG_IE (1 << 14) /* Bit 14: Interrupt error mask */ #define DMACH_CONFIG_ITC (1 << 15) /* Bit 15: Terminal count interrupt mask */ #define DMACH_CONFIG_L (1 << 16) /* Bit 16: Lock */ diff --git a/arch/arm/src/lpc17xx/lpc17_sdcard.c b/arch/arm/src/lpc17xx/lpc17_sdcard.c index d8485351b65..d5ae60b84a0 100644 --- a/arch/arm/src/lpc17xx/lpc17_sdcard.c +++ b/arch/arm/src/lpc17xx/lpc17_sdcard.c @@ -158,10 +158,10 @@ * controlled by the driver. */ -#define SDCARD_RXDMA32_CONTROL (DMACH_CONTROL_SBSIZE_4|DMACH_CONTROL_DBSIZE_4|\ +#define SDCARD_RXDMA32_CONTROL (DMACH_CONTROL_SBSIZE_8|DMACH_CONTROL_DBSIZE_8|\ DMACH_CONTROL_SWIDTH_32BIT|DMACH_CONTROL_DWIDTH_32BIT|\ DMACH_CONTROL_DI) -#define SDCARD_TXDMA32_CONTROL (DMACH_CONTROL_SBSIZE_4|DMACH_CONTROL_DBSIZE_4|\ +#define SDCARD_TXDMA32_CONTROL (DMACH_CONTROL_SBSIZE_8|DMACH_CONTROL_DBSIZE_8|\ DMACH_CONTROL_SWIDTH_32BIT|DMACH_CONTROL_DWIDTH_32BIT|\ DMACH_CONTROL_SI)