Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * This header provides macros for at91 dma bindings.
0004  *
0005  * Copyright (C) 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
0006  */
0007 
0008 #ifndef __DT_BINDINGS_AT91_DMA_H__
0009 #define __DT_BINDINGS_AT91_DMA_H__
0010 
0011 /* ---------- HDMAC ---------- */
0012 
0013 /*
0014  * Source and/or destination peripheral ID
0015  */
0016 #define AT91_DMA_CFG_PER_ID_MASK    (0xff)
0017 #define AT91_DMA_CFG_PER_ID(id)     (id & AT91_DMA_CFG_PER_ID_MASK)
0018 
0019 /*
0020  * FIFO configuration: it defines when a request is serviced.
0021  */
0022 #define AT91_DMA_CFG_FIFOCFG_OFFSET (8)
0023 #define AT91_DMA_CFG_FIFOCFG_MASK   (0xf << AT91_DMA_CFG_FIFOCFG_OFFSET)
0024 #define AT91_DMA_CFG_FIFOCFG_HALF   (0x0 << AT91_DMA_CFG_FIFOCFG_OFFSET)    /* half FIFO (default behavior) */
0025 #define AT91_DMA_CFG_FIFOCFG_ALAP   (0x1 << AT91_DMA_CFG_FIFOCFG_OFFSET)    /* largest defined AHB burst */
0026 #define AT91_DMA_CFG_FIFOCFG_ASAP   (0x2 << AT91_DMA_CFG_FIFOCFG_OFFSET)    /* single AHB access */
0027 
0028 
0029 /* ---------- XDMAC ---------- */
0030 #define AT91_XDMAC_DT_MEM_IF_MASK   (0x1)
0031 #define AT91_XDMAC_DT_MEM_IF_OFFSET (13)
0032 #define AT91_XDMAC_DT_MEM_IF(mem_if)    (((mem_if) & AT91_XDMAC_DT_MEM_IF_MASK) \
0033                     << AT91_XDMAC_DT_MEM_IF_OFFSET)
0034 #define AT91_XDMAC_DT_GET_MEM_IF(cfg)   (((cfg) >> AT91_XDMAC_DT_MEM_IF_OFFSET) \
0035                     & AT91_XDMAC_DT_MEM_IF_MASK)
0036 
0037 #define AT91_XDMAC_DT_PER_IF_MASK   (0x1)
0038 #define AT91_XDMAC_DT_PER_IF_OFFSET (14)
0039 #define AT91_XDMAC_DT_PER_IF(per_if)    (((per_if) & AT91_XDMAC_DT_PER_IF_MASK) \
0040                     << AT91_XDMAC_DT_PER_IF_OFFSET)
0041 #define AT91_XDMAC_DT_GET_PER_IF(cfg)   (((cfg) >> AT91_XDMAC_DT_PER_IF_OFFSET) \
0042                     & AT91_XDMAC_DT_PER_IF_MASK)
0043 
0044 #define AT91_XDMAC_DT_PERID_MASK    (0x7f)
0045 #define AT91_XDMAC_DT_PERID_OFFSET  (24)
0046 #define AT91_XDMAC_DT_PERID(perid)  (((perid) & AT91_XDMAC_DT_PERID_MASK) \
0047                     << AT91_XDMAC_DT_PERID_OFFSET)
0048 #define AT91_XDMAC_DT_GET_PERID(cfg)    (((cfg) >> AT91_XDMAC_DT_PERID_OFFSET) \
0049                     & AT91_XDMAC_DT_PERID_MASK)
0050 
0051 #endif /* __DT_BINDINGS_AT91_DMA_H__ */