fiopad_comm.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. #ifndef BOARD_E2000_FIOPAD_COMMON_H
  2. #define BOARD_E2000_FIOPAD_COMMON_H
  3. #ifdef __cplusplus
  4. extern "C"
  5. {
  6. #endif
  7. /***************************** Include Files *********************************/
  8. #include "ftypes.h"
  9. /**************************** Type Definitions *******************************/
  10. /************************** Constant Definitions *****************************/
  11. /************************** Variable Definitions *****************************/
  12. /***************** Macros (Inline Functions) Definitions *********************/
  13. #define FIOPAD_INDEX(offset) \
  14. { \
  15. /* reg_off */ (offset), \
  16. /* reg_bit */ (0) \
  17. }
  18. /*****************************************************************************/
  19. /* register offset of iopad function / pull / driver strength */
  20. #define FIOPAD_0_FUNC_OFFSET 0x0000U
  21. #define FIOPAD_2_FUNC_OFFSET 0x0004U
  22. #define FIOPAD_3_FUNC_OFFSET 0x0008U
  23. #define FIOPAD_4_FUNC_OFFSET 0x000CU
  24. #define FIOPAD_5_FUNC_OFFSET 0x0010U
  25. #define FIOPAD_6_FUNC_OFFSET 0x0014U
  26. #define FIOPAD_7_FUNC_OFFSET 0x0018U
  27. #define FIOPAD_8_FUNC_OFFSET 0x001CU
  28. #define FIOPAD_9_FUNC_OFFSET 0x0020U
  29. #define FIOPAD_10_FUNC_OFFSET 0x0024U
  30. #define FIOPAD_11_FUNC_OFFSET 0x0028U
  31. #define FIOPAD_12_FUNC_OFFSET 0x002CU
  32. #define FIOPAD_13_FUNC_OFFSET 0x0030U
  33. #define FIOPAD_14_FUNC_OFFSET 0x0034U
  34. #define FIOPAD_15_FUNC_OFFSET 0x0038U
  35. #define FIOPAD_16_FUNC_OFFSET 0x003CU
  36. #define FIOPAD_17_FUNC_OFFSET 0x0040U
  37. #define FIOPAD_18_FUNC_OFFSET 0x0044U
  38. #define FIOPAD_19_FUNC_OFFSET 0x0048U
  39. #define FIOPAD_20_FUNC_OFFSET 0x004CU
  40. #define FIOPAD_21_FUNC_OFFSET 0x0050U
  41. #define FIOPAD_22_FUNC_OFFSET 0x0054U
  42. #define FIOPAD_23_FUNC_OFFSET 0x0058U
  43. #define FIOPAD_24_FUNC_OFFSET 0x005CU
  44. #define FIOPAD_25_FUNC_OFFSET 0x0060U
  45. #define FIOPAD_26_FUNC_OFFSET 0x0064U
  46. #define FIOPAD_27_FUNC_OFFSET 0x0068U
  47. #define FIOPAD_28_FUNC_OFFSET 0x006CU
  48. #define FIOPAD_31_FUNC_OFFSET 0x0070U
  49. #define FIOPAD_32_FUNC_OFFSET 0x0074U
  50. #define FIOPAD_33_FUNC_OFFSET 0x0078U
  51. #define FIOPAD_34_FUNC_OFFSET 0x007CU
  52. #define FIOPAD_35_FUNC_OFFSET 0x0080U
  53. #define FIOPAD_36_FUNC_OFFSET 0x0084U
  54. #define FIOPAD_37_FUNC_OFFSET 0x0088U
  55. #define FIOPAD_38_FUNC_OFFSET 0x008CU
  56. #define FIOPAD_39_FUNC_OFFSET 0x0090U
  57. #define FIOPAD_40_FUNC_OFFSET 0x0094U
  58. #define FIOPAD_41_FUNC_OFFSET 0x0098U
  59. #define FIOPAD_42_FUNC_OFFSET 0x009CU
  60. #define FIOPAD_43_FUNC_OFFSET 0x00A0U
  61. #define FIOPAD_44_FUNC_OFFSET 0x00A4U
  62. #define FIOPAD_45_FUNC_OFFSET 0x00A8U
  63. #define FIOPAD_46_FUNC_OFFSET 0x00ACU
  64. #define FIOPAD_47_FUNC_OFFSET 0x00B0U
  65. #define FIOPAD_48_FUNC_OFFSET 0x00B4U
  66. #define FIOPAD_49_FUNC_OFFSET 0x00B8U
  67. #define FIOPAD_50_FUNC_OFFSET 0x00BCU
  68. #define FIOPAD_51_FUNC_OFFSET 0x00C0U
  69. #define FIOPAD_52_FUNC_OFFSET 0x00C4U
  70. #define FIOPAD_53_FUNC_OFFSET 0x00C8U
  71. #define FIOPAD_54_FUNC_OFFSET 0x00CCU
  72. #define FIOPAD_55_FUNC_OFFSET 0x00D0U
  73. #define FIOPAD_56_FUNC_OFFSET 0x00D4U
  74. #define FIOPAD_57_FUNC_OFFSET 0x00D8U
  75. #define FIOPAD_58_FUNC_OFFSET 0x00DCU
  76. #define FIOPAD_59_FUNC_OFFSET 0x00E0U
  77. #define FIOPAD_60_FUNC_OFFSET 0x00E4U
  78. #define FIOPAD_61_FUNC_OFFSET 0x00E8U
  79. #define FIOPAD_62_FUNC_OFFSET 0x00ECU
  80. #define FIOPAD_63_FUNC_OFFSET 0x00F0U
  81. #define FIOPAD_64_FUNC_OFFSET 0x00F4U
  82. #define FIOPAD_65_FUNC_OFFSET 0x00F8U
  83. #define FIOPAD_66_FUNC_OFFSET 0x00FCU
  84. #define FIOPAD_67_FUNC_OFFSET 0x0100U
  85. #define FIOPAD_68_FUNC_OFFSET 0x0104U
  86. #define FIOPAD_148_FUNC_OFFSET 0x0108U
  87. #define FIOPAD_69_FUNC_OFFSET 0x010CU
  88. #define FIOPAD_70_FUNC_OFFSET 0x0110U
  89. #define FIOPAD_71_FUNC_OFFSET 0x0114U
  90. #define FIOPAD_72_FUNC_OFFSET 0x0118U
  91. #define FIOPAD_73_FUNC_OFFSET 0x011CU
  92. #define FIOPAD_74_FUNC_OFFSET 0x0120U
  93. #define FIOPAD_75_FUNC_OFFSET 0x0124U
  94. #define FIOPAD_76_FUNC_OFFSET 0x0128U
  95. #define FIOPAD_77_FUNC_OFFSET 0x012CU
  96. #define FIOPAD_78_FUNC_OFFSET 0x0130U
  97. #define FIOPAD_79_FUNC_OFFSET 0x0134U
  98. #define FIOPAD_80_FUNC_OFFSET 0x0138U
  99. #define FIOPAD_81_FUNC_OFFSET 0x013CU
  100. #define FIOPAD_82_FUNC_OFFSET 0x0140U
  101. #define FIOPAD_83_FUNC_OFFSET 0x0144U
  102. #define FIOPAD_84_FUNC_OFFSET 0x0148U
  103. #define FIOPAD_85_FUNC_OFFSET 0x014CU
  104. #define FIOPAD_86_FUNC_OFFSET 0x0150U
  105. #define FIOPAD_87_FUNC_OFFSET 0x0154U
  106. #define FIOPAD_88_FUNC_OFFSET 0x0158U
  107. #define FIOPAD_89_FUNC_OFFSET 0x015CU
  108. #define FIOPAD_90_FUNC_OFFSET 0x0160U
  109. #define FIOPAD_91_FUNC_OFFSET 0x0164U
  110. #define FIOPAD_92_FUNC_OFFSET 0x0168U
  111. #define FIOPAD_93_FUNC_OFFSET 0x016CU
  112. #define FIOPAD_94_FUNC_OFFSET 0x0170U
  113. #define FIOPAD_95_FUNC_OFFSET 0x0174U
  114. #define FIOPAD_96_FUNC_OFFSET 0x0178U
  115. #define FIOPAD_97_FUNC_OFFSET 0x017CU
  116. #define FIOPAD_98_FUNC_OFFSET 0x0180U
  117. #define FIOPAD_29_FUNC_OFFSET 0x0184U
  118. #define FIOPAD_30_FUNC_OFFSET 0x0188U
  119. #define FIOPAD_99_FUNC_OFFSET 0x018CU
  120. #define FIOPAD_100_FUNC_OFFSET 0x0190U
  121. #define FIOPAD_101_FUNC_OFFSET 0x0194U
  122. #define FIOPAD_102_FUNC_OFFSET 0x0198U
  123. #define FIOPAD_103_FUNC_OFFSET 0x019CU
  124. #define FIOPAD_104_FUNC_OFFSET 0x01A0U
  125. #define FIOPAD_105_FUNC_OFFSET 0x01A4U
  126. #define FIOPAD_106_FUNC_OFFSET 0x01A8U
  127. #define FIOPAD_107_FUNC_OFFSET 0x01ACU
  128. #define FIOPAD_108_FUNC_OFFSET 0x01B0U
  129. #define FIOPAD_109_FUNC_OFFSET 0x01B4U
  130. #define FIOPAD_110_FUNC_OFFSET 0x01B8U
  131. #define FIOPAD_111_FUNC_OFFSET 0x01BCU
  132. #define FIOPAD_112_FUNC_OFFSET 0x01C0U
  133. #define FIOPAD_113_FUNC_OFFSET 0x01C4U
  134. #define FIOPAD_114_FUNC_OFFSET 0x01C8U
  135. #define FIOPAD_115_FUNC_OFFSET 0x01CCU
  136. #define FIOPAD_116_FUNC_OFFSET 0x01D0U
  137. #define FIOPAD_117_FUNC_OFFSET 0x01D4U
  138. #define FIOPAD_118_FUNC_OFFSET 0x01D8U
  139. #define FIOPAD_119_FUNC_OFFSET 0x01DCU
  140. #define FIOPAD_120_FUNC_OFFSET 0x01E0U
  141. #define FIOPAD_121_FUNC_OFFSET 0x01E4U
  142. #define FIOPAD_122_FUNC_OFFSET 0x01E8U
  143. #define FIOPAD_123_FUNC_OFFSET 0x01ECU
  144. #define FIOPAD_124_FUNC_OFFSET 0x01F0U
  145. #define FIOPAD_125_FUNC_OFFSET 0x01F4U
  146. #define FIOPAD_126_FUNC_OFFSET 0x01F8U
  147. #define FIOPAD_127_FUNC_OFFSET 0x01FCU
  148. #define FIOPAD_128_FUNC_OFFSET 0x0200U
  149. #define FIOPAD_129_FUNC_OFFSET 0x0204U
  150. #define FIOPAD_130_FUNC_OFFSET 0x0208U
  151. #define FIOPAD_131_FUNC_OFFSET 0x020CU
  152. #define FIOPAD_132_FUNC_OFFSET 0x0210U
  153. #define FIOPAD_133_FUNC_OFFSET 0x0214U
  154. #define FIOPAD_134_FUNC_OFFSET 0x0218U
  155. #define FIOPAD_135_FUNC_OFFSET 0x021CU
  156. #define FIOPAD_136_FUNC_OFFSET 0x0220U
  157. #define FIOPAD_137_FUNC_OFFSET 0x0224U
  158. #define FIOPAD_138_FUNC_OFFSET 0x0228U
  159. #define FIOPAD_139_FUNC_OFFSET 0x022CU
  160. #define FIOPAD_140_FUNC_OFFSET 0x0230U
  161. #define FIOPAD_141_FUNC_OFFSET 0x0234U
  162. #define FIOPAD_142_FUNC_OFFSET 0x0238U
  163. #define FIOPAD_143_FUNC_OFFSET 0x023CU
  164. #define FIOPAD_144_FUNC_OFFSET 0x0240U
  165. #define FIOPAD_145_FUNC_OFFSET 0x0244U
  166. #define FIOPAD_146_FUNC_OFFSET 0x0248U
  167. #define FIOPAD_147_FUNC_OFFSET 0x024CU
  168. /* register offset of iopad delay */
  169. #define FIOPAD_10_DELAY_OFFSET 0x1024U
  170. #define FIOPAD_11_DELAY_OFFSET 0x1028U
  171. #define FIOPAD_12_DELAY_OFFSET 0x102CU
  172. #define FIOPAD_13_DELAY_OFFSET 0x1030U
  173. #define FIOPAD_14_DELAY_OFFSET 0x1034U
  174. #define FIOPAD_23_DELAY_OFFSET 0x1058U
  175. #define FIOPAD_24_DELAY_OFFSET 0x105CU
  176. #define FIOPAD_25_DELAY_OFFSET 0x1060U
  177. #define FIOPAD_26_DELAY_OFFSET 0x1064U
  178. #define FIOPAD_32_DELAY_OFFSET 0x1074U
  179. #define FIOPAD_33_DELAY_OFFSET 0x1078U
  180. #define FIOPAD_34_DELAY_OFFSET 0x107CU
  181. #define FIOPAD_35_DELAY_OFFSET 0x1080U
  182. #define FIOPAD_55_DELAY_OFFSET 0x10D0U
  183. #define FIOPAD_56_DELAY_OFFSET 0x10D4U
  184. #define FIOPAD_57_DELAY_OFFSET 0x10D8U
  185. #define FIOPAD_58_DELAY_OFFSET 0x10DCU
  186. #define FIOPAD_59_DELAY_OFFSET 0x10E0U
  187. #define FIOPAD_60_DELAY_OFFSET 0x10E4U
  188. #define FIOPAD_61_DELAY_OFFSET 0x10E8U
  189. #define FIOPAD_62_DELAY_OFFSET 0x10ECU
  190. #define FIOPAD_63_DELAY_OFFSET 0x10F0U
  191. #define FIOPAD_64_DELAY_OFFSET 0x10F4U
  192. #define FIOPAD_65_DELAY_OFFSET 0x10F8U
  193. #define FIOPAD_66_DELAY_OFFSET 0x10FCU
  194. #define FIOPAD_67_DELAY_OFFSET 0x1100U
  195. #define FIOPAD_68_DELAY_OFFSET 0x1104U
  196. #define FIOPAD_148_DELAY_OFFSET 0x1108U
  197. #define FIOPAD_69_DELAY_OFFSET 0x110CU
  198. #define FIOPAD_70_DELAY_OFFSET 0x1110U
  199. #define FIOPAD_71_DELAY_OFFSET 0x1114U
  200. #define FIOPAD_72_DELAY_OFFSET 0x1118U
  201. #define FIOPAD_73_DELAY_OFFSET 0x111CU
  202. #define FIOPAD_74_DELAY_OFFSET 0x1120U
  203. #define FIOPAD_75_DELAY_OFFSET 0x1124U
  204. #define FIOPAD_76_DELAY_OFFSET 0x1128U
  205. #define FIOPAD_77_DELAY_OFFSET 0x112CU
  206. #define FIOPAD_78_DELAY_OFFSET 0x1130U
  207. #define FIOPAD_80_DELAY_OFFSET 0x1138U
  208. #define FIOPAD_81_DELAY_OFFSET 0x113CU
  209. #define FIOPAD_82_DELAY_OFFSET 0x1140U
  210. #define FIOPAD_83_DELAY_OFFSET 0x1144U
  211. #define FIOPAD_84_DELAY_OFFSET 0x1148U
  212. #define FIOPAD_85_DELAY_OFFSET 0x114CU
  213. #define FIOPAD_86_DELAY_OFFSET 0x1150U
  214. #define FIOPAD_87_DELAY_OFFSET 0x1154U
  215. #define FIOPAD_88_DELAY_OFFSET 0x1158U
  216. #define FIOPAD_89_DELAY_OFFSET 0x115CU
  217. #define FIOPAD_90_DELAY_OFFSET 0x1160U
  218. #define FIOPAD_92_DELAY_OFFSET 0x1168U
  219. #define FIOPAD_93_DELAY_OFFSET 0x116CU
  220. #define FIOPAD_94_DELAY_OFFSET 0x1170U
  221. #define FIOPAD_95_DELAY_OFFSET 0x1174U
  222. #define FIOPAD_96_DELAY_OFFSET 0x1178U
  223. #define FIOPAD_97_DELAY_OFFSET 0x117CU
  224. #define FIOPAD_98_DELAY_OFFSET 0x1180U
  225. #define FIOPAD_99_DELAY_OFFSET 0x118CU
  226. #define FIOPAD_100_DELAY_OFFSET 0x1190U
  227. #define FIOPAD_101_DELAY_OFFSET 0x1194U
  228. #define FIOPAD_102_DELAY_OFFSET 0x1198U
  229. #define FIOPAD_103_DELAY_OFFSET 0x119CU
  230. #define FIOPAD_104_DELAY_OFFSET 0x11A0U
  231. #define FIOPAD_105_DELAY_OFFSET 0x11A4U
  232. #define FIOPAD_106_DELAY_OFFSET 0x11A8U
  233. #define FIOPAD_107_DELAY_OFFSET 0x11ACU
  234. #define FIOPAD_108_DELAY_OFFSET 0x11B0U
  235. #define FIOPAD_109_DELAY_OFFSET 0x11B4U
  236. #define FIOPAD_110_DELAY_OFFSET 0x11B8U
  237. #define FIOPAD_111_DELAY_OFFSET 0x11BCU
  238. #define FIOPAD_112_DELAY_OFFSET 0x11C0U
  239. #define FIOPAD_115_DELAY_OFFSET 0x11CCU
  240. #define FIOPAD_116_DELAY_OFFSET 0x11D0U
  241. #define FIOPAD_117_DELAY_OFFSET 0x11D4U
  242. #define FIOPAD_118_DELAY_OFFSET 0x11D8U
  243. #define FIOPAD_119_DELAY_OFFSET 0x11DCU
  244. #define FIOPAD_120_DELAY_OFFSET 0x11E0U
  245. #define FIOPAD_121_DELAY_OFFSET 0x11E4U
  246. #define FIOPAD_122_DELAY_OFFSET 0x11E8U
  247. #define FIOPAD_123_DELAY_OFFSET 0x11ECU
  248. #define FIOPAD_124_DELAY_OFFSET 0x11F0U
  249. #define FIOPAD_125_DELAY_OFFSET 0x11F4U
  250. #define FIOPAD_126_DELAY_OFFSET 0x11F8U
  251. #define FIOPAD_127_DELAY_OFFSET 0x11FCU
  252. #define FIOPAD_128_DELAY_OFFSET 0x1200U
  253. #define FIOPAD_136_DELAY_OFFSET 0x1220U
  254. #define FIOPAD_137_DELAY_OFFSET 0x1224U
  255. #define FIOPAD_138_DELAY_OFFSET 0x1228U
  256. #define FIOPAD_139_DELAY_OFFSET 0x122CU
  257. #define FIOPAD_140_DELAY_OFFSET 0x1230U
  258. #define FIOPAD_141_DELAY_OFFSET 0x1234U
  259. #define FIOPAD_142_DELAY_OFFSET 0x1238U
  260. #define FIOPAD_143_DELAY_OFFSET 0x123CU
  261. #define FIOPAD_144_DELAY_OFFSET 0x1240U
  262. #define FIOPAD_145_DELAY_OFFSET 0x1244U
  263. #define FIOPAD_146_DELAY_OFFSET 0x1248U
  264. #define FIOPAD_147_DELAY_OFFSET 0x124CU
  265. /************************** Function Prototypes ******************************/
  266. /* set iopad mux for spim */
  267. void FIOPadSetSpimMux(u32 spim_id);
  268. /* set iopad mux for gpio */
  269. void FIOPadSetGpioMux(u32 gpio_id, u32 pin_id);
  270. /* set iopad mux for mio */
  271. void FIOPadSetMioMux(u32 mio_id);
  272. /* print information of all iopad */
  273. void FIOPadDumpPadFunc(void);
  274. /* set iopad mux for can */
  275. void FIOPadSetCanMux(u32 can_id);
  276. /* set iopad mux for qspi */
  277. void FIOPadSetQspiMux(u32 qspi_id, u32 cs_id);
  278. /* set iopad mux for pwm */
  279. void FIOPadSetPwmMux(u32 pwm_id, u32 pwm_channel);
  280. /* set iopad mux for adc */
  281. void FIOPadSetAdcMux(u32 adc_id, u32 adc_channel);
  282. /* set iopad mux for tacho*/
  283. void FIOPadSetTachoMux(u32 pwm_in_id);
  284. /* set iopad mux for uart*/
  285. void FIOPadSetUartMux(u32 uart_id);
  286. #ifdef __cplusplus
  287. }
  288. #endif
  289. #endif