1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Renesas SuperH DMA Engine support 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2013 Renesas Electronics, Inc. 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #ifndef SHDMA_ARM_H 9*4882a593Smuzhiyun #define SHDMA_ARM_H 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #include "shdma.h" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun /* Transmit sizes and respective CHCR register values */ 14*4882a593Smuzhiyun enum { 15*4882a593Smuzhiyun XMIT_SZ_8BIT = 0, 16*4882a593Smuzhiyun XMIT_SZ_16BIT = 1, 17*4882a593Smuzhiyun XMIT_SZ_32BIT = 2, 18*4882a593Smuzhiyun XMIT_SZ_64BIT = 7, 19*4882a593Smuzhiyun XMIT_SZ_128BIT = 3, 20*4882a593Smuzhiyun XMIT_SZ_256BIT = 4, 21*4882a593Smuzhiyun XMIT_SZ_512BIT = 5, 22*4882a593Smuzhiyun }; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun /* log2(size / 8) - used to calculate number of transfers */ 25*4882a593Smuzhiyun #define SH_DMAE_TS_SHIFT { \ 26*4882a593Smuzhiyun [XMIT_SZ_8BIT] = 0, \ 27*4882a593Smuzhiyun [XMIT_SZ_16BIT] = 1, \ 28*4882a593Smuzhiyun [XMIT_SZ_32BIT] = 2, \ 29*4882a593Smuzhiyun [XMIT_SZ_64BIT] = 3, \ 30*4882a593Smuzhiyun [XMIT_SZ_128BIT] = 4, \ 31*4882a593Smuzhiyun [XMIT_SZ_256BIT] = 5, \ 32*4882a593Smuzhiyun [XMIT_SZ_512BIT] = 6, \ 33*4882a593Smuzhiyun } 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #define TS_LOW_BIT 0x3 /* --xx */ 36*4882a593Smuzhiyun #define TS_HI_BIT 0xc /* xx-- */ 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #define TS_LOW_SHIFT (3) 39*4882a593Smuzhiyun #define TS_HI_SHIFT (20 - 2) /* 2 bits for shifted low TS */ 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #define TS_INDEX2VAL(i) \ 42*4882a593Smuzhiyun ((((i) & TS_LOW_BIT) << TS_LOW_SHIFT) |\ 43*4882a593Smuzhiyun (((i) & TS_HI_BIT) << TS_HI_SHIFT)) 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun #define CHCR_TX(xmit_sz) (DM_FIX | SM_INC | RS_ERS | TS_INDEX2VAL((xmit_sz))) 46*4882a593Smuzhiyun #define CHCR_RX(xmit_sz) (DM_INC | SM_FIX | RS_ERS | TS_INDEX2VAL((xmit_sz))) 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun #endif 49