early_pin.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Joshua Henderson <[email protected]>
  4. * Copyright (C) 2015 Microchip Technology Inc. All rights reserved.
  5. */
  6. #ifndef _PIC32MZDA_EARLY_PIN_H
  7. #define _PIC32MZDA_EARLY_PIN_H
  8. /*
  9. * This is a complete, yet overly simplistic and unoptimized, PIC32MZDA PPS
  10. * configuration only useful before we have full pinctrl initialized.
  11. */
  12. /* Input PPS Functions */
  13. enum {
  14. IN_FUNC_INT3,
  15. IN_FUNC_T2CK,
  16. IN_FUNC_T6CK,
  17. IN_FUNC_IC3,
  18. IN_FUNC_IC7,
  19. IN_FUNC_U1RX,
  20. IN_FUNC_U2CTS,
  21. IN_FUNC_U5RX,
  22. IN_FUNC_U6CTS,
  23. IN_FUNC_SDI1,
  24. IN_FUNC_SDI3,
  25. IN_FUNC_SDI5,
  26. IN_FUNC_SS6,
  27. IN_FUNC_REFCLKI1,
  28. IN_FUNC_INT4,
  29. IN_FUNC_T5CK,
  30. IN_FUNC_T7CK,
  31. IN_FUNC_IC4,
  32. IN_FUNC_IC8,
  33. IN_FUNC_U3RX,
  34. IN_FUNC_U4CTS,
  35. IN_FUNC_SDI2,
  36. IN_FUNC_SDI4,
  37. IN_FUNC_C1RX,
  38. IN_FUNC_REFCLKI4,
  39. IN_FUNC_INT2,
  40. IN_FUNC_T3CK,
  41. IN_FUNC_T8CK,
  42. IN_FUNC_IC2,
  43. IN_FUNC_IC5,
  44. IN_FUNC_IC9,
  45. IN_FUNC_U1CTS,
  46. IN_FUNC_U2RX,
  47. IN_FUNC_U5CTS,
  48. IN_FUNC_SS1,
  49. IN_FUNC_SS3,
  50. IN_FUNC_SS4,
  51. IN_FUNC_SS5,
  52. IN_FUNC_C2RX,
  53. IN_FUNC_INT1,
  54. IN_FUNC_T4CK,
  55. IN_FUNC_T9CK,
  56. IN_FUNC_IC1,
  57. IN_FUNC_IC6,
  58. IN_FUNC_U3CTS,
  59. IN_FUNC_U4RX,
  60. IN_FUNC_U6RX,
  61. IN_FUNC_SS2,
  62. IN_FUNC_SDI6,
  63. IN_FUNC_OCFA,
  64. IN_FUNC_REFCLKI3,
  65. };
  66. /* Input PPS Pins */
  67. #define IN_RPD2 0x00
  68. #define IN_RPG8 0x01
  69. #define IN_RPF4 0x02
  70. #define IN_RPD10 0x03
  71. #define IN_RPF1 0x04
  72. #define IN_RPB9 0x05
  73. #define IN_RPB10 0x06
  74. #define IN_RPC14 0x07
  75. #define IN_RPB5 0x08
  76. #define IN_RPC1 0x0A
  77. #define IN_RPD14 0x0B
  78. #define IN_RPG1 0x0C
  79. #define IN_RPA14 0x0D
  80. #define IN_RPD6 0x0E
  81. #define IN_RPD3 0x00
  82. #define IN_RPG7 0x01
  83. #define IN_RPF5 0x02
  84. #define IN_RPD11 0x03
  85. #define IN_RPF0 0x04
  86. #define IN_RPB1 0x05
  87. #define IN_RPE5 0x06
  88. #define IN_RPC13 0x07
  89. #define IN_RPB3 0x08
  90. #define IN_RPC4 0x0A
  91. #define IN_RPD15 0x0B
  92. #define IN_RPG0 0x0C
  93. #define IN_RPA15 0x0D
  94. #define IN_RPD7 0x0E
  95. #define IN_RPD9 0x00
  96. #define IN_RPG6 0x01
  97. #define IN_RPB8 0x02
  98. #define IN_RPB15 0x03
  99. #define IN_RPD4 0x04
  100. #define IN_RPB0 0x05
  101. #define IN_RPE3 0x06
  102. #define IN_RPB7 0x07
  103. #define IN_RPF12 0x09
  104. #define IN_RPD12 0x0A
  105. #define IN_RPF8 0x0B
  106. #define IN_RPC3 0x0C
  107. #define IN_RPE9 0x0D
  108. #define IN_RPD1 0x00
  109. #define IN_RPG9 0x01
  110. #define IN_RPB14 0x02
  111. #define IN_RPD0 0x03
  112. #define IN_RPB6 0x05
  113. #define IN_RPD5 0x06
  114. #define IN_RPB2 0x07
  115. #define IN_RPF3 0x08
  116. #define IN_RPF13 0x09
  117. #define IN_RPF2 0x0B
  118. #define IN_RPC2 0x0C
  119. #define IN_RPE8 0x0D
  120. /* Output PPS Pins */
  121. enum {
  122. OUT_RPD2,
  123. OUT_RPG8,
  124. OUT_RPF4,
  125. OUT_RPD10,
  126. OUT_RPF1,
  127. OUT_RPB9,
  128. OUT_RPB10,
  129. OUT_RPC14,
  130. OUT_RPB5,
  131. OUT_RPC1,
  132. OUT_RPD14,
  133. OUT_RPG1,
  134. OUT_RPA14,
  135. OUT_RPD6,
  136. OUT_RPD3,
  137. OUT_RPG7,
  138. OUT_RPF5,
  139. OUT_RPD11,
  140. OUT_RPF0,
  141. OUT_RPB1,
  142. OUT_RPE5,
  143. OUT_RPC13,
  144. OUT_RPB3,
  145. OUT_RPC4,
  146. OUT_RPD15,
  147. OUT_RPG0,
  148. OUT_RPA15,
  149. OUT_RPD7,
  150. OUT_RPD9,
  151. OUT_RPG6,
  152. OUT_RPB8,
  153. OUT_RPB15,
  154. OUT_RPD4,
  155. OUT_RPB0,
  156. OUT_RPE3,
  157. OUT_RPB7,
  158. OUT_RPF12,
  159. OUT_RPD12,
  160. OUT_RPF8,
  161. OUT_RPC3,
  162. OUT_RPE9,
  163. OUT_RPD1,
  164. OUT_RPG9,
  165. OUT_RPB14,
  166. OUT_RPD0,
  167. OUT_RPB6,
  168. OUT_RPD5,
  169. OUT_RPB2,
  170. OUT_RPF3,
  171. OUT_RPF13,
  172. OUT_RPC2,
  173. OUT_RPE8,
  174. OUT_RPF2,
  175. };
  176. /* Output PPS Functions */
  177. #define OUT_FUNC_U3TX 0x01
  178. #define OUT_FUNC_U4RTS 0x02
  179. #define OUT_FUNC_SDO1 0x05
  180. #define OUT_FUNC_SDO2 0x06
  181. #define OUT_FUNC_SDO3 0x07
  182. #define OUT_FUNC_SDO5 0x09
  183. #define OUT_FUNC_SS6 0x0A
  184. #define OUT_FUNC_OC3 0x0B
  185. #define OUT_FUNC_OC6 0x0C
  186. #define OUT_FUNC_REFCLKO4 0x0D
  187. #define OUT_FUNC_C2OUT 0x0E
  188. #define OUT_FUNC_C1TX 0x0F
  189. #define OUT_FUNC_U1TX 0x01
  190. #define OUT_FUNC_U2RTS 0x02
  191. #define OUT_FUNC_U5TX 0x03
  192. #define OUT_FUNC_U6RTS 0x04
  193. #define OUT_FUNC_SDO1 0x05
  194. #define OUT_FUNC_SDO2 0x06
  195. #define OUT_FUNC_SDO3 0x07
  196. #define OUT_FUNC_SDO4 0x08
  197. #define OUT_FUNC_SDO5 0x09
  198. #define OUT_FUNC_OC4 0x0B
  199. #define OUT_FUNC_OC7 0x0C
  200. #define OUT_FUNC_REFCLKO1 0x0F
  201. #define OUT_FUNC_U3RTS 0x01
  202. #define OUT_FUNC_U4TX 0x02
  203. #define OUT_FUNC_U6TX 0x04
  204. #define OUT_FUNC_SS1 0x05
  205. #define OUT_FUNC_SS3 0x07
  206. #define OUT_FUNC_SS4 0x08
  207. #define OUT_FUNC_SS5 0x09
  208. #define OUT_FUNC_SDO6 0x0A
  209. #define OUT_FUNC_OC5 0x0B
  210. #define OUT_FUNC_OC8 0x0C
  211. #define OUT_FUNC_C1OUT 0x0E
  212. #define OUT_FUNC_REFCLKO3 0x0F
  213. #define OUT_FUNC_U1RTS 0x01
  214. #define OUT_FUNC_U2TX 0x02
  215. #define OUT_FUNC_U5RTS 0x03
  216. #define OUT_FUNC_U6TX 0x04
  217. #define OUT_FUNC_SS2 0x06
  218. #define OUT_FUNC_SDO4 0x08
  219. #define OUT_FUNC_SDO6 0x0A
  220. #define OUT_FUNC_OC2 0x0B
  221. #define OUT_FUNC_OC1 0x0C
  222. #define OUT_FUNC_OC9 0x0D
  223. #define OUT_FUNC_C2TX 0x0F
  224. void pic32_pps_input(int function, int pin);
  225. void pic32_pps_output(int function, int pin);
  226. #endif