2005-04-16 15:20:36 -07:00
/* Defines for using and allocating dma channels. */
# ifndef _ASM_ARCH_DMA_H
# define _ASM_ARCH_DMA_H
# define MAX_DMA_CHANNELS 10
/* dma0 and dma1 used for network (ethernet) */
# define NETWORK_TX_DMA_NBR 0
# define NETWORK_RX_DMA_NBR 1
/* dma2 and dma3 shared by par0, scsi0, ser2 and ata */
# define PAR0_TX_DMA_NBR 2
# define PAR0_RX_DMA_NBR 3
# define SCSI0_TX_DMA_NBR 2
# define SCSI0_RX_DMA_NBR 3
# define SER2_TX_DMA_NBR 2
# define SER2_RX_DMA_NBR 3
# define ATA_TX_DMA_NBR 2
# define ATA_RX_DMA_NBR 3
/* dma4 and dma5 shared by par1, scsi1, ser3 and extdma0 */
# define PAR1_TX_DMA_NBR 4
# define PAR1_RX_DMA_NBR 5
# define SCSI1_TX_DMA_NBR 4
# define SCSI1_RX_DMA_NBR 5
# define SER3_TX_DMA_NBR 4
# define SER3_RX_DMA_NBR 5
# define EXTDMA0_TX_DMA_NBR 4
# define EXTDMA0_RX_DMA_NBR 5
/* dma6 and dma7 shared by ser0, extdma1 and mem2mem */
# define SER0_TX_DMA_NBR 6
# define SER0_RX_DMA_NBR 7
# define EXTDMA1_TX_DMA_NBR 6
# define EXTDMA1_RX_DMA_NBR 7
# define MEM2MEM_TX_DMA_NBR 6
# define MEM2MEM_RX_DMA_NBR 7
/* dma8 and dma9 shared by ser1 and usb */
# define SER1_TX_DMA_NBR 8
# define SER1_RX_DMA_NBR 9
# define USB_TX_DMA_NBR 8
# define USB_RX_DMA_NBR 9
# endif
2005-07-27 11:44:35 -07:00
enum dma_owner
{
dma_eth ,
dma_ser0 ,
dma_ser1 , /* Async and sync */
dma_ser2 ,
dma_ser3 , /* Async and sync */
dma_ata ,
dma_par0 ,
dma_par1 ,
dma_ext0 ,
dma_ext1 ,
dma_int6 ,
dma_int7 ,
dma_usb ,
dma_scsi0 ,
dma_scsi1
} ;
/* Masks used by cris_request_dma options: */
# define DMA_VERBOSE_ON_ERROR (1<<0)
# define DMA_PANIC_ON_ERROR ((1<<1)|DMA_VERBOSE_ON_ERROR)
int cris_request_dma ( unsigned int dmanr , const char * device_id ,
unsigned options , enum dma_owner owner ) ;
void cris_free_dma ( unsigned int dmanr , const char * device_id ) ;