2
* Copyright (C) 2006 Atmel Corporation
4
* SPDX-License-Identifier: GPL-2.0+
6
#ifndef __ASM_AVR32_DMA_MAPPING_H
7
#define __ASM_AVR32_DMA_MAPPING_H
10
#include <asm/arch/cacheflush.h>
12
enum dma_data_direction {
13
DMA_BIDIRECTIONAL = 0,
17
extern void *dma_alloc_coherent(size_t len, unsigned long *handle);
19
static inline unsigned long dma_map_single(volatile void *vaddr, size_t len,
20
enum dma_data_direction dir)
22
extern void __bad_dma_data_direction(void);
25
case DMA_BIDIRECTIONAL:
26
dcache_flush_range(vaddr, len);
29
dcache_clean_range(vaddr, len);
32
dcache_invalidate_range(vaddr, len);
35
/* This will cause a linker error */
36
__bad_dma_data_direction();
39
return virt_to_phys(vaddr);
42
static inline void dma_unmap_single(volatile void *vaddr, size_t len,
48
#endif /* __ASM_AVR32_DMA_MAPPING_H */