r_pdl_dmac.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. /*""FILE COMMENT""*******************************************************
  2. * System Name : DMAC API for RX62Nxx
  3. * File Name : r_pdl_dmac.h
  4. * Version : 1.02
  5. * Contents : DMAC API header
  6. * Customer :
  7. * Model :
  8. * Order :
  9. * CPU : RX
  10. * Compiler : RXC
  11. * OS : Nothing
  12. * Programmer :
  13. * Note :
  14. ************************************************************************
  15. * Copyright, 2011. Renesas Electronics Corporation
  16. * and Renesas Solutions Corporation
  17. ************************************************************************
  18. * History : 2011.04.08
  19. * : Ver 1.02
  20. * : CS-5 release.
  21. *""FILE COMMENT END""**************************************************/
  22. #ifndef R_PDL_DMAC_H
  23. #define R_PDL_DMAC_H
  24. #include "r_pdl_common_defs_RX62Nxx.h"
  25. /* Function prototypes */
  26. bool R_DMAC_Create(
  27. uint8_t,
  28. uint32_t,
  29. uint8_t,
  30. void *,
  31. void *,
  32. uint16_t,
  33. uint16_t,
  34. int32_t,
  35. uint32_t,
  36. uint32_t,
  37. void *,
  38. uint8_t
  39. );
  40. bool R_DMAC_Destroy(
  41. uint8_t
  42. );
  43. bool R_DMAC_Control(
  44. uint8_t,
  45. uint16_t,
  46. void *,
  47. void *,
  48. uint16_t,
  49. uint16_t,
  50. int32_t,
  51. uint32_t,
  52. uint32_t
  53. );
  54. bool R_DMAC_GetStatus(
  55. uint8_t,
  56. uint8_t *,
  57. uint32_t *,
  58. uint32_t *,
  59. uint16_t *,
  60. uint16_t *
  61. );
  62. /* Transfer mode selection */
  63. #define PDL_DMAC_NORMAL 0x00000001ul
  64. #define PDL_DMAC_REPEAT 0x00000002ul
  65. #define PDL_DMAC_BLOCK 0x00000004ul
  66. #define PDL_DMAC_SOURCE 0x00000008ul
  67. #define PDL_DMAC_DESTINATION 0x00000010ul
  68. /* Address addition direction selection */
  69. #define PDL_DMAC_SOURCE_ADDRESS_FIXED 0x00000020ul
  70. #define PDL_DMAC_SOURCE_ADDRESS_PLUS 0x00000040ul
  71. #define PDL_DMAC_SOURCE_ADDRESS_MINUS 0x00000080ul
  72. #define PDL_DMAC_SOURCE_ADDRESS_OFFSET 0x00000100ul
  73. #define PDL_DMAC_DESTINATION_ADDRESS_FIXED 0x00000200ul
  74. #define PDL_DMAC_DESTINATION_ADDRESS_PLUS 0x00000400ul
  75. #define PDL_DMAC_DESTINATION_ADDRESS_MINUS 0x00000800ul
  76. #define PDL_DMAC_DESTINATION_ADDRESS_OFFSET 0x00001000ul
  77. /* Transfer data size */
  78. #define PDL_DMAC_SIZE_8 0x00002000ul
  79. #define PDL_DMAC_SIZE_16 0x00004000ul
  80. #define PDL_DMAC_SIZE_32 0x00008000ul
  81. /* Interrupt generation */
  82. #define PDL_DMAC_IRQ_END 0x00010000ul
  83. #define PDL_DMAC_IRQ_ESCAPE_END 0x00020000ul
  84. #define PDL_DMAC_IRQ_REPEAT_SIZE_END 0x00040000ul
  85. #define PDL_DMAC_IRQ_EXT_SOURCE 0x00080000ul
  86. #define PDL_DMAC_IRQ_EXT_DESTINATION 0x00100000ul
  87. /* Start trigger forwarding */
  88. #define PDL_DMAC_TRIGGER_CLEAR 0x00200000ul
  89. #define PDL_DMAC_TRIGGER_FORWARD 0x00400000ul
  90. /* DTC trigger control */
  91. #define PDL_DMAC_DTC_TRIGGER_DISABLE 0x00800000ul
  92. #define PDL_DMAC_DTC_TRIGGER_ENABLE 0x01000000ul
  93. /* DMAC activation source */
  94. #define PDL_DMAC_TRIGGER_SW 0x00u
  95. #define PDL_DMAC_TRIGGER_CMT0 VECT_CMT0_CMI0
  96. #define PDL_DMAC_TRIGGER_CMT1 VECT_CMT1_CMI1
  97. #define PDL_DMAC_TRIGGER_CMT2 VECT_CMT2_CMI2
  98. #define PDL_DMAC_TRIGGER_CMT3 VECT_CMT3_CMI3
  99. #define PDL_DMAC_TRIGGER_USB0_D0 VECT_USB0_D0FIFO0
  100. #define PDL_DMAC_TRIGGER_USB0_D1 VECT_USB0_D1FIFO0
  101. #define PDL_DMAC_TRIGGER_USB1_D0 VECT_USB1_D0FIFO1
  102. #define PDL_DMAC_TRIGGER_USB1_D1 VECT_USB1_D1FIFO1
  103. #define PDL_DMAC_TRIGGER_SPI0_RX VECT_RSPI0_SPRI0
  104. #define PDL_DMAC_TRIGGER_SPI0_TX VECT_RSPI0_SPTI0
  105. #define PDL_DMAC_TRIGGER_SPI1_RX VECT_RSPI1_SPRI1
  106. #define PDL_DMAC_TRIGGER_SPI1_TX VECT_RSPI1_SPTI1
  107. #define PDL_DMAC_TRIGGER_IRQ0 VECT_ICU_IRQ0
  108. #define PDL_DMAC_TRIGGER_IRQ1 VECT_ICU_IRQ1
  109. #define PDL_DMAC_TRIGGER_IRQ2 VECT_ICU_IRQ2
  110. #define PDL_DMAC_TRIGGER_IRQ3 VECT_ICU_IRQ3
  111. #define PDL_DMAC_TRIGGER_ADC10_0 VECT_AD0_ADI0
  112. #define PDL_DMAC_TRIGGER_ADC10_1 VECT_AD1_ADI1
  113. #define PDL_DMAC_TRIGGER_ADC12 VECT_S12AD_ADI
  114. #define PDL_DMAC_TRIGGER_MTU0 VECT_MTU0_TGIA0
  115. #define PDL_DMAC_TRIGGER_MTU1 VECT_MTU1_TGIA1
  116. #define PDL_DMAC_TRIGGER_MTU2 VECT_MTU2_TGIA2
  117. #define PDL_DMAC_TRIGGER_MTU3 VECT_MTU3_TGIA3
  118. #define PDL_DMAC_TRIGGER_MTU4 VECT_MTU4_TGIA4
  119. #define PDL_DMAC_TRIGGER_MTU6 VECT_MTU6_TGIA6
  120. #define PDL_DMAC_TRIGGER_MTU7 VECT_MTU7_TGIA7
  121. #define PDL_DMAC_TRIGGER_MTU8 VECT_MTU8_TGIA8
  122. #define PDL_DMAC_TRIGGER_MTU9 VECT_MTU9_TGIA9
  123. #define PDL_DMAC_TRIGGER_MTU10 VECT_MTU10_TGIA10
  124. #define PDL_DMAC_TRIGGER_SCI0_RX VECT_SCI0_RXI0
  125. #define PDL_DMAC_TRIGGER_SCI0_TX VECT_SCI0_TXI0
  126. #define PDL_DMAC_TRIGGER_SCI1_RX VECT_SCI1_RXI1
  127. #define PDL_DMAC_TRIGGER_SCI1_TX VECT_SCI1_TXI1
  128. #define PDL_DMAC_TRIGGER_SCI2_RX VECT_SCI2_RXI2
  129. #define PDL_DMAC_TRIGGER_SCI2_TX VECT_SCI2_TXI2
  130. #define PDL_DMAC_TRIGGER_SCI3_RX VECT_SCI3_RXI3
  131. #define PDL_DMAC_TRIGGER_SCI3_TX VECT_SCI3_TXI3
  132. #define PDL_DMAC_TRIGGER_SCI5_RX VECT_SCI5_RXI5
  133. #define PDL_DMAC_TRIGGER_SCI5_TX VECT_SCI5_TXI5
  134. #define PDL_DMAC_TRIGGER_SCI6_RX VECT_SCI6_RXI6
  135. #define PDL_DMAC_TRIGGER_SCI6_TX VECT_SCI6_TXI6
  136. #define PDL_DMAC_TRIGGER_IIC0_RX VECT_RIIC0_ICRXI0
  137. #define PDL_DMAC_TRIGGER_IIC0_TX VECT_RIIC0_ICTXI0
  138. #define PDL_DMAC_TRIGGER_IIC1_RX VECT_RIIC1_ICRXI1
  139. #define PDL_DMAC_TRIGGER_IIC1_TX VECT_RIIC1_ICTXI1
  140. /* Enable / suspend control */
  141. #define PDL_DMAC_ENABLE 0x0001u
  142. #define PDL_DMAC_SUSPEND 0x0002u
  143. /* Software trigger control */
  144. #define PDL_DMAC_START 0x0004u
  145. #define PDL_DMAC_START_RUN 0x0008u
  146. #define PDL_DMAC_STOP 0x0010u
  147. /* Transfer end interrupt flag control */
  148. #define PDL_DMAC_CLEAR_DTIF 0x0020u
  149. #define PDL_DMAC_CLEAR_ESIF 0x0040u
  150. /* Modify registers selection */
  151. #define PDL_DMAC_UPDATE_SOURCE 0x0080u
  152. #define PDL_DMAC_UPDATE_DESTINATION 0x0100u
  153. #define PDL_DMAC_UPDATE_COUNT 0x0200u
  154. #define PDL_DMAC_UPDATE_SIZE 0x0400u
  155. #define PDL_DMAC_UPDATE_OFFSET 0x0800u
  156. #define PDL_DMAC_UPDATE_REPEAT_SOURCE 0x1000u
  157. #define PDL_DMAC_UPDATE_REPEAT_DESTINATION 0x2000u
  158. #endif
  159. /* End of file */