#include <linux/platform_data/dma-atmel.h>
#define AT_DMA_MAX_NR_CHANNELS 8
#define AT_DMA_IF_BIGEND(i) (0x1 << (i))
#define AT_DMA_ARB_CFG (0x1 << 4)
#define AT_DMA_ARB_CFG_FIXED (0x0 << 4)
#define AT_DMA_ARB_CFG_ROUND_ROBIN (0x1 << 4)
#define AT_DMA_ENABLE (0x1 << 0)
#define AT_DMA_SSREQ(x) (0x1 << ((x) << 1))
#define AT_DMA_DSREQ(x) (0x1 << (1 + ((x) << 1)))
#define AT_DMA_SCREQ(x) (0x1 << ((x) << 1))
#define AT_DMA_DCREQ(x) (0x1 << (1 + ((x) << 1)))
#define AT_DMA_SLAST(x) (0x1 << ((x) << 1))
#define AT_DMA_DLAST(x) (0x1 << (1 + ((x) << 1)))
#define AT_DMA_SYR(h) (0x1 << (h))
#define AT_DMA_EBCIER 0x18
#define AT_DMA_EBCIDR 0x1C
#define AT_DMA_EBCIMR 0x20
#define AT_DMA_EBCISR 0x24
#define AT_DMA_CBTC_OFFSET 8
#define AT_DMA_ERR_OFFSET 16
#define AT_DMA_BTC(x) (0x1 << (x))
#define AT_DMA_CBTC(x) (0x1 << (AT_DMA_CBTC_OFFSET + (x)))
#define AT_DMA_ERR(x) (0x1 << (AT_DMA_ERR_OFFSET + (x)))
#define AT_DMA_ENA(x) (0x1 << (x))
#define AT_DMA_SUSP(x) (0x1 << ( 8 + (x)))
#define AT_DMA_KEEP(x) (0x1 << (24 + (x)))
#define AT_DMA_DIS(x) (0x1 << (x))
#define AT_DMA_RES(x) (0x1 << ( 8 + (x)))
#define AT_DMA_EMPT(x) (0x1 << (16 + (x)))
#define AT_DMA_STAL(x) (0x1 << (24 + (x)))
#define AT_DMA_CH_REGS_BASE 0x3C
#define ch_regs(x) (AT_DMA_CH_REGS_BASE + (x) * 0x28)
#define ATC_SADDR_OFFSET 0x00
#define ATC_DADDR_OFFSET 0x04
#define ATC_DSCR_OFFSET 0x08
#define ATC_CTRLA_OFFSET 0x0C
#define ATC_CTRLB_OFFSET 0x10
#define ATC_CFG_OFFSET 0x14
#define ATC_SPIP_OFFSET 0x18
#define ATC_DPIP_OFFSET 0x1C
#define ATC_DSCR_IF(i) (0x3 & (i))
#define ATC_BTSIZE_MAX 0xFFFFUL
#define ATC_BTSIZE(x) (ATC_BTSIZE_MAX & (x))
#define ATC_SCSIZE_MASK (0x7 << 16)
#define ATC_SCSIZE(x) (ATC_SCSIZE_MASK & ((x) << 16))
#define ATC_SCSIZE_1 (0x0 << 16)