diff options
Diffstat (limited to 'roms/u-boot/arch/avr32/include/asm/dma-mapping.h')
| -rw-r--r-- | roms/u-boot/arch/avr32/include/asm/dma-mapping.h | 48 | 
1 files changed, 48 insertions, 0 deletions
diff --git a/roms/u-boot/arch/avr32/include/asm/dma-mapping.h b/roms/u-boot/arch/avr32/include/asm/dma-mapping.h new file mode 100644 index 00000000..95ea81ff --- /dev/null +++ b/roms/u-boot/arch/avr32/include/asm/dma-mapping.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2006 Atmel Corporation + * + * SPDX-License-Identifier:	GPL-2.0+ + */ +#ifndef __ASM_AVR32_DMA_MAPPING_H +#define __ASM_AVR32_DMA_MAPPING_H + +#include <asm/io.h> +#include <asm/arch/cacheflush.h> + +enum dma_data_direction { +	DMA_BIDIRECTIONAL	= 0, +	DMA_TO_DEVICE		= 1, +	DMA_FROM_DEVICE		= 2, +}; +extern void *dma_alloc_coherent(size_t len, unsigned long *handle); + +static inline unsigned long dma_map_single(volatile void *vaddr, size_t len, +					   enum dma_data_direction dir) +{ +	extern void __bad_dma_data_direction(void); + +	switch (dir) { +	case DMA_BIDIRECTIONAL: +		dcache_flush_range(vaddr, len); +		break; +	case DMA_TO_DEVICE: +		dcache_clean_range(vaddr, len); +		break; +	case DMA_FROM_DEVICE: +		dcache_invalidate_range(vaddr, len); +		break; +	default: +		/* This will cause a linker error */ +		__bad_dma_data_direction(); +	} + +	return virt_to_phys(vaddr); +} + +static inline void dma_unmap_single(volatile void *vaddr, size_t len, +				    unsigned long paddr) +{ + +} + +#endif /* __ASM_AVR32_DMA_MAPPING_H */  | 
