diff options
| author | Peter Tyser <ptyser@xes-inc.com> | 2009-06-30 17:15:51 -0500 | 
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2009-07-02 11:15:57 -0500 | 
| commit | e94e460c6e8741f42dab6d8dd4b596ba5d9d79ae (patch) | |
| tree | 35d8c3f5a8070fe16cffb4d4212fe469a2d8a69b /cpu/mpc83xx/cpu.c | |
| parent | 9adda5459ca62120c0c50b82b766fe1cf6925bbf (diff) | |
| download | olio-uboot-2014.01-e94e460c6e8741f42dab6d8dd4b596ba5d9d79ae.tar.xz olio-uboot-2014.01-e94e460c6e8741f42dab6d8dd4b596ba5d9d79ae.zip | |
83xx: Add support for fsl_dma driver
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
Reviewed-by: Ira W. Snyder <iws@ovro.caltech.edu>
Tested-by: Ira W. Snyder <iws@ovro.caltech.edu>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'cpu/mpc83xx/cpu.c')
| -rw-r--r-- | cpu/mpc83xx/cpu.c | 85 | 
1 files changed, 0 insertions, 85 deletions
| diff --git a/cpu/mpc83xx/cpu.c b/cpu/mpc83xx/cpu.c index a5c1f00b1..e38a3722c 100644 --- a/cpu/mpc83xx/cpu.c +++ b/cpu/mpc83xx/cpu.c @@ -276,91 +276,6 @@ void watchdog_reset (void)  }  #endif -#if defined(CONFIG_DDR_ECC) -void dma_init(void) -{ -	volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR; -	volatile dma83xx_t *dma = &immap->dma; -	volatile u32 status = swab32(dma->dmasr0); -	volatile u32 dmamr0 = swab32(dma->dmamr0); - -	debug("DMA-init\n"); - -	/* initialize DMASARn, DMADAR and DMAABCRn */ -	dma->dmadar0 = (u32)0; -	dma->dmasar0 = (u32)0; -	dma->dmabcr0 = 0; - -	__asm__ __volatile__ ("sync"); -	__asm__ __volatile__ ("isync"); - -	/* clear CS bit */ -	dmamr0 &= ~DMA_CHANNEL_START; -	dma->dmamr0 = swab32(dmamr0); -	__asm__ __volatile__ ("sync"); -	__asm__ __volatile__ ("isync"); - -	/* while the channel is busy, spin */ -	while(status & DMA_CHANNEL_BUSY) { -		status = swab32(dma->dmasr0); -	} - -	debug("DMA-init end\n"); -} - -uint dma_check(void) -{ -	volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR; -	volatile dma83xx_t *dma = &immap->dma; -	volatile u32 status = swab32(dma->dmasr0); -	volatile u32 byte_count = swab32(dma->dmabcr0); - -	/* while the channel is busy, spin */ -	while (status & DMA_CHANNEL_BUSY) { -		status = swab32(dma->dmasr0); -	} - -	if (status & DMA_CHANNEL_TRANSFER_ERROR) { -		printf ("DMA Error: status = %x @ %d\n", status, byte_count); -	} - -	return status; -} - -int dmacpy(phys_addr_t dest, phys_addr_t src, phys_size_t count) -{ -	volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR; -	volatile dma83xx_t *dma = &immap->dma; -	volatile u32 dmamr0; - -	/* initialize DMASARn, DMADAR and DMAABCRn */ -	dma->dmadar0 = swab32((u32)dest); -	dma->dmasar0 = swab32((u32)src); -	dma->dmabcr0 = swab32((u32)count); - -	__asm__ __volatile__ ("sync"); -	__asm__ __volatile__ ("isync"); - -	/* init direct transfer, clear CS bit */ -	dmamr0 = (DMA_CHANNEL_TRANSFER_MODE_DIRECT | -			DMA_CHANNEL_SOURCE_ADDRESS_HOLD_8B | -			DMA_CHANNEL_SOURCE_ADRESSS_HOLD_EN); - -	dma->dmamr0 = swab32(dmamr0); - -	__asm__ __volatile__ ("sync"); -	__asm__ __volatile__ ("isync"); - -	/* set CS to start DMA transfer */ -	dmamr0 |= DMA_CHANNEL_START; -	dma->dmamr0 = swab32(dmamr0); -	__asm__ __volatile__ ("sync"); -	__asm__ __volatile__ ("isync"); - -	return ((int)dma_check()); -} -#endif /*CONFIG_DDR_ECC*/ -  /*   * Initializes on-chip ethernet controllers.   * to override, implement board_eth_init() |