dma.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #ifndef _ASM_ARCH_CRIS_DMA_H
  2. #define _ASM_ARCH_CRIS_DMA_H
  3. /* Defines for using and allocating dma channels. */
  4. #define MAX_DMA_CHANNELS 10
  5. #define NETWORK_ETH0_TX_DMA_NBR 0 /* Ethernet 0 out. */
  6. #define NETWORK_ETH0 RX_DMA_NBR 1 /* Ethernet 0 in. */
  7. #define IO_PROC_DMA0_TX_DMA_NBR 2 /* IO processor DMA0 out. */
  8. #define IO_PROC_DMA0_RX_DMA_NBR 3 /* IO processor DMA0 in. */
  9. #define ATA_TX_DMA_NBR 2 /* ATA interface out. */
  10. #define ATA_RX_DMA_NBR 3 /* ATA interface in. */
  11. #define ASYNC_SER2_TX_DMA_NBR 2 /* Asynchronous serial port 2 out. */
  12. #define ASYNC_SER2_RX_DMA_NBR 3 /* Asynchronous serial port 2 in. */
  13. #define IO_PROC_DMA1_TX_DMA_NBR 4 /* IO processor DMA1 out. */
  14. #define IO_PROC_DMA1_RX_DMA_NBR 5 /* IO processor DMA1 in. */
  15. #define ASYNC_SER1_TX_DMA_NBR 4 /* Asynchronous serial port 1 out. */
  16. #define ASYNC_SER1_RX_DMA_NBR 5 /* Asynchronous serial port 1 in. */
  17. #define SYNC_SER0_TX_DMA_NBR 4 /* Synchronous serial port 0 out. */
  18. #define SYNC_SER0_RX_DMA_NBR 5 /* Synchronous serial port 0 in. */
  19. #define EXTDMA0_TX_DMA_NBR 6 /* External DMA 0 out. */
  20. #define EXTDMA1_RX_DMA_NBR 7 /* External DMA 1 in. */
  21. #define ASYNC_SER0_TX_DMA_NBR 6 /* Asynchronous serial port 0 out. */
  22. #define ASYNC_SER0_RX_DMA_NBR 7 /* Asynchronous serial port 0 in. */
  23. #define SYNC_SER1_TX_DMA_NBR 6 /* Synchronous serial port 1 out. */
  24. #define SYNC_SER1_RX_DMA_NBR 7 /* Synchronous serial port 1 in. */
  25. #define NETWORK_ETH1_TX_DMA_NBR 6 /* Ethernet 1 out. */
  26. #define NETWORK_ETH1_RX_DMA_NBR 7 /* Ethernet 1 in. */
  27. #define EXTDMA2_TX_DMA_NBR 8 /* External DMA 2 out. */
  28. #define EXTDMA3_RX_DMA_NBR 9 /* External DMA 3 in. */
  29. #define STRCOP_TX_DMA_NBR 8 /* Stream co-processor out. */
  30. #define STRCOP_RX_DMA_NBR 9 /* Stream co-processor in. */
  31. #define ASYNC_SER3_TX_DMA_NBR 8 /* Asynchronous serial port 3 out. */
  32. #define ASYNC_SER3_RX_DMA_NBR 9 /* Asynchronous serial port 3 in. */
  33. enum dma_owner {
  34. dma_eth0,
  35. dma_eth1,
  36. dma_iop0,
  37. dma_iop1,
  38. dma_ser0,
  39. dma_ser1,
  40. dma_ser2,
  41. dma_ser3,
  42. dma_sser0,
  43. dma_sser1,
  44. dma_ata,
  45. dma_strp,
  46. dma_ext0,
  47. dma_ext1,
  48. dma_ext2,
  49. dma_ext3
  50. };
  51. int crisv32_request_dma(unsigned int dmanr, const char *device_id,
  52. unsigned options, unsigned bandwidth,
  53. enum dma_owner owner);
  54. void crisv32_free_dma(unsigned int dmanr);
  55. /* Masks used by crisv32_request_dma options: */
  56. #define DMA_VERBOSE_ON_ERROR 1
  57. #define DMA_PANIC_ON_ERROR (2|DMA_VERBOSE_ON_ERROR)
  58. #define DMA_INT_MEM 4
  59. #endif /* _ASM_ARCH_CRIS_DMA_H */