2005-04-16 15:20:36 -07:00
# ifndef __ASM_CPU_SH4_DMA_H
# define __ASM_CPU_SH4_DMA_H
2006-09-27 15:59:17 +09:00
# define DMAOR_INIT ( 0x8000 | DMAOR_DME )
2007-01-25 15:22:11 +09:00
/* SH7751/7760/7780 DMA IRQ sources */
# define DMTE0_IRQ 34
# define DMTE1_IRQ 35
# define DMTE2_IRQ 36
# define DMTE3_IRQ 37
# define DMTE4_IRQ 44
# define DMTE5_IRQ 45
# define DMTE6_IRQ 46
# define DMTE7_IRQ 47
# define DMAE_IRQ 38
2006-01-16 22:14:09 -08:00
# ifdef CONFIG_CPU_SH4A
# define SH_DMAC_BASE 0xfc808020
2006-09-27 15:59:17 +09:00
# define CHCR_TS_MASK 0x18
# define CHCR_TS_SHIFT 3
# include <asm/cpu/dma-sh7780.h>
2006-01-16 22:14:09 -08:00
# else
2005-04-16 15:20:36 -07:00
# define SH_DMAC_BASE 0xffa00000
2006-01-16 22:14:09 -08:00
/* Definitions for the SuperH DMAC */
# define TM_BURST 0x0000080
# define TS_8 0x00000010
# define TS_16 0x00000020
# define TS_32 0x00000030
# define TS_64 0x00000000
2005-04-16 15:20:36 -07:00
2006-01-16 22:14:09 -08:00
# define CHCR_TS_MASK 0x30
# define CHCR_TS_SHIFT 4
# define DMAOR_COD 0x00000008
/*
* The SuperH DMAC supports a number of transmit sizes , we list them here ,
* with their respective values as they appear in the CHCR registers .
*
* Defaults to a 64 - bit transfer size .
*/
enum {
XMIT_SZ_64BIT ,
XMIT_SZ_8BIT ,
XMIT_SZ_16BIT ,
XMIT_SZ_32BIT ,
XMIT_SZ_256BIT ,
} ;
/*
* The DMA count is defined as the number of bytes to transfer .
*/
static unsigned int ts_shift [ ] __attribute__ ( ( used ) ) = {
[ XMIT_SZ_64BIT ] = 3 ,
[ XMIT_SZ_8BIT ] = 0 ,
[ XMIT_SZ_16BIT ] = 1 ,
[ XMIT_SZ_32BIT ] = 2 ,
[ XMIT_SZ_256BIT ] = 5 ,
} ;
2006-09-27 15:59:17 +09:00
# endif
2006-01-16 22:14:09 -08:00
# endif /* __ASM_CPU_SH4_DMA_H */