board.h 81 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267
  1. #ifndef _BOARD_H_
  2. #define _BOARD_H_
  3. /*
  4. * Setup for STMicroelectronics WaveShare XCore407I/EVK407I board.
  5. */
  6. /*
  7. * Board identifier.
  8. */
  9. #define BOARD_WAVESHARE_XCORE407I
  10. #define BOARD_NAME "WaveShare XCore407I/EVK407I"
  11. #if !defined(STM32_LSECLK)
  12. #define STM32_LSECLK 32768
  13. #endif
  14. #if !defined(STM32_HSECLK)
  15. #define STM32_HSECLK 8000000
  16. #endif
  17. #define STM32_VDD 330
  18. #define GPIOA_PIN0 0
  19. #define GPIOA_PIN1 1
  20. #define GPIOA_MDIO 2
  21. #define GPIOA_ULPI_D0 3
  22. #define GPIOA_PIN4 4
  23. #define GPIOA_ULPI_CK 5
  24. #define GPIOA_PIN6 6
  25. #define GPIOA_MII_CRS_DV 7
  26. #define GPIOA_PIN8 8
  27. #define GPIOA_VBUS_FS 9
  28. #define GPIOA_OTG_FS_ID 10
  29. #define GPIOA_OTG_FS_DM 11
  30. #define GPIOA_OTG_FS_DP 12
  31. #define GPIOA_JTMS 13
  32. #define GPIOA_JTCK 14
  33. #define GPIOA_JTDI 15
  34. #define GPIOB_ULPI_D1 0
  35. #define GPIOB_ULPI_D2 1
  36. #define GPIOB_PIN2 2
  37. #define GPIOB_JTDO 3
  38. #define GPIOB_NJTRST 4
  39. #define GPIOB_ULPI_D7 5
  40. #define GPIOB_PIN6 6
  41. #define GPIOB_PIN7 7
  42. #define GPIOB_PIN8 8
  43. #define GPIOB_PIN9 9
  44. #define GPIOB_ULPI_D3 10
  45. #define GPIOB_ULPI_D4 11
  46. #define GPIOB_ULPI_D5 12
  47. #define GPIOB_ULPI_D6 13
  48. #define GPIOB_PIN14 14
  49. #define GPIOB_PIN15 15
  50. #define GPIOC_ULPI_STP 0
  51. #define GPIOC_OTG_FS_POWER_ON 1
  52. #define GPIOC_PIN2 2
  53. #define GPIOC_PIN3 3
  54. #define GPIOC_MII_RX_D0 4
  55. #define GPIOC_MII_RX_D1 5
  56. #define GPIOC_TP_IRQ 6
  57. #define GPIOC_PIN7 7
  58. #define GPIOC_PIN8 8
  59. #define GPIOC_PIN9 9
  60. #define GPIOC_USART3_TX 10
  61. #define GPIOC_USART3_RX 11
  62. #define GPIOC_PIN12 12
  63. #define GPIOC_PIN13 13
  64. #define GPIOC_OSC32_IN 14
  65. #define GPIOC_OSC32_OUT 15
  66. #define GPIOD_FSMC_D2 0
  67. #define GPIOD_FSMC_D3 1
  68. #define GPIOD_PIN2 2
  69. #define GPIOD_PIN3 3
  70. #define GPIOD_FSMC_NOE 4
  71. #define GPIOD_FSMC_NWE 5
  72. #define GPIOD_FSMC_NWAIT 6
  73. #define GPIOD_FSMC_NCE2 7
  74. #define GPIOD_FSMC_D13 8
  75. #define GPIOD_FSMC_D14 9
  76. #define GPIOD_FSMC_D15 10
  77. #define GPIOD_FSMC_A16 11
  78. #define GPIOD_FSMC_A17 12
  79. #define GPIOD_PIN13 13
  80. #define GPIOD_FSMC_D0 14
  81. #define GPIOD_FSMC_D1 15
  82. #define GPIOE_PIN0 0
  83. #define GPIOE_PIN1 1
  84. #define GPIOE_JOY_A 2
  85. #define GPIOE_JOY_B 3
  86. #define GPIOE_JOY_C 4
  87. #define GPIOE_JOY_D 5
  88. #define GPIOE_JOY_PRESS 6
  89. #define GPIOE_FSMC_D4 7
  90. #define GPIOE_FSMC_D5 8
  91. #define GPIOE_FSMC_D6 9
  92. #define GPIOE_FSMC_D7 10
  93. #define GPIOE_FSMC_D8 11
  94. #define GPIOE_FSMC_D9 12
  95. #define GPIOE_FSMC_D10 13
  96. #define GPIOE_FSMC_D11 14
  97. #define GPIOE_FSMC_D12 15
  98. #define GPIOF_PIN0 0
  99. #define GPIOF_PIN1 1
  100. #define GPIOF_PIN2 2
  101. #define GPIOF_PIN3 3
  102. #define GPIOF_PIN4 4
  103. #define GPIOF_PIN5 5
  104. #define GPIOF_PIN6 6
  105. #define GPIOF_LCD_PWM 7
  106. #define GPIOF_PIN8 8
  107. #define GPIOF_PIN9 9
  108. #define GPIOF_PIN10 10
  109. #define GPIOF_PIN11 11
  110. #define GPIOF_PIN12 12
  111. #define GPIOF_PIN13 13
  112. #define GPIOF_PIN14 14
  113. #define GPIOF_PIN15 15
  114. #define GPIOG_PIN0 0
  115. #define GPIOG_PIN1 1
  116. #define GPIOG_PIN2 2
  117. #define GPIOG_PIN3 3
  118. #define GPIOG_PIN4 4
  119. #define GPIOG_FSMC_A15 5
  120. #define GPIOG_PIN6 6
  121. #define GPIOG_PIN7 7
  122. #define GPIOG_PIN8 8
  123. #define GPIOG_PIN9 9
  124. #define GPIOG_PIN10 10
  125. #define GPIOG_MII_TX_EN 11
  126. #define GPIOG_PIN12 12
  127. #define GPIOG_MII_TX_D0 13
  128. #define GPIOG_MII_TX_D1 14
  129. #define GPIOG_PIN15 15
  130. #define GPIOH_OSC_IN 0
  131. #define GPIOH_OSC_OUT 1
  132. #define GPIOH_LED1 2
  133. #define GPIOH_LED2 3
  134. #define GPIOH_ULPI_NXT 4
  135. #define GPIOH_PIN5 5
  136. #define GPIOH_PIN6 6
  137. #define GPIOH_PIN7 7
  138. #define GPIOH_PIN8 8
  139. #define GPIOH_PIN9 9
  140. #define GPIOH_PIN10 10
  141. #define GPIOH_ULPI_RESET 11
  142. #define GPIOH_PIN12 12
  143. #define GPIOH_PIN13 13
  144. #define GPIOH_PIN14 14
  145. #define GPIOH_PIN15 15
  146. #define GPIOI_TP_CS 0
  147. #define GPIOI_SPI2_SCK 1
  148. #define GPIOI_SPI2_MISO 2
  149. #define GPIOI_SPI2_MOSI 3
  150. #define GPIOI_PIN4 4
  151. #define GPIOI_PIN5 5
  152. #define GPIOI_PIN6 6
  153. #define GPIOI_PIN7 7
  154. #define GPIOI_LED3 8
  155. #define GPIOI_PIN9 9
  156. #define GPIOI_LED4 10
  157. #define GPIOI_ULPI_DIR 11
  158. #define GPIOI_PIN12 12
  159. #define GPIOI_PIN13 13
  160. #define GPIOI_PIN14 14
  161. #define GPIOI_PIN15 15
  162. #define PIN_MODE_INPUT(n) (0U << ((n) * 2))
  163. #define PIN_MODE_OUTPUT(n) (1U << ((n) * 2))
  164. #define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2))
  165. #define PIN_MODE_ANALOG(n) (3U << ((n) * 2))
  166. #define PIN_ODR_LOW(n) (0U << (n))
  167. #define PIN_ODR_HIGH(n) (1U << (n))
  168. #define PIN_OTYPE_PUSHPULL(n) (0U << (n))
  169. #define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
  170. #define PIN_OSPEED_2M(n) (0U << ((n) * 2))
  171. #define PIN_OSPEED_25M(n) (1U << ((n) * 2))
  172. #define PIN_OSPEED_50M(n) (2U << ((n) * 2))
  173. #define PIN_OSPEED_100M(n) (3U << ((n) * 2))
  174. #define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2))
  175. #define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2))
  176. #define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2))
  177. #define PIN_AFIO_AF(n, v) ((v##U) << ((n % 8) * 4))
  178. /*
  179. * PA0 - PIN0 (input floating).
  180. * PA1 - PIN1 (input floating).
  181. * PA2 - MDIO (input floating).
  182. * PA3 - ULPI_D0 (input floating).
  183. * PA4 - PIN4 (input floating).
  184. * PA5 - ULPI_CK (input floating).
  185. * PA6 - PIN6 (input floating).
  186. * PA7 - MII_CRS_DV (input floating).
  187. * PA8 - PIN8 (input floating).
  188. * PA9 - VBUS_FS (input floating).
  189. * PA10 - OTG_FS_ID (input floating).
  190. * PA11 - OTG_FS_DM (input floating).
  191. * PA12 - OTG_FS_DP (input floating).
  192. * PA13 - JTMS (alternate 0).
  193. * PA14 - JTCK (alternate 0).
  194. * PA15 - JTDI (alternate 0).
  195. */
  196. #define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_PIN0) | \
  197. PIN_MODE_INPUT(GPIOA_PIN1) | \
  198. PIN_MODE_INPUT(GPIOA_MDIO) | \
  199. PIN_MODE_INPUT(GPIOA_ULPI_D0) | \
  200. PIN_MODE_INPUT(GPIOA_PIN4) | \
  201. PIN_MODE_INPUT(GPIOA_ULPI_CK) | \
  202. PIN_MODE_INPUT(GPIOA_PIN6) | \
  203. PIN_MODE_INPUT(GPIOA_MII_CRS_DV) | \
  204. PIN_MODE_INPUT(GPIOA_PIN8) | \
  205. PIN_MODE_INPUT(GPIOA_VBUS_FS) | \
  206. PIN_MODE_INPUT(GPIOA_OTG_FS_ID) | \
  207. PIN_MODE_INPUT(GPIOA_OTG_FS_DM) | \
  208. PIN_MODE_INPUT(GPIOA_OTG_FS_DP) | \
  209. PIN_MODE_ALTERNATE(GPIOA_JTMS) | \
  210. PIN_MODE_ALTERNATE(GPIOA_JTCK) | \
  211. PIN_MODE_ALTERNATE(GPIOA_JTDI))
  212. #define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_PIN0) | \
  213. PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
  214. PIN_OTYPE_PUSHPULL(GPIOA_MDIO) | \
  215. PIN_OTYPE_PUSHPULL(GPIOA_ULPI_D0) | \
  216. PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \
  217. PIN_OTYPE_PUSHPULL(GPIOA_ULPI_CK) | \
  218. PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \
  219. PIN_OTYPE_PUSHPULL(GPIOA_MII_CRS_DV) |\
  220. PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \
  221. PIN_OTYPE_PUSHPULL(GPIOA_VBUS_FS) | \
  222. PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_ID) | \
  223. PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DM) | \
  224. PIN_OTYPE_PUSHPULL(GPIOA_OTG_FS_DP) | \
  225. PIN_OTYPE_PUSHPULL(GPIOA_JTMS) | \
  226. PIN_OTYPE_PUSHPULL(GPIOA_JTCK) | \
  227. PIN_OTYPE_PUSHPULL(GPIOA_JTDI))
  228. #define VAL_GPIOA_OSPEEDR (PIN_OSPEED_100M(GPIOA_PIN0) | \
  229. PIN_OSPEED_100M(GPIOA_PIN1) | \
  230. PIN_OSPEED_100M(GPIOA_MDIO) | \
  231. PIN_OSPEED_100M(GPIOA_ULPI_D0) | \
  232. PIN_OSPEED_100M(GPIOA_PIN4) | \
  233. PIN_OSPEED_100M(GPIOA_ULPI_CK) | \
  234. PIN_OSPEED_100M(GPIOA_PIN6) | \
  235. PIN_OSPEED_100M(GPIOA_MII_CRS_DV) | \
  236. PIN_OSPEED_100M(GPIOA_PIN8) | \
  237. PIN_OSPEED_100M(GPIOA_VBUS_FS) | \
  238. PIN_OSPEED_100M(GPIOA_OTG_FS_ID) | \
  239. PIN_OSPEED_100M(GPIOA_OTG_FS_DM) | \
  240. PIN_OSPEED_100M(GPIOA_OTG_FS_DP) | \
  241. PIN_OSPEED_100M(GPIOA_JTMS) | \
  242. PIN_OSPEED_100M(GPIOA_JTCK) | \
  243. PIN_OSPEED_100M(GPIOA_JTDI))
  244. #define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_PIN0) | \
  245. PIN_PUPDR_FLOATING(GPIOA_PIN1) | \
  246. PIN_PUPDR_FLOATING(GPIOA_MDIO) | \
  247. PIN_PUPDR_FLOATING(GPIOA_ULPI_D0) | \
  248. PIN_PUPDR_FLOATING(GPIOA_PIN4) | \
  249. PIN_PUPDR_FLOATING(GPIOA_ULPI_CK) | \
  250. PIN_PUPDR_FLOATING(GPIOA_PIN6) | \
  251. PIN_PUPDR_FLOATING(GPIOA_MII_CRS_DV) |\
  252. PIN_PUPDR_FLOATING(GPIOA_PIN8) | \
  253. PIN_PUPDR_FLOATING(GPIOA_VBUS_FS) | \
  254. PIN_PUPDR_FLOATING(GPIOA_OTG_FS_ID) | \
  255. PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DM) | \
  256. PIN_PUPDR_FLOATING(GPIOA_OTG_FS_DP) | \
  257. PIN_PUPDR_FLOATING(GPIOA_JTMS) | \
  258. PIN_PUPDR_FLOATING(GPIOA_JTCK) | \
  259. PIN_PUPDR_FLOATING(GPIOA_JTDI))
  260. #define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_PIN0) | \
  261. PIN_ODR_HIGH(GPIOA_PIN1) | \
  262. PIN_ODR_HIGH(GPIOA_MDIO) | \
  263. PIN_ODR_HIGH(GPIOA_ULPI_D0) | \
  264. PIN_ODR_HIGH(GPIOA_PIN4) | \
  265. PIN_ODR_HIGH(GPIOA_ULPI_CK) | \
  266. PIN_ODR_HIGH(GPIOA_PIN6) | \
  267. PIN_ODR_HIGH(GPIOA_MII_CRS_DV) | \
  268. PIN_ODR_HIGH(GPIOA_PIN8) | \
  269. PIN_ODR_HIGH(GPIOA_VBUS_FS) | \
  270. PIN_ODR_HIGH(GPIOA_OTG_FS_ID) | \
  271. PIN_ODR_HIGH(GPIOA_OTG_FS_DM) | \
  272. PIN_ODR_HIGH(GPIOA_OTG_FS_DP) | \
  273. PIN_ODR_HIGH(GPIOA_JTMS) | \
  274. PIN_ODR_HIGH(GPIOA_JTCK) | \
  275. PIN_ODR_HIGH(GPIOA_JTDI))
  276. #define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_PIN0, 0) | \
  277. PIN_AFIO_AF(GPIOA_PIN1, 0) | \
  278. PIN_AFIO_AF(GPIOA_MDIO, 0) | \
  279. PIN_AFIO_AF(GPIOA_ULPI_D0, 0) | \
  280. PIN_AFIO_AF(GPIOA_PIN4, 6) | \
  281. PIN_AFIO_AF(GPIOA_ULPI_CK, 0) | \
  282. PIN_AFIO_AF(GPIOA_PIN6, 5) | \
  283. PIN_AFIO_AF(GPIOA_MII_CRS_DV, 0))
  284. #define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0) | \
  285. PIN_AFIO_AF(GPIOA_VBUS_FS, 0) | \
  286. PIN_AFIO_AF(GPIOA_OTG_FS_ID, 0) | \
  287. PIN_AFIO_AF(GPIOA_OTG_FS_DM, 0) | \
  288. PIN_AFIO_AF(GPIOA_OTG_FS_DP, 0) | \
  289. PIN_AFIO_AF(GPIOA_JTMS, 0) | \
  290. PIN_AFIO_AF(GPIOA_JTCK, 0) | \
  291. PIN_AFIO_AF(GPIOA_JTDI, 0))
  292. /*
  293. * PB0 - ULPI_D1 (input floating).
  294. * PB1 - ULPI_D2 (input floating).
  295. * PB2 - PIN2 (input floating).
  296. * PB3 - JTDO (alternate 0).
  297. * PB4 - NJTRST (alternate 0).
  298. * PB5 - ULPI_D7 (input floating).
  299. * PB6 - PIN6 (input floating).
  300. * PB7 - PIN7 (input floating).
  301. * PB8 - PIN8 (input floating).
  302. * PB9 - PIN9 (input floating).
  303. * PB10 - ULPI_D3 (input floating).
  304. * PB11 - ULPI_D4 (input floating).
  305. * PB12 - ULPI_D5 (input floating).
  306. * PB13 - ULPI_D6 (input floating).
  307. * PB14 - PIN14 (input floating).
  308. * PB15 - PIN15 (input floating).
  309. */
  310. #define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_ULPI_D1) | \
  311. PIN_MODE_INPUT(GPIOB_ULPI_D2) | \
  312. PIN_MODE_INPUT(GPIOB_PIN2) | \
  313. PIN_MODE_ALTERNATE(GPIOB_JTDO) | \
  314. PIN_MODE_ALTERNATE(GPIOB_NJTRST) | \
  315. PIN_MODE_INPUT(GPIOB_ULPI_D7) | \
  316. PIN_MODE_INPUT(GPIOB_PIN6) | \
  317. PIN_MODE_INPUT(GPIOB_PIN7) | \
  318. PIN_MODE_INPUT(GPIOB_PIN8) | \
  319. PIN_MODE_INPUT(GPIOB_PIN9) | \
  320. PIN_MODE_INPUT(GPIOB_ULPI_D3) | \
  321. PIN_MODE_INPUT(GPIOB_ULPI_D4) | \
  322. PIN_MODE_INPUT(GPIOB_ULPI_D5) | \
  323. PIN_MODE_INPUT(GPIOB_ULPI_D6) | \
  324. PIN_MODE_INPUT(GPIOB_PIN14) | \
  325. PIN_MODE_INPUT(GPIOB_PIN15))
  326. #define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_ULPI_D1) | \
  327. PIN_OTYPE_PUSHPULL(GPIOB_ULPI_D2) | \
  328. PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
  329. PIN_OTYPE_PUSHPULL(GPIOB_JTDO) | \
  330. PIN_OTYPE_PUSHPULL(GPIOB_NJTRST) | \
  331. PIN_OTYPE_PUSHPULL(GPIOB_ULPI_D7) | \
  332. PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \
  333. PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
  334. PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
  335. PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \
  336. PIN_OTYPE_PUSHPULL(GPIOB_ULPI_D3) | \
  337. PIN_OTYPE_PUSHPULL(GPIOB_ULPI_D4) | \
  338. PIN_OTYPE_PUSHPULL(GPIOB_ULPI_D5) | \
  339. PIN_OTYPE_PUSHPULL(GPIOB_ULPI_D6) | \
  340. PIN_OTYPE_PUSHPULL(GPIOB_PIN14) | \
  341. PIN_OTYPE_PUSHPULL(GPIOB_PIN15))
  342. #define VAL_GPIOB_OSPEEDR (PIN_OSPEED_100M(GPIOB_ULPI_D1) | \
  343. PIN_OSPEED_100M(GPIOB_ULPI_D2) | \
  344. PIN_OSPEED_100M(GPIOB_PIN2) | \
  345. PIN_OSPEED_100M(GPIOB_JTDO) | \
  346. PIN_OSPEED_100M(GPIOB_NJTRST) | \
  347. PIN_OSPEED_100M(GPIOB_ULPI_D7) | \
  348. PIN_OSPEED_100M(GPIOB_PIN6) | \
  349. PIN_OSPEED_100M(GPIOB_PIN7) | \
  350. PIN_OSPEED_100M(GPIOB_PIN8) | \
  351. PIN_OSPEED_100M(GPIOB_PIN9) | \
  352. PIN_OSPEED_100M(GPIOB_ULPI_D3) | \
  353. PIN_OSPEED_100M(GPIOB_ULPI_D4) | \
  354. PIN_OSPEED_100M(GPIOB_ULPI_D5) | \
  355. PIN_OSPEED_100M(GPIOB_ULPI_D6) | \
  356. PIN_OSPEED_100M(GPIOB_PIN14) | \
  357. PIN_OSPEED_100M(GPIOB_PIN15))
  358. #define VAL_GPIOB_PUPDR (PIN_PUPDR_FLOATING(GPIOB_ULPI_D1) | \
  359. PIN_PUPDR_FLOATING(GPIOB_ULPI_D2) | \
  360. PIN_PUPDR_FLOATING(GPIOB_PIN2) | \
  361. PIN_PUPDR_FLOATING(GPIOB_JTDO) | \
  362. PIN_PUPDR_FLOATING(GPIOB_NJTRST) | \
  363. PIN_PUPDR_FLOATING(GPIOB_ULPI_D7) | \
  364. PIN_PUPDR_FLOATING(GPIOB_PIN6) | \
  365. PIN_PUPDR_FLOATING(GPIOB_PIN7) | \
  366. PIN_PUPDR_FLOATING(GPIOB_PIN8) | \
  367. PIN_PUPDR_FLOATING(GPIOB_PIN9) | \
  368. PIN_PUPDR_FLOATING(GPIOB_ULPI_D3) | \
  369. PIN_PUPDR_FLOATING(GPIOB_ULPI_D4) | \
  370. PIN_PUPDR_FLOATING(GPIOB_ULPI_D5) | \
  371. PIN_PUPDR_FLOATING(GPIOB_ULPI_D6) | \
  372. PIN_PUPDR_FLOATING(GPIOB_PIN14) | \
  373. PIN_PUPDR_FLOATING(GPIOB_PIN15))
  374. #define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_ULPI_D1) | \
  375. PIN_ODR_HIGH(GPIOB_ULPI_D2) | \
  376. PIN_ODR_HIGH(GPIOB_PIN2) | \
  377. PIN_ODR_HIGH(GPIOB_JTDO) | \
  378. PIN_ODR_HIGH(GPIOB_NJTRST) | \
  379. PIN_ODR_HIGH(GPIOB_ULPI_D7) | \
  380. PIN_ODR_HIGH(GPIOB_PIN6) | \
  381. PIN_ODR_HIGH(GPIOB_PIN7) | \
  382. PIN_ODR_HIGH(GPIOB_PIN8) | \
  383. PIN_ODR_HIGH(GPIOB_PIN9) | \
  384. PIN_ODR_HIGH(GPIOB_ULPI_D3) | \
  385. PIN_ODR_HIGH(GPIOB_ULPI_D4) | \
  386. PIN_ODR_HIGH(GPIOB_ULPI_D5) | \
  387. PIN_ODR_HIGH(GPIOB_ULPI_D6) | \
  388. PIN_ODR_HIGH(GPIOB_PIN14) | \
  389. PIN_ODR_HIGH(GPIOB_PIN15))
  390. #define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_ULPI_D1, 0) | \
  391. PIN_AFIO_AF(GPIOB_ULPI_D2, 0) | \
  392. PIN_AFIO_AF(GPIOB_PIN2, 0) | \
  393. PIN_AFIO_AF(GPIOB_JTDO, 0) | \
  394. PIN_AFIO_AF(GPIOB_NJTRST, 0) | \
  395. PIN_AFIO_AF(GPIOB_ULPI_D7, 0) | \
  396. PIN_AFIO_AF(GPIOB_PIN6, 0) | \
  397. PIN_AFIO_AF(GPIOB_PIN7, 0))
  398. #define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0) | \
  399. PIN_AFIO_AF(GPIOB_PIN9, 0) | \
  400. PIN_AFIO_AF(GPIOB_ULPI_D3, 0) | \
  401. PIN_AFIO_AF(GPIOB_ULPI_D4, 0) | \
  402. PIN_AFIO_AF(GPIOB_ULPI_D5, 0) | \
  403. PIN_AFIO_AF(GPIOB_ULPI_D6, 0) | \
  404. PIN_AFIO_AF(GPIOB_PIN14, 0) | \
  405. PIN_AFIO_AF(GPIOB_PIN15, 0))
  406. /*
  407. * PC0 - ULPI_STP (input floating).
  408. * PC1 - OTG_FS_POWER_ON (input floating).
  409. * PC2 - PIN2 (input floating).
  410. * PC3 - PIN3 (input floating).
  411. * PC4 - MII_RX_D0 (input floating).
  412. * PC5 - MII_RX_D1 (input floating).
  413. * PC6 - TP_IRQ (input floating).
  414. * PC7 - PIN7 (input floating).
  415. * PC8 - PIN8 (input floating).
  416. * PC9 - PIN9 (input floating).
  417. * PC10 - USART3_TX (input floating).
  418. * PC11 - USART3_RX (input floating).
  419. * PC12 - PIN12 (input floating).
  420. * PC13 - PIN13 (input floating).
  421. * PC14 - OSC32_IN (input floating).
  422. * PC15 - OSC32_OUT (input floating).
  423. */
  424. #define VAL_GPIOC_MODER (PIN_MODE_INPUT(GPIOC_ULPI_STP) | \
  425. PIN_MODE_INPUT(GPIOC_OTG_FS_POWER_ON) |\
  426. PIN_MODE_INPUT(GPIOC_PIN2) | \
  427. PIN_MODE_INPUT(GPIOC_PIN3) | \
  428. PIN_MODE_INPUT(GPIOC_MII_RX_D0) | \
  429. PIN_MODE_INPUT(GPIOC_MII_RX_D1) | \
  430. PIN_MODE_INPUT(GPIOC_TP_IRQ) | \
  431. PIN_MODE_INPUT(GPIOC_PIN7) | \
  432. PIN_MODE_INPUT(GPIOC_PIN8) | \
  433. PIN_MODE_INPUT(GPIOC_PIN9) | \
  434. PIN_MODE_INPUT(GPIOC_USART3_TX) | \
  435. PIN_MODE_INPUT(GPIOC_USART3_RX) | \
  436. PIN_MODE_INPUT(GPIOC_PIN12) | \
  437. PIN_MODE_INPUT(GPIOC_PIN13) | \
  438. PIN_MODE_INPUT(GPIOC_OSC32_IN) | \
  439. PIN_MODE_INPUT(GPIOC_OSC32_OUT))
  440. #define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_ULPI_STP) | \
  441. PIN_OTYPE_PUSHPULL(GPIOC_OTG_FS_POWER_ON) |\
  442. PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
  443. PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \
  444. PIN_OTYPE_PUSHPULL(GPIOC_MII_RX_D0) | \
  445. PIN_OTYPE_PUSHPULL(GPIOC_MII_RX_D1) | \
  446. PIN_OTYPE_PUSHPULL(GPIOC_TP_IRQ) | \
  447. PIN_OTYPE_PUSHPULL(GPIOC_PIN7) | \
  448. PIN_OTYPE_PUSHPULL(GPIOC_PIN8) | \
  449. PIN_OTYPE_PUSHPULL(GPIOC_PIN9) | \
  450. PIN_OTYPE_PUSHPULL(GPIOC_USART3_TX) | \
  451. PIN_OTYPE_PUSHPULL(GPIOC_USART3_RX) | \
  452. PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \
  453. PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \
  454. PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \
  455. PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
  456. #define VAL_GPIOC_OSPEEDR (PIN_OSPEED_100M(GPIOC_ULPI_STP) | \
  457. PIN_OSPEED_100M(GPIOC_OTG_FS_POWER_ON) |\
  458. PIN_OSPEED_100M(GPIOC_PIN2) | \
  459. PIN_OSPEED_100M(GPIOC_PIN3) | \
  460. PIN_OSPEED_100M(GPIOC_MII_RX_D0) | \
  461. PIN_OSPEED_100M(GPIOC_MII_RX_D1) | \
  462. PIN_OSPEED_100M(GPIOC_TP_IRQ) | \
  463. PIN_OSPEED_100M(GPIOC_PIN7) | \
  464. PIN_OSPEED_100M(GPIOC_PIN8) | \
  465. PIN_OSPEED_100M(GPIOC_PIN9) | \
  466. PIN_OSPEED_100M(GPIOC_USART3_TX) | \
  467. PIN_OSPEED_100M(GPIOC_USART3_RX) | \
  468. PIN_OSPEED_100M(GPIOC_PIN12) | \
  469. PIN_OSPEED_100M(GPIOC_PIN13) | \
  470. PIN_OSPEED_100M(GPIOC_OSC32_IN) | \
  471. PIN_OSPEED_100M(GPIOC_OSC32_OUT))
  472. #define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_ULPI_STP) | \
  473. PIN_PUPDR_FLOATING(GPIOC_OTG_FS_POWER_ON) |\
  474. PIN_PUPDR_FLOATING(GPIOC_PIN2) | \
  475. PIN_PUPDR_FLOATING(GPIOC_PIN3) | \
  476. PIN_PUPDR_FLOATING(GPIOC_MII_RX_D0) | \
  477. PIN_PUPDR_FLOATING(GPIOC_MII_RX_D1) | \
  478. PIN_PUPDR_FLOATING(GPIOC_TP_IRQ) | \
  479. PIN_PUPDR_FLOATING(GPIOC_PIN7) | \
  480. PIN_PUPDR_FLOATING(GPIOC_PIN8) | \
  481. PIN_PUPDR_FLOATING(GPIOC_PIN9) | \
  482. PIN_PUPDR_FLOATING(GPIOC_USART3_TX) | \
  483. PIN_PUPDR_FLOATING(GPIOC_USART3_RX) | \
  484. PIN_PUPDR_FLOATING(GPIOC_PIN12) | \
  485. PIN_PUPDR_FLOATING(GPIOC_PIN13) | \
  486. PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \
  487. PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
  488. #define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_ULPI_STP) | \
  489. PIN_ODR_HIGH(GPIOC_OTG_FS_POWER_ON) | \
  490. PIN_ODR_HIGH(GPIOC_PIN2) | \
  491. PIN_ODR_HIGH(GPIOC_PIN3) | \
  492. PIN_ODR_HIGH(GPIOC_MII_RX_D0) | \
  493. PIN_ODR_HIGH(GPIOC_MII_RX_D1) | \
  494. PIN_ODR_HIGH(GPIOC_TP_IRQ) | \
  495. PIN_ODR_HIGH(GPIOC_PIN7) | \
  496. PIN_ODR_HIGH(GPIOC_PIN8) | \
  497. PIN_ODR_HIGH(GPIOC_PIN9) | \
  498. PIN_ODR_HIGH(GPIOC_USART3_TX) | \
  499. PIN_ODR_HIGH(GPIOC_USART3_RX) | \
  500. PIN_ODR_HIGH(GPIOC_PIN12) | \
  501. PIN_ODR_HIGH(GPIOC_PIN13) | \
  502. PIN_ODR_HIGH(GPIOC_OSC32_IN) | \
  503. PIN_ODR_HIGH(GPIOC_OSC32_OUT))
  504. #define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_ULPI_STP, 0) | \
  505. PIN_AFIO_AF(GPIOC_OTG_FS_POWER_ON, 0) |\
  506. PIN_AFIO_AF(GPIOC_PIN2, 0) | \
  507. PIN_AFIO_AF(GPIOC_PIN3, 0) | \
  508. PIN_AFIO_AF(GPIOC_MII_RX_D0, 0) | \
  509. PIN_AFIO_AF(GPIOC_MII_RX_D1, 0) | \
  510. PIN_AFIO_AF(GPIOC_TP_IRQ, 0) | \
  511. PIN_AFIO_AF(GPIOC_PIN7, 0))
  512. #define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_PIN8, 0) | \
  513. PIN_AFIO_AF(GPIOC_PIN9, 0) | \
  514. PIN_AFIO_AF(GPIOC_USART3_TX, 0) | \
  515. PIN_AFIO_AF(GPIOC_USART3_RX, 0) | \
  516. PIN_AFIO_AF(GPIOC_PIN12, 0) | \
  517. PIN_AFIO_AF(GPIOC_PIN13, 0) | \
  518. PIN_AFIO_AF(GPIOC_OSC32_IN, 0) | \
  519. PIN_AFIO_AF(GPIOC_OSC32_OUT, 0))
  520. /*
  521. * PD0 - FSMC_D2 (input floating).
  522. * PD1 - FSMC_D3 (input floating).
  523. * PD2 - PIN2 (input floating).
  524. * PD3 - PIN3 (input floating).
  525. * PD4 - FSMC_NOE (input floating).
  526. * PD5 - FSMC_NWE (input floating).
  527. * PD6 - FSMC_NWAIT (input floating).
  528. * PD7 - FSMC_NCE2 (input floating).
  529. * PD8 - FSMC_D13 (input floating).
  530. * PD9 - FSMC_D14 (input floating).
  531. * PD10 - FSMC_D15 (input floating).
  532. * PD11 - FSMC_A16 (input floating).
  533. * PD12 - FSMC_A17 (input floating).
  534. * PD13 - PIN13 (input floating).
  535. * PD14 - FSMC_D0 (input floating).
  536. * PD15 - FSMC_D1 (input floating).
  537. */
  538. #define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_FSMC_D2) | \
  539. PIN_MODE_INPUT(GPIOD_FSMC_D3) | \
  540. PIN_MODE_INPUT(GPIOD_PIN2) | \
  541. PIN_MODE_INPUT(GPIOD_PIN3) | \
  542. PIN_MODE_INPUT(GPIOD_FSMC_NOE) | \
  543. PIN_MODE_INPUT(GPIOD_FSMC_NWE) | \
  544. PIN_MODE_INPUT(GPIOD_FSMC_NWAIT) | \
  545. PIN_MODE_INPUT(GPIOD_FSMC_NCE2) | \
  546. PIN_MODE_INPUT(GPIOD_FSMC_D13) | \
  547. PIN_MODE_INPUT(GPIOD_FSMC_D14) | \
  548. PIN_MODE_INPUT(GPIOD_FSMC_D15) | \
  549. PIN_MODE_INPUT(GPIOD_FSMC_A16) | \
  550. PIN_MODE_INPUT(GPIOD_FSMC_A17) | \
  551. PIN_MODE_INPUT(GPIOD_PIN13) | \
  552. PIN_MODE_INPUT(GPIOD_FSMC_D0) | \
  553. PIN_MODE_INPUT(GPIOD_FSMC_D1))
  554. #define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_FSMC_D2) | \
  555. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_D3) | \
  556. PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \
  557. PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \
  558. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_NOE) | \
  559. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_NWE) | \
  560. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_NWAIT) | \
  561. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_NCE2) | \
  562. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_D13) | \
  563. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_D14) | \
  564. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_D15) | \
  565. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_A16) | \
  566. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_A17) | \
  567. PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \
  568. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_D0) | \
  569. PIN_OTYPE_PUSHPULL(GPIOD_FSMC_D1))
  570. #define VAL_GPIOD_OSPEEDR (PIN_OSPEED_100M(GPIOD_FSMC_D2) | \
  571. PIN_OSPEED_100M(GPIOD_FSMC_D3) | \
  572. PIN_OSPEED_100M(GPIOD_PIN2) | \
  573. PIN_OSPEED_100M(GPIOD_PIN3) | \
  574. PIN_OSPEED_100M(GPIOD_FSMC_NOE) | \
  575. PIN_OSPEED_100M(GPIOD_FSMC_NWE) | \
  576. PIN_OSPEED_100M(GPIOD_FSMC_NWAIT) | \
  577. PIN_OSPEED_100M(GPIOD_FSMC_NCE2) | \
  578. PIN_OSPEED_100M(GPIOD_FSMC_D13) | \
  579. PIN_OSPEED_100M(GPIOD_FSMC_D14) | \
  580. PIN_OSPEED_100M(GPIOD_FSMC_D15) | \
  581. PIN_OSPEED_100M(GPIOD_FSMC_A16) | \
  582. PIN_OSPEED_100M(GPIOD_FSMC_A17) | \
  583. PIN_OSPEED_100M(GPIOD_PIN13) | \
  584. PIN_OSPEED_100M(GPIOD_FSMC_D0) | \
  585. PIN_OSPEED_100M(GPIOD_FSMC_D1))
  586. #define VAL_GPIOD_PUPDR (PIN_PUPDR_FLOATING(GPIOD_FSMC_D2) | \
  587. PIN_PUPDR_FLOATING(GPIOD_FSMC_D3) | \
  588. PIN_PUPDR_FLOATING(GPIOD_PIN2) | \
  589. PIN_PUPDR_FLOATING(GPIOD_PIN3) | \
  590. PIN_PUPDR_FLOATING(GPIOD_FSMC_NOE) | \
  591. PIN_PUPDR_FLOATING(GPIOD_FSMC_NWE) | \
  592. PIN_PUPDR_FLOATING(GPIOD_FSMC_NWAIT) | \
  593. PIN_PUPDR_FLOATING(GPIOD_FSMC_NCE2) | \
  594. PIN_PUPDR_FLOATING(GPIOD_FSMC_D13) | \
  595. PIN_PUPDR_FLOATING(GPIOD_FSMC_D14) | \
  596. PIN_PUPDR_FLOATING(GPIOD_FSMC_D15) | \
  597. PIN_PUPDR_FLOATING(GPIOD_FSMC_A16) | \
  598. PIN_PUPDR_FLOATING(GPIOD_FSMC_A17) | \
  599. PIN_PUPDR_FLOATING(GPIOD_PIN13) | \
  600. PIN_PUPDR_FLOATING(GPIOD_FSMC_D0) | \
  601. PIN_PUPDR_FLOATING(GPIOD_FSMC_D1))
  602. #define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_FSMC_D2) | \
  603. PIN_ODR_HIGH(GPIOD_FSMC_D3) | \
  604. PIN_ODR_HIGH(GPIOD_PIN2) | \
  605. PIN_ODR_HIGH(GPIOD_PIN3) | \
  606. PIN_ODR_HIGH(GPIOD_FSMC_NOE) | \
  607. PIN_ODR_HIGH(GPIOD_FSMC_NWE) | \
  608. PIN_ODR_HIGH(GPIOD_FSMC_NWAIT) | \
  609. PIN_ODR_HIGH(GPIOD_FSMC_NCE2) | \
  610. PIN_ODR_HIGH(GPIOD_FSMC_D13) | \
  611. PIN_ODR_HIGH(GPIOD_FSMC_D14) | \
  612. PIN_ODR_HIGH(GPIOD_FSMC_D15) | \
  613. PIN_ODR_HIGH(GPIOD_FSMC_A16) | \
  614. PIN_ODR_HIGH(GPIOD_FSMC_A17) | \
  615. PIN_ODR_HIGH(GPIOD_PIN13) | \
  616. PIN_ODR_HIGH(GPIOD_FSMC_D0) | \
  617. PIN_ODR_HIGH(GPIOD_FSMC_D1))
  618. #define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_FSMC_D2, 0) | \
  619. PIN_AFIO_AF(GPIOD_FSMC_D3, 0) | \
  620. PIN_AFIO_AF(GPIOD_PIN2, 0) | \
  621. PIN_AFIO_AF(GPIOD_PIN3, 0) | \
  622. PIN_AFIO_AF(GPIOD_FSMC_NOE, 0) | \
  623. PIN_AFIO_AF(GPIOD_FSMC_NWE, 0) | \
  624. PIN_AFIO_AF(GPIOD_FSMC_NWAIT, 0) | \
  625. PIN_AFIO_AF(GPIOD_FSMC_NCE2, 0))
  626. #define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_FSMC_D13, 0) | \
  627. PIN_AFIO_AF(GPIOD_FSMC_D14, 0) | \
  628. PIN_AFIO_AF(GPIOD_FSMC_D15, 0) | \
  629. PIN_AFIO_AF(GPIOD_FSMC_A16, 0) | \
  630. PIN_AFIO_AF(GPIOD_FSMC_A17, 0) | \
  631. PIN_AFIO_AF(GPIOD_PIN13, 0) | \
  632. PIN_AFIO_AF(GPIOD_FSMC_D0, 0) | \
  633. PIN_AFIO_AF(GPIOD_FSMC_D1, 0))
  634. /*
  635. * PE0 - PIN0 (input floating).
  636. * PE1 - PIN1 (input floating).
  637. * PE2 - JOY_A (input floating).
  638. * PE3 - JOY_B (input floating).
  639. * PE4 - JOY_C (input floating).
  640. * PE5 - JOY_D (input floating).
  641. * PE6 - JOY_PRESS (input floating).
  642. * PE7 - FSMC_D4 (input floating).
  643. * PE8 - FSMC_D5 (input floating).
  644. * PE9 - FSMC_D6 (input floating).
  645. * PE10 - FSMC_D7 (input floating).
  646. * PE11 - FSMC_D8 (input floating).
  647. * PE12 - FSMC_D9 (input floating).
  648. * PE13 - FSMC_D10 (input floating).
  649. * PE14 - FSMC_D11 (input floating).
  650. * PE15 - FSMC_D12 (input floating).
  651. */
  652. #define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \
  653. PIN_MODE_INPUT(GPIOE_PIN1) | \
  654. PIN_MODE_INPUT(GPIOE_JOY_A) | \
  655. PIN_MODE_INPUT(GPIOE_JOY_B) | \
  656. PIN_MODE_INPUT(GPIOE_JOY_C) | \
  657. PIN_MODE_INPUT(GPIOE_JOY_D) | \
  658. PIN_MODE_INPUT(GPIOE_JOY_PRESS) | \
  659. PIN_MODE_INPUT(GPIOE_FSMC_D4) | \
  660. PIN_MODE_INPUT(GPIOE_FSMC_D5) | \
  661. PIN_MODE_INPUT(GPIOE_FSMC_D6) | \
  662. PIN_MODE_INPUT(GPIOE_FSMC_D7) | \
  663. PIN_MODE_INPUT(GPIOE_FSMC_D8) | \
  664. PIN_MODE_INPUT(GPIOE_FSMC_D9) | \
  665. PIN_MODE_INPUT(GPIOE_FSMC_D10) | \
  666. PIN_MODE_INPUT(GPIOE_FSMC_D11) | \
  667. PIN_MODE_INPUT(GPIOE_FSMC_D12))
  668. #define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \
  669. PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \
  670. PIN_OTYPE_PUSHPULL(GPIOE_JOY_A) | \
  671. PIN_OTYPE_PUSHPULL(GPIOE_JOY_B) | \
  672. PIN_OTYPE_PUSHPULL(GPIOE_JOY_C) | \
  673. PIN_OTYPE_PUSHPULL(GPIOE_JOY_D) | \
  674. PIN_OTYPE_PUSHPULL(GPIOE_JOY_PRESS) | \
  675. PIN_OTYPE_PUSHPULL(GPIOE_FSMC_D4) | \
  676. PIN_OTYPE_PUSHPULL(GPIOE_FSMC_D5) | \
  677. PIN_OTYPE_PUSHPULL(GPIOE_FSMC_D6) | \
  678. PIN_OTYPE_PUSHPULL(GPIOE_FSMC_D7) | \
  679. PIN_OTYPE_PUSHPULL(GPIOE_FSMC_D8) | \
  680. PIN_OTYPE_PUSHPULL(GPIOE_FSMC_D9) | \
  681. PIN_OTYPE_PUSHPULL(GPIOE_FSMC_D10) | \
  682. PIN_OTYPE_PUSHPULL(GPIOE_FSMC_D11) | \
  683. PIN_OTYPE_PUSHPULL(GPIOE_FSMC_D12))
  684. #define VAL_GPIOE_OSPEEDR (PIN_OSPEED_100M(GPIOE_PIN0) | \
  685. PIN_OSPEED_100M(GPIOE_PIN1) | \
  686. PIN_OSPEED_100M(GPIOE_JOY_A) | \
  687. PIN_OSPEED_100M(GPIOE_JOY_B) | \
  688. PIN_OSPEED_100M(GPIOE_JOY_C) | \
  689. PIN_OSPEED_100M(GPIOE_JOY_D) | \
  690. PIN_OSPEED_100M(GPIOE_JOY_PRESS) | \
  691. PIN_OSPEED_100M(GPIOE_FSMC_D4) | \
  692. PIN_OSPEED_100M(GPIOE_FSMC_D5) | \
  693. PIN_OSPEED_100M(GPIOE_FSMC_D6) | \
  694. PIN_OSPEED_100M(GPIOE_FSMC_D7) | \
  695. PIN_OSPEED_100M(GPIOE_FSMC_D8) | \
  696. PIN_OSPEED_100M(GPIOE_FSMC_D9) | \
  697. PIN_OSPEED_100M(GPIOE_FSMC_D10) | \
  698. PIN_OSPEED_100M(GPIOE_FSMC_D11) | \
  699. PIN_OSPEED_100M(GPIOE_FSMC_D12))
  700. #define VAL_GPIOE_PUPDR (PIN_PUPDR_FLOATING(GPIOE_PIN0) | \
  701. PIN_PUPDR_FLOATING(GPIOE_PIN1) | \
  702. PIN_PUPDR_FLOATING(GPIOE_JOY_A) | \
  703. PIN_PUPDR_FLOATING(GPIOE_JOY_B) | \
  704. PIN_PUPDR_FLOATING(GPIOE_JOY_C) | \
  705. PIN_PUPDR_FLOATING(GPIOE_JOY_D) | \
  706. PIN_PUPDR_FLOATING(GPIOE_JOY_PRESS) | \
  707. PIN_PUPDR_FLOATING(GPIOE_FSMC_D4) | \
  708. PIN_PUPDR_FLOATING(GPIOE_FSMC_D5) | \
  709. PIN_PUPDR_FLOATING(GPIOE_FSMC_D6) | \
  710. PIN_PUPDR_FLOATING(GPIOE_FSMC_D7) | \
  711. PIN_PUPDR_FLOATING(GPIOE_FSMC_D8) | \
  712. PIN_PUPDR_FLOATING(GPIOE_FSMC_D9) | \
  713. PIN_PUPDR_FLOATING(GPIOE_FSMC_D10) | \
  714. PIN_PUPDR_FLOATING(GPIOE_FSMC_D11) | \
  715. PIN_PUPDR_FLOATING(GPIOE_FSMC_D12))
  716. #define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \
  717. PIN_ODR_HIGH(GPIOE_PIN1) | \
  718. PIN_ODR_HIGH(GPIOE_JOY_A) | \
  719. PIN_ODR_HIGH(GPIOE_JOY_B) | \
  720. PIN_ODR_HIGH(GPIOE_JOY_C) | \
  721. PIN_ODR_HIGH(GPIOE_JOY_D) | \
  722. PIN_ODR_HIGH(GPIOE_JOY_PRESS) | \
  723. PIN_ODR_HIGH(GPIOE_FSMC_D4) | \
  724. PIN_ODR_HIGH(GPIOE_FSMC_D5) | \
  725. PIN_ODR_HIGH(GPIOE_FSMC_D6) | \
  726. PIN_ODR_HIGH(GPIOE_FSMC_D7) | \
  727. PIN_ODR_HIGH(GPIOE_FSMC_D8) | \
  728. PIN_ODR_HIGH(GPIOE_FSMC_D9) | \
  729. PIN_ODR_HIGH(GPIOE_FSMC_D10) | \
  730. PIN_ODR_HIGH(GPIOE_FSMC_D11) | \
  731. PIN_ODR_HIGH(GPIOE_FSMC_D12))
  732. #define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0) | \
  733. PIN_AFIO_AF(GPIOE_PIN1, 0) | \
  734. PIN_AFIO_AF(GPIOE_JOY_A, 0) | \
  735. PIN_AFIO_AF(GPIOE_JOY_B, 0) | \
  736. PIN_AFIO_AF(GPIOE_JOY_C, 0) | \
  737. PIN_AFIO_AF(GPIOE_JOY_D, 0) | \
  738. PIN_AFIO_AF(GPIOE_JOY_PRESS, 0) | \
  739. PIN_AFIO_AF(GPIOE_FSMC_D4, 0))
  740. #define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_FSMC_D5, 0) | \
  741. PIN_AFIO_AF(GPIOE_FSMC_D6, 0) | \
  742. PIN_AFIO_AF(GPIOE_FSMC_D7, 0) | \
  743. PIN_AFIO_AF(GPIOE_FSMC_D8, 0) | \
  744. PIN_AFIO_AF(GPIOE_FSMC_D9, 0) | \
  745. PIN_AFIO_AF(GPIOE_FSMC_D10, 0) | \
  746. PIN_AFIO_AF(GPIOE_FSMC_D11, 0) | \
  747. PIN_AFIO_AF(GPIOE_FSMC_D12, 0))
  748. /*
  749. * PF0 - PIN0 (input floating).
  750. * PF1 - PIN1 (input floating).
  751. * PF2 - PIN2 (input floating).
  752. * PF3 - PIN3 (input floating).
  753. * PF4 - PIN4 (input floating).
  754. * PF5 - PIN5 (input floating).
  755. * PF6 - PIN6 (input floating).
  756. * PF7 - LCD_PWM (input floating).
  757. * PF8 - PIN8 (input floating).
  758. * PF9 - PIN9 (input floating).
  759. * PF10 - PIN10 (input floating).
  760. * PF11 - PIN11 (input floating).
  761. * PF12 - PIN12 (input floating).
  762. * PF13 - PIN13 (input floating).
  763. * PF14 - PIN14 (input floating).
  764. * PF15 - PIN15 (input floating).
  765. */
  766. #define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_PIN0) | \
  767. PIN_MODE_INPUT(GPIOF_PIN1) | \
  768. PIN_MODE_INPUT(GPIOF_PIN2) | \
  769. PIN_MODE_INPUT(GPIOF_PIN3) | \
  770. PIN_MODE_INPUT(GPIOF_PIN4) | \
  771. PIN_MODE_INPUT(GPIOF_PIN5) | \
  772. PIN_MODE_INPUT(GPIOF_PIN6) | \
  773. PIN_MODE_INPUT(GPIOF_LCD_PWM) | \
  774. PIN_MODE_INPUT(GPIOF_PIN8) | \
  775. PIN_MODE_INPUT(GPIOF_PIN9) | \
  776. PIN_MODE_INPUT(GPIOF_PIN10) | \
  777. PIN_MODE_INPUT(GPIOF_PIN11) | \
  778. PIN_MODE_INPUT(GPIOF_PIN12) | \
  779. PIN_MODE_INPUT(GPIOF_PIN13) | \
  780. PIN_MODE_INPUT(GPIOF_PIN14) | \
  781. PIN_MODE_INPUT(GPIOF_PIN15))
  782. #define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_PIN0) | \
  783. PIN_OTYPE_PUSHPULL(GPIOF_PIN1) | \
  784. PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \
  785. PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \
  786. PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \
  787. PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \
  788. PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \
  789. PIN_OTYPE_PUSHPULL(GPIOF_LCD_PWM) | \
  790. PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \
  791. PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \
  792. PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \
  793. PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \
  794. PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \
  795. PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \
  796. PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \
  797. PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
  798. #define VAL_GPIOF_OSPEEDR (PIN_OSPEED_100M(GPIOF_PIN0) | \
  799. PIN_OSPEED_100M(GPIOF_PIN1) | \
  800. PIN_OSPEED_100M(GPIOF_PIN2) | \
  801. PIN_OSPEED_100M(GPIOF_PIN3) | \
  802. PIN_OSPEED_100M(GPIOF_PIN4) | \
  803. PIN_OSPEED_100M(GPIOF_PIN5) | \
  804. PIN_OSPEED_100M(GPIOF_PIN6) | \
  805. PIN_OSPEED_100M(GPIOF_LCD_PWM) | \
  806. PIN_OSPEED_100M(GPIOF_PIN8) | \
  807. PIN_OSPEED_100M(GPIOF_PIN9) | \
  808. PIN_OSPEED_100M(GPIOF_PIN10) | \
  809. PIN_OSPEED_100M(GPIOF_PIN11) | \
  810. PIN_OSPEED_100M(GPIOF_PIN12) | \
  811. PIN_OSPEED_100M(GPIOF_PIN13) | \
  812. PIN_OSPEED_100M(GPIOF_PIN14) | \
  813. PIN_OSPEED_100M(GPIOF_PIN15))
  814. #define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_PIN0) | \
  815. PIN_PUPDR_FLOATING(GPIOF_PIN1) | \
  816. PIN_PUPDR_FLOATING(GPIOF_PIN2) | \
  817. PIN_PUPDR_FLOATING(GPIOF_PIN3) | \
  818. PIN_PUPDR_FLOATING(GPIOF_PIN4) | \
  819. PIN_PUPDR_FLOATING(GPIOF_PIN5) | \
  820. PIN_PUPDR_FLOATING(GPIOF_PIN6) | \
  821. PIN_PUPDR_FLOATING(GPIOF_LCD_PWM) | \
  822. PIN_PUPDR_FLOATING(GPIOF_PIN8) | \
  823. PIN_PUPDR_FLOATING(GPIOF_PIN9) | \
  824. PIN_PUPDR_FLOATING(GPIOF_PIN10) | \
  825. PIN_PUPDR_FLOATING(GPIOF_PIN11) | \
  826. PIN_PUPDR_FLOATING(GPIOF_PIN12) | \
  827. PIN_PUPDR_FLOATING(GPIOF_PIN13) | \
  828. PIN_PUPDR_FLOATING(GPIOF_PIN14) | \
  829. PIN_PUPDR_FLOATING(GPIOF_PIN15))
  830. #define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_PIN0) | \
  831. PIN_ODR_HIGH(GPIOF_PIN1) | \
  832. PIN_ODR_HIGH(GPIOF_PIN2) | \
  833. PIN_ODR_HIGH(GPIOF_PIN3) | \
  834. PIN_ODR_HIGH(GPIOF_PIN4) | \
  835. PIN_ODR_HIGH(GPIOF_PIN5) | \
  836. PIN_ODR_HIGH(GPIOF_PIN6) | \
  837. PIN_ODR_HIGH(GPIOF_LCD_PWM) | \
  838. PIN_ODR_HIGH(GPIOF_PIN8) | \
  839. PIN_ODR_HIGH(GPIOF_PIN9) | \
  840. PIN_ODR_HIGH(GPIOF_PIN10) | \
  841. PIN_ODR_HIGH(GPIOF_PIN11) | \
  842. PIN_ODR_HIGH(GPIOF_PIN12) | \
  843. PIN_ODR_HIGH(GPIOF_PIN13) | \
  844. PIN_ODR_HIGH(GPIOF_PIN14) | \
  845. PIN_ODR_HIGH(GPIOF_PIN15))
  846. #define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_PIN0, 0) | \
  847. PIN_AFIO_AF(GPIOF_PIN1, 0) | \
  848. PIN_AFIO_AF(GPIOF_PIN2, 0) | \
  849. PIN_AFIO_AF(GPIOF_PIN3, 0) | \
  850. PIN_AFIO_AF(GPIOF_PIN4, 0) | \
  851. PIN_AFIO_AF(GPIOF_PIN5, 0) | \
  852. PIN_AFIO_AF(GPIOF_PIN6, 0) | \
  853. PIN_AFIO_AF(GPIOF_LCD_PWM, 0))
  854. #define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0) | \
  855. PIN_AFIO_AF(GPIOF_PIN9, 0) | \
  856. PIN_AFIO_AF(GPIOF_PIN10, 0) | \
  857. PIN_AFIO_AF(GPIOF_PIN11, 0) | \
  858. PIN_AFIO_AF(GPIOF_PIN12, 0) | \
  859. PIN_AFIO_AF(GPIOF_PIN13, 0) | \
  860. PIN_AFIO_AF(GPIOF_PIN14, 0) | \
  861. PIN_AFIO_AF(GPIOF_PIN15, 0))
  862. /*
  863. * PG0 - PIN0 (input floating).
  864. * PG1 - PIN1 (input floating).
  865. * PG2 - PIN2 (input floating).
  866. * PG3 - PIN3 (input floating).
  867. * PG4 - PIN4 (input floating).
  868. * PG5 - FSMC_A15 (input floating).
  869. * PG6 - PIN6 (input floating).
  870. * PG7 - PIN7 (input floating).
  871. * PG8 - PIN8 (input floating).
  872. * PG9 - PIN9 (input floating).
  873. * PG10 - PIN10 (input floating).
  874. * PG11 - MII_TX_EN (input floating).
  875. * PG12 - PIN12 (input floating).
  876. * PG13 - MII_TX_D0 (input floating).
  877. * PG14 - MII_TX_D1 (input floating).
  878. * PG15 - PIN15 (input floating).
  879. */
  880. #define VAL_GPIOG_MODER (PIN_MODE_INPUT(GPIOG_PIN0) | \
  881. PIN_MODE_INPUT(GPIOG_PIN1) | \
  882. PIN_MODE_INPUT(GPIOG_PIN2) | \
  883. PIN_MODE_INPUT(GPIOG_PIN3) | \
  884. PIN_MODE_INPUT(GPIOG_PIN4) | \
  885. PIN_MODE_INPUT(GPIOG_FSMC_A15) | \
  886. PIN_MODE_INPUT(GPIOG_PIN6) | \
  887. PIN_MODE_INPUT(GPIOG_PIN7) | \
  888. PIN_MODE_INPUT(GPIOG_PIN8) | \
  889. PIN_MODE_INPUT(GPIOG_PIN9) | \
  890. PIN_MODE_INPUT(GPIOG_PIN10) | \
  891. PIN_MODE_INPUT(GPIOG_MII_TX_EN) | \
  892. PIN_MODE_INPUT(GPIOG_PIN12) | \
  893. PIN_MODE_INPUT(GPIOG_MII_TX_D0) | \
  894. PIN_MODE_INPUT(GPIOG_MII_TX_D1) | \
  895. PIN_MODE_INPUT(GPIOG_PIN15))
  896. #define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(GPIOG_PIN0) | \
  897. PIN_OTYPE_PUSHPULL(GPIOG_PIN1) | \
  898. PIN_OTYPE_PUSHPULL(GPIOG_PIN2) | \
  899. PIN_OTYPE_PUSHPULL(GPIOG_PIN3) | \
  900. PIN_OTYPE_PUSHPULL(GPIOG_PIN4) | \
  901. PIN_OTYPE_PUSHPULL(GPIOG_FSMC_A15) | \
  902. PIN_OTYPE_PUSHPULL(GPIOG_PIN6) | \
  903. PIN_OTYPE_PUSHPULL(GPIOG_PIN7) | \
  904. PIN_OTYPE_PUSHPULL(GPIOG_PIN8) | \
  905. PIN_OTYPE_PUSHPULL(GPIOG_PIN9) | \
  906. PIN_OTYPE_PUSHPULL(GPIOG_PIN10) | \
  907. PIN_OTYPE_PUSHPULL(GPIOG_MII_TX_EN) | \
  908. PIN_OTYPE_PUSHPULL(GPIOG_PIN12) | \
  909. PIN_OTYPE_PUSHPULL(GPIOG_MII_TX_D0) | \
  910. PIN_OTYPE_PUSHPULL(GPIOG_MII_TX_D1) | \
  911. PIN_OTYPE_PUSHPULL(GPIOG_PIN15))
  912. #define VAL_GPIOG_OSPEEDR (PIN_OSPEED_100M(GPIOG_PIN0) | \
  913. PIN_OSPEED_100M(GPIOG_PIN1) | \
  914. PIN_OSPEED_100M(GPIOG_PIN2) | \
  915. PIN_OSPEED_100M(GPIOG_PIN3) | \
  916. PIN_OSPEED_100M(GPIOG_PIN4) | \
  917. PIN_OSPEED_100M(GPIOG_FSMC_A15) | \
  918. PIN_OSPEED_100M(GPIOG_PIN6) | \
  919. PIN_OSPEED_100M(GPIOG_PIN7) | \
  920. PIN_OSPEED_100M(GPIOG_PIN8) | \
  921. PIN_OSPEED_100M(GPIOG_PIN9) | \
  922. PIN_OSPEED_100M(GPIOG_PIN10) | \
  923. PIN_OSPEED_100M(GPIOG_MII_TX_EN) | \
  924. PIN_OSPEED_100M(GPIOG_PIN12) | \
  925. PIN_OSPEED_100M(GPIOG_MII_TX_D0) | \
  926. PIN_OSPEED_100M(GPIOG_MII_TX_D1) | \
  927. PIN_OSPEED_100M(GPIOG_PIN15))
  928. #define VAL_GPIOG_PUPDR (PIN_PUPDR_FLOATING(GPIOG_PIN0) | \
  929. PIN_PUPDR_FLOATING(GPIOG_PIN1) | \
  930. PIN_PUPDR_FLOATING(GPIOG_PIN2) | \
  931. PIN_PUPDR_FLOATING(GPIOG_PIN3) | \
  932. PIN_PUPDR_FLOATING(GPIOG_PIN4) | \
  933. PIN_PUPDR_FLOATING(GPIOG_FSMC_A15) | \
  934. PIN_PUPDR_FLOATING(GPIOG_PIN6) | \
  935. PIN_PUPDR_FLOATING(GPIOG_PIN7) | \
  936. PIN_PUPDR_FLOATING(GPIOG_PIN8) | \
  937. PIN_PUPDR_FLOATING(GPIOG_PIN9) | \
  938. PIN_PUPDR_FLOATING(GPIOG_PIN10) | \
  939. PIN_PUPDR_FLOATING(GPIOG_MII_TX_EN) | \
  940. PIN_PUPDR_FLOATING(GPIOG_PIN12) | \
  941. PIN_PUPDR_FLOATING(GPIOG_MII_TX_D0) | \
  942. PIN_PUPDR_FLOATING(GPIOG_MII_TX_D1) | \
  943. PIN_PUPDR_FLOATING(GPIOG_PIN15))
  944. #define VAL_GPIOG_ODR (PIN_ODR_HIGH(GPIOG_PIN0) | \
  945. PIN_ODR_HIGH(GPIOG_PIN1) | \
  946. PIN_ODR_HIGH(GPIOG_PIN2) | \
  947. PIN_ODR_HIGH(GPIOG_PIN3) | \
  948. PIN_ODR_HIGH(GPIOG_PIN4) | \
  949. PIN_ODR_HIGH(GPIOG_FSMC_A15) | \
  950. PIN_ODR_HIGH(GPIOG_PIN6) | \
  951. PIN_ODR_HIGH(GPIOG_PIN7) | \
  952. PIN_ODR_HIGH(GPIOG_PIN8) | \
  953. PIN_ODR_HIGH(GPIOG_PIN9) | \
  954. PIN_ODR_HIGH(GPIOG_PIN10) | \
  955. PIN_ODR_HIGH(GPIOG_MII_TX_EN) | \
  956. PIN_ODR_HIGH(GPIOG_PIN12) | \
  957. PIN_ODR_HIGH(GPIOG_MII_TX_D0) | \
  958. PIN_ODR_HIGH(GPIOG_MII_TX_D1) | \
  959. PIN_ODR_HIGH(GPIOG_PIN15))
  960. #define VAL_GPIOG_AFRL (PIN_AFIO_AF(GPIOG_PIN0, 0) | \
  961. PIN_AFIO_AF(GPIOG_PIN1, 0) | \
  962. PIN_AFIO_AF(GPIOG_PIN2, 0) | \
  963. PIN_AFIO_AF(GPIOG_PIN3, 0) | \
  964. PIN_AFIO_AF(GPIOG_PIN4, 0) | \
  965. PIN_AFIO_AF(GPIOG_FSMC_A15, 0) | \
  966. PIN_AFIO_AF(GPIOG_PIN6, 0) | \
  967. PIN_AFIO_AF(GPIOG_PIN7, 0))
  968. #define VAL_GPIOG_AFRH (PIN_AFIO_AF(GPIOG_PIN8, 0) | \
  969. PIN_AFIO_AF(GPIOG_PIN9, 0) | \
  970. PIN_AFIO_AF(GPIOG_PIN10, 0) | \
  971. PIN_AFIO_AF(GPIOG_MII_TX_EN, 0) | \
  972. PIN_AFIO_AF(GPIOG_PIN12, 0) | \
  973. PIN_AFIO_AF(GPIOG_MII_TX_D0, 0) | \
  974. PIN_AFIO_AF(GPIOG_MII_TX_D1, 0) | \
  975. PIN_AFIO_AF(GPIOG_PIN15, 0))
  976. /*
  977. * PH0 - OSC_IN (input floating).
  978. * PH1 - OSC_OUT (input floating).
  979. * PH2 - LED1 (output pushpull maximum).
  980. * PH3 - LED2 (output pushpull maximum).
  981. * PH4 - ULPI_NXT (input floating).
  982. * PH5 - PIN5 (input floating).
  983. * PH6 - PIN6 (input floating).
  984. * PH7 - PIN7 (input floating).
  985. * PH8 - PIN8 (input floating).
  986. * PH9 - PIN9 (input floating).
  987. * PH10 - PIN10 (input floating).
  988. * PH11 - ULPI_RESET (input floating).
  989. * PH12 - PIN12 (input floating).
  990. * PH13 - PIN13 (input floating).
  991. * PH14 - PIN14 (input floating).
  992. * PH15 - PIN15 (input floating).
  993. */
  994. #define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_OSC_IN) | \
  995. PIN_MODE_INPUT(GPIOH_OSC_OUT) | \
  996. PIN_MODE_OUTPUT(GPIOH_LED1) | \
  997. PIN_MODE_OUTPUT(GPIOH_LED2) | \
  998. PIN_MODE_INPUT(GPIOH_ULPI_NXT) | \
  999. PIN_MODE_INPUT(GPIOH_PIN5) | \
  1000. PIN_MODE_INPUT(GPIOH_PIN6) | \
  1001. PIN_MODE_INPUT(GPIOH_PIN7) | \
  1002. PIN_MODE_INPUT(GPIOH_PIN8) | \
  1003. PIN_MODE_INPUT(GPIOH_PIN9) | \
  1004. PIN_MODE_INPUT(GPIOH_PIN10) | \
  1005. PIN_MODE_INPUT(GPIOH_ULPI_RESET) | \
  1006. PIN_MODE_INPUT(GPIOH_PIN12) | \
  1007. PIN_MODE_INPUT(GPIOH_PIN13) | \
  1008. PIN_MODE_INPUT(GPIOH_PIN14) | \
  1009. PIN_MODE_INPUT(GPIOH_PIN15))
  1010. #define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_OSC_IN) | \
  1011. PIN_OTYPE_PUSHPULL(GPIOH_OSC_OUT) | \
  1012. PIN_OTYPE_PUSHPULL(GPIOH_LED1) | \
  1013. PIN_OTYPE_PUSHPULL(GPIOH_LED2) | \
  1014. PIN_OTYPE_PUSHPULL(GPIOH_ULPI_NXT) | \
  1015. PIN_OTYPE_PUSHPULL(GPIOH_PIN5) | \
  1016. PIN_OTYPE_PUSHPULL(GPIOH_PIN6) | \
  1017. PIN_OTYPE_PUSHPULL(GPIOH_PIN7) | \
  1018. PIN_OTYPE_PUSHPULL(GPIOH_PIN8) | \
  1019. PIN_OTYPE_PUSHPULL(GPIOH_PIN9) | \
  1020. PIN_OTYPE_PUSHPULL(GPIOH_PIN10) | \
  1021. PIN_OTYPE_PUSHPULL(GPIOH_ULPI_RESET) | \
  1022. PIN_OTYPE_PUSHPULL(GPIOH_PIN12) | \
  1023. PIN_OTYPE_PUSHPULL(GPIOH_PIN13) | \
  1024. PIN_OTYPE_PUSHPULL(GPIOH_PIN14) | \
  1025. PIN_OTYPE_PUSHPULL(GPIOH_PIN15))
  1026. #define VAL_GPIOH_OSPEEDR (PIN_OSPEED_100M(GPIOH_OSC_IN) | \
  1027. PIN_OSPEED_100M(GPIOH_OSC_OUT) | \
  1028. PIN_OSPEED_100M(GPIOH_LED1) | \
  1029. PIN_OSPEED_100M(GPIOH_LED2) | \
  1030. PIN_OSPEED_100M(GPIOH_ULPI_NXT) | \
  1031. PIN_OSPEED_100M(GPIOH_PIN5) | \
  1032. PIN_OSPEED_100M(GPIOH_PIN6) | \
  1033. PIN_OSPEED_100M(GPIOH_PIN7) | \
  1034. PIN_OSPEED_100M(GPIOH_PIN8) | \
  1035. PIN_OSPEED_100M(GPIOH_PIN9) | \
  1036. PIN_OSPEED_100M(GPIOH_PIN10) | \
  1037. PIN_OSPEED_100M(GPIOH_ULPI_RESET) | \
  1038. PIN_OSPEED_100M(GPIOH_PIN12) | \
  1039. PIN_OSPEED_100M(GPIOH_PIN13) | \
  1040. PIN_OSPEED_100M(GPIOH_PIN14) | \
  1041. PIN_OSPEED_100M(GPIOH_PIN15))
  1042. #define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(GPIOH_OSC_IN) | \
  1043. PIN_PUPDR_FLOATING(GPIOH_OSC_OUT) | \
  1044. PIN_PUPDR_FLOATING(GPIOH_LED1) | \
  1045. PIN_PUPDR_FLOATING(GPIOH_LED2) | \
  1046. PIN_PUPDR_FLOATING(GPIOH_ULPI_NXT) | \
  1047. PIN_PUPDR_FLOATING(GPIOH_PIN5) | \
  1048. PIN_PUPDR_FLOATING(GPIOH_PIN6) | \
  1049. PIN_PUPDR_FLOATING(GPIOH_PIN7) | \
  1050. PIN_PUPDR_FLOATING(GPIOH_PIN8) | \
  1051. PIN_PUPDR_FLOATING(GPIOH_PIN9) | \
  1052. PIN_PUPDR_FLOATING(GPIOH_PIN10) | \
  1053. PIN_PUPDR_FLOATING(GPIOH_ULPI_RESET) | \
  1054. PIN_PUPDR_FLOATING(GPIOH_PIN12) | \
  1055. PIN_PUPDR_FLOATING(GPIOH_PIN13) | \
  1056. PIN_PUPDR_FLOATING(GPIOH_PIN14) | \
  1057. PIN_PUPDR_FLOATING(GPIOH_PIN15))
  1058. #define VAL_GPIOH_ODR (PIN_ODR_HIGH(GPIOH_OSC_IN) | \
  1059. PIN_ODR_HIGH(GPIOH_OSC_OUT) | \
  1060. PIN_ODR_LOW(GPIOH_LED1) | \
  1061. PIN_ODR_LOW(GPIOH_LED2) | \
  1062. PIN_ODR_HIGH(GPIOH_ULPI_NXT) | \
  1063. PIN_ODR_HIGH(GPIOH_PIN5) | \
  1064. PIN_ODR_HIGH(GPIOH_PIN6) | \
  1065. PIN_ODR_HIGH(GPIOH_PIN7) | \
  1066. PIN_ODR_HIGH(GPIOH_PIN8) | \
  1067. PIN_ODR_HIGH(GPIOH_PIN9) | \
  1068. PIN_ODR_HIGH(GPIOH_PIN10) | \
  1069. PIN_ODR_HIGH(GPIOH_ULPI_RESET) | \
  1070. PIN_ODR_HIGH(GPIOH_PIN12) | \
  1071. PIN_ODR_HIGH(GPIOH_PIN13) | \
  1072. PIN_ODR_HIGH(GPIOH_PIN14) | \
  1073. PIN_ODR_HIGH(GPIOH_PIN15))
  1074. #define VAL_GPIOH_AFRL (PIN_AFIO_AF(GPIOH_OSC_IN, 0) | \
  1075. PIN_AFIO_AF(GPIOH_OSC_OUT, 0) | \
  1076. PIN_AFIO_AF(GPIOH_LED1, 0) | \
  1077. PIN_AFIO_AF(GPIOH_LED2, 0) | \
  1078. PIN_AFIO_AF(GPIOH_ULPI_NXT, 0) | \
  1079. PIN_AFIO_AF(GPIOH_PIN5, 0) | \
  1080. PIN_AFIO_AF(GPIOH_PIN6, 0) | \
  1081. PIN_AFIO_AF(GPIOH_PIN7, 0))
  1082. #define VAL_GPIOH_AFRH (PIN_AFIO_AF(GPIOH_PIN8, 0) | \
  1083. PIN_AFIO_AF(GPIOH_PIN9, 0) | \
  1084. PIN_AFIO_AF(GPIOH_PIN10, 0) | \
  1085. PIN_AFIO_AF(GPIOH_ULPI_RESET, 0) | \
  1086. PIN_AFIO_AF(GPIOH_PIN12, 0) | \
  1087. PIN_AFIO_AF(GPIOH_PIN13, 0) | \
  1088. PIN_AFIO_AF(GPIOH_PIN14, 0) | \
  1089. PIN_AFIO_AF(GPIOH_PIN15, 0))
  1090. /*
  1091. * PI0 - TP_CS (input floating).
  1092. * PI1 - SPI2_SCK (input floating).
  1093. * PI2 - SPI2_MISO (input floating).
  1094. * PI3 - SPI2_MOSI (input floating).
  1095. * PI4 - PIN4 (input floating).
  1096. * PI5 - PIN5 (input floating).
  1097. * PI6 - PIN6 (input floating).
  1098. * PI7 - PIN7 (input floating).
  1099. * PI8 - LED3 (input floating).
  1100. * PI9 - PIN9 (input floating).
  1101. * PI10 - LED4 (input floating).
  1102. * PI11 - ULPI_DIR (input floating).
  1103. * PI12 - PIN12 (input floating).
  1104. * PI13 - PIN13 (input floating).
  1105. * PI14 - PIN14 (input floating).
  1106. * PI15 - PIN15 (input floating).
  1107. */
  1108. #define GPIOI_TP_CS 0
  1109. #define GPIOI_SPI2_SCK 1
  1110. #define GPIOI_SPI2_MISO 2
  1111. #define GPIOI_SPI2_MOSI 3
  1112. #define GPIOI_PIN4 4
  1113. #define GPIOI_PIN5 5
  1114. #define GPIOI_PIN6 6
  1115. #define GPIOI_PIN7 7
  1116. #define GPIOI_LED3 8
  1117. #define GPIOI_PIN9 9
  1118. #define GPIOI_LED4 10
  1119. #define GPIOI_ULPI_DIR 11
  1120. #define GPIOI_PIN12 12
  1121. #define GPIOI_PIN13 13
  1122. #define GPIOI_PIN14 14
  1123. #define GPIOI_PIN15 15
  1124. #define VAL_GPIOI_MODER (PIN_MODE_INPUT(GPIOI_TP_CS) | \
  1125. PIN_MODE_INPUT(GPIOI_SPI2_SCK) | \
  1126. PIN_MODE_INPUT(GPIOI_SPI2_MISO) | \
  1127. PIN_MODE_INPUT(GPIOI_SPI2_MOSI) | \
  1128. PIN_MODE_INPUT(GPIOI_PIN4) | \
  1129. PIN_MODE_INPUT(GPIOI_PIN5) | \
  1130. PIN_MODE_INPUT(GPIOI_PIN6) | \
  1131. PIN_MODE_INPUT(GPIOI_PIN7) | \
  1132. PIN_MODE_INPUT(GPIOI_LED3) | \
  1133. PIN_MODE_INPUT(GPIOI_PIN9) | \
  1134. PIN_MODE_INPUT(GPIOI_LED4) | \
  1135. PIN_MODE_INPUT(GPIOI_ULPI_DIR) | \
  1136. PIN_MODE_INPUT(GPIOI_PIN12) | \
  1137. PIN_MODE_INPUT(GPIOI_PIN13) | \
  1138. PIN_MODE_INPUT(GPIOI_PIN14) | \
  1139. PIN_MODE_INPUT(GPIOI_PIN15))
  1140. #define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(GPIOI_TP_CS) | \
  1141. PIN_OTYPE_PUSHPULL(GPIOI_SPI2_SCK) | \
  1142. PIN_OTYPE_PUSHPULL(GPIOI_SPI2_MISO) | \
  1143. PIN_OTYPE_PUSHPULL(GPIOI_SPI2_MOSI) | \
  1144. PIN_OTYPE_PUSHPULL(GPIOI_PIN4) | \
  1145. PIN_OTYPE_PUSHPULL(GPIOI_PIN5) | \
  1146. PIN_OTYPE_PUSHPULL(GPIOI_PIN6) | \
  1147. PIN_OTYPE_PUSHPULL(GPIOI_PIN7) | \
  1148. PIN_OTYPE_PUSHPULL(GPIOI_LED3) | \
  1149. PIN_OTYPE_PUSHPULL(GPIOI_PIN9) | \
  1150. PIN_OTYPE_PUSHPULL(GPIOI_LED4) | \
  1151. PIN_OTYPE_PUSHPULL(GPIOI_ULPI_DIR) | \
  1152. PIN_OTYPE_PUSHPULL(GPIOI_PIN12) | \
  1153. PIN_OTYPE_PUSHPULL(GPIOI_PIN13) | \
  1154. PIN_OTYPE_PUSHPULL(GPIOI_PIN14) | \
  1155. PIN_OTYPE_PUSHPULL(GPIOI_PIN15))
  1156. #define VAL_GPIOI_OSPEEDR (PIN_OSPEED_100M(GPIOI_TP_CS) | \
  1157. PIN_OSPEED_100M(GPIOI_SPI2_SCK) | \
  1158. PIN_OSPEED_100M(GPIOI_SPI2_MISO) | \
  1159. PIN_OSPEED_100M(GPIOI_SPI2_MOSI) | \
  1160. PIN_OSPEED_100M(GPIOI_PIN4) | \
  1161. PIN_OSPEED_100M(GPIOI_PIN5) | \
  1162. PIN_OSPEED_100M(GPIOI_PIN6) | \
  1163. PIN_OSPEED_100M(GPIOI_PIN7) | \
  1164. PIN_OSPEED_100M(GPIOI_LED3) | \
  1165. PIN_OSPEED_100M(GPIOI_PIN9) | \
  1166. PIN_OSPEED_100M(GPIOI_LED4) | \
  1167. PIN_OSPEED_100M(GPIOI_ULPI_DIR) | \
  1168. PIN_OSPEED_100M(GPIOI_PIN12) | \
  1169. PIN_OSPEED_100M(GPIOI_PIN13) | \
  1170. PIN_OSPEED_100M(GPIOI_PIN14) | \
  1171. PIN_OSPEED_100M(GPIOI_PIN15))
  1172. #define VAL_GPIOI_PUPDR (PIN_PUPDR_FLOATING(GPIOI_TP_CS) | \
  1173. PIN_PUPDR_FLOATING(GPIOI_SPI2_SCK) | \
  1174. PIN_PUPDR_FLOATING(GPIOI_SPI2_MISO) | \
  1175. PIN_PUPDR_FLOATING(GPIOI_SPI2_MOSI) | \
  1176. PIN_PUPDR_FLOATING(GPIOI_PIN4) | \
  1177. PIN_PUPDR_FLOATING(GPIOI_PIN5) | \
  1178. PIN_PUPDR_FLOATING(GPIOI_PIN6) | \
  1179. PIN_PUPDR_FLOATING(GPIOI_PIN7) | \
  1180. PIN_PUPDR_FLOATING(GPIOI_LED3) | \
  1181. PIN_PUPDR_FLOATING(GPIOI_PIN9) | \
  1182. PIN_PUPDR_FLOATING(GPIOI_LED4) | \
  1183. PIN_PUPDR_FLOATING(GPIOI_ULPI_DIR) | \
  1184. PIN_PUPDR_FLOATING(GPIOI_PIN12) | \
  1185. PIN_PUPDR_FLOATING(GPIOI_PIN13) | \
  1186. PIN_PUPDR_FLOATING(GPIOI_PIN14) | \
  1187. PIN_PUPDR_FLOATING(GPIOI_PIN15))
  1188. #define VAL_GPIOI_ODR (PIN_ODR_HIGH(GPIOI_TP_CS) | \
  1189. PIN_ODR_HIGH(GPIOI_SPI2_SCK) | \
  1190. PIN_ODR_HIGH(GPIOI_SPI2_MISO) | \
  1191. PIN_ODR_HIGH(GPIOI_SPI2_MOSI) | \
  1192. PIN_ODR_HIGH(GPIOI_PIN4) | \
  1193. PIN_ODR_HIGH(GPIOI_PIN5) | \
  1194. PIN_ODR_HIGH(GPIOI_PIN6) | \
  1195. PIN_ODR_HIGH(GPIOI_PIN7) | \
  1196. PIN_ODR_HIGH(GPIOI_LED3) | \
  1197. PIN_ODR_HIGH(GPIOI_PIN9) | \
  1198. PIN_ODR_HIGH(GPIOI_LED4) | \
  1199. PIN_ODR_HIGH(GPIOI_ULPI_DIR) | \
  1200. PIN_ODR_HIGH(GPIOI_PIN12) | \
  1201. PIN_ODR_HIGH(GPIOI_PIN13) | \
  1202. PIN_ODR_HIGH(GPIOI_PIN14) | \
  1203. PIN_ODR_HIGH(GPIOI_PIN15))
  1204. #define VAL_GPIOI_AFRL (PIN_AFIO_AF(GPIOI_TP_CS, 0) | \
  1205. PIN_AFIO_AF(GPIOI_SPI2_SCK, 0) | \
  1206. PIN_AFIO_AF(GPIOI_SPI2_MISO, 0) | \
  1207. PIN_AFIO_AF(GPIOI_SPI2_MOSI, 0) | \
  1208. PIN_AFIO_AF(GPIOI_PIN4, 0) | \
  1209. PIN_AFIO_AF(GPIOI_PIN5, 0) | \
  1210. PIN_AFIO_AF(GPIOI_PIN6, 0) | \
  1211. PIN_AFIO_AF(GPIOI_PIN7, 0))
  1212. #define VAL_GPIOI_AFRH (PIN_AFIO_AF(GPIOI_LED3, 0) | \
  1213. PIN_AFIO_AF(GPIOI_PIN9, 0) | \
  1214. PIN_AFIO_AF(GPIOI_LED4, 0) | \
  1215. PIN_AFIO_AF(GPIOI_ULPI_DIR, 0) | \
  1216. PIN_AFIO_AF(GPIOI_PIN12, 0) | \
  1217. PIN_AFIO_AF(GPIOI_PIN13, 0) | \
  1218. PIN_AFIO_AF(GPIOI_PIN14, 0) | \
  1219. PIN_AFIO_AF(GPIOI_PIN15, 0))
  1220. #if !defined(_FROM_ASM_)
  1221. #ifdef __cplusplus
  1222. extern "C" {
  1223. #endif
  1224. void boardInit(void);
  1225. #ifdef __cplusplus
  1226. }
  1227. #endif
  1228. #endif
  1229. #endif