dma.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /* Defines for using and allocating dma channels. */
  2. #ifndef _ASM_ARCH_DMA_H
  3. #define _ASM_ARCH_DMA_H
  4. #define MAX_DMA_CHANNELS 10
  5. /* dma0 and dma1 used for network (ethernet) */
  6. #define NETWORK_TX_DMA_NBR 0
  7. #define NETWORK_RX_DMA_NBR 1
  8. /* dma2 and dma3 shared by par0, scsi0, ser2 and ata */
  9. #define PAR0_TX_DMA_NBR 2
  10. #define PAR0_RX_DMA_NBR 3
  11. #define SCSI0_TX_DMA_NBR 2
  12. #define SCSI0_RX_DMA_NBR 3
  13. #define SER2_TX_DMA_NBR 2
  14. #define SER2_RX_DMA_NBR 3
  15. #define ATA_TX_DMA_NBR 2
  16. #define ATA_RX_DMA_NBR 3
  17. /* dma4 and dma5 shared by par1, scsi1, ser3 and extdma0 */
  18. #define PAR1_TX_DMA_NBR 4
  19. #define PAR1_RX_DMA_NBR 5
  20. #define SCSI1_TX_DMA_NBR 4
  21. #define SCSI1_RX_DMA_NBR 5
  22. #define SER3_TX_DMA_NBR 4
  23. #define SER3_RX_DMA_NBR 5
  24. #define EXTDMA0_TX_DMA_NBR 4
  25. #define EXTDMA0_RX_DMA_NBR 5
  26. /* dma6 and dma7 shared by ser0, extdma1 and mem2mem */
  27. #define SER0_TX_DMA_NBR 6
  28. #define SER0_RX_DMA_NBR 7
  29. #define EXTDMA1_TX_DMA_NBR 6
  30. #define EXTDMA1_RX_DMA_NBR 7
  31. #define MEM2MEM_TX_DMA_NBR 6
  32. #define MEM2MEM_RX_DMA_NBR 7
  33. /* dma8 and dma9 shared by ser1 and usb */
  34. #define SER1_TX_DMA_NBR 8
  35. #define SER1_RX_DMA_NBR 9
  36. #define USB_TX_DMA_NBR 8
  37. #define USB_RX_DMA_NBR 9
  38. #endif
  39. enum dma_owner
  40. {
  41. dma_eth,
  42. dma_ser0,
  43. dma_ser1, /* Async and sync */
  44. dma_ser2,
  45. dma_ser3, /* Async and sync */
  46. dma_ata,
  47. dma_par0,
  48. dma_par1,
  49. dma_ext0,
  50. dma_ext1,
  51. dma_int6,
  52. dma_int7,
  53. dma_usb,
  54. dma_scsi0,
  55. dma_scsi1
  56. };
  57. /* Masks used by cris_request_dma options: */
  58. #define DMA_VERBOSE_ON_ERROR (1<<0)
  59. #define DMA_PANIC_ON_ERROR ((1<<1)|DMA_VERBOSE_ON_ERROR)
  60. int cris_request_dma(unsigned int dmanr, const char * device_id,
  61. unsigned options, enum dma_owner owner);
  62. void cris_free_dma(unsigned int dmanr, const char * device_id);