1 /* $NetBSD: at91.h,v 1.1.1.1.8.2 2017/12/03 11:38:37 jdolecek Exp $ */ 2 3 /* 4 * This header provides macros for at91 dma bindings. 5 * 6 * Copyright (C) 2013 Ludovic Desroches <ludovic.desroches (at) atmel.com> 7 * 8 * GPLv2 only 9 */ 10 11 #ifndef __DT_BINDINGS_AT91_DMA_H__ 12 #define __DT_BINDINGS_AT91_DMA_H__ 13 14 /* ---------- HDMAC ---------- */ 15 16 /* 17 * Source and/or destination peripheral ID 18 */ 19 #define AT91_DMA_CFG_PER_ID_MASK (0xff) 20 #define AT91_DMA_CFG_PER_ID(id) (id & AT91_DMA_CFG_PER_ID_MASK) 21 22 /* 23 * FIFO configuration: it defines when a request is serviced. 24 */ 25 #define AT91_DMA_CFG_FIFOCFG_OFFSET (8) 26 #define AT91_DMA_CFG_FIFOCFG_MASK (0xf << AT91_DMA_CFG_FIFOCFG_OFFSET) 27 #define AT91_DMA_CFG_FIFOCFG_HALF (0x0 << AT91_DMA_CFG_FIFOCFG_OFFSET) /* half FIFO (default behavior) */ 28 #define AT91_DMA_CFG_FIFOCFG_ALAP (0x1 << AT91_DMA_CFG_FIFOCFG_OFFSET) /* largest defined AHB burst */ 29 #define AT91_DMA_CFG_FIFOCFG_ASAP (0x2 << AT91_DMA_CFG_FIFOCFG_OFFSET) /* single AHB access */ 30 31 32 /* ---------- XDMAC ---------- */ 33 #define AT91_XDMAC_DT_MEM_IF_MASK (0x1) 34 #define AT91_XDMAC_DT_MEM_IF_OFFSET (13) 35 #define AT91_XDMAC_DT_MEM_IF(mem_if) (((mem_if) & AT91_XDMAC_DT_MEM_IF_MASK) \ 36 << AT91_XDMAC_DT_MEM_IF_OFFSET) 37 #define AT91_XDMAC_DT_GET_MEM_IF(cfg) (((cfg) >> AT91_XDMAC_DT_MEM_IF_OFFSET) \ 38 & AT91_XDMAC_DT_MEM_IF_MASK) 39 40 #define AT91_XDMAC_DT_PER_IF_MASK (0x1) 41 #define AT91_XDMAC_DT_PER_IF_OFFSET (14) 42 #define AT91_XDMAC_DT_PER_IF(per_if) (((per_if) & AT91_XDMAC_DT_PER_IF_MASK) \ 43 << AT91_XDMAC_DT_PER_IF_OFFSET) 44 #define AT91_XDMAC_DT_GET_PER_IF(cfg) (((cfg) >> AT91_XDMAC_DT_PER_IF_OFFSET) \ 45 & AT91_XDMAC_DT_PER_IF_MASK) 46 47 #define AT91_XDMAC_DT_PERID_MASK (0x7f) 48 #define AT91_XDMAC_DT_PERID_OFFSET (24) 49 #define AT91_XDMAC_DT_PERID(perid) (((perid) & AT91_XDMAC_DT_PERID_MASK) \ 50 << AT91_XDMAC_DT_PERID_OFFSET) 51 #define AT91_XDMAC_DT_GET_PERID(cfg) (((cfg) >> AT91_XDMAC_DT_PERID_OFFSET) \ 52 & AT91_XDMAC_DT_PERID_MASK) 53 54 #endif /* __DT_BINDINGS_AT91_DMA_H__ */ 55