hal_pinctrl.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. /* SPDX-License-Identifier: BSD-3-Clause */
  2. /*
  3. * Copyright (c) 2020-2021 Rockchip Electronics Co., Ltd.
  4. */
  5. #include "hal_conf.h"
  6. /** @addtogroup RK_HAL_Driver
  7. * @{
  8. */
  9. /** @addtogroup PINCTRL
  10. * @{
  11. */
  12. #ifndef __HAL_PINCTRL_H__
  13. #define __HAL_PINCTRL_H__
  14. #include "hal_def.h"
  15. /***************************** MACRO Definition ******************************/
  16. /** @defgroup PINCTRL_Exported_Definition_Group1 Basic Definition
  17. * @{
  18. */
  19. /** PINCTRL IOFUNC Select definition */
  20. typedef enum {
  21. IOFUNC_SEL_M0,
  22. IOFUNC_SEL_M1,
  23. IOFUNC_SEL_M2,
  24. } eIOFUNC_SEL;
  25. typedef enum {
  26. #if defined(GPIO0)
  27. GPIO0_A0 = 0,
  28. GPIO0_A1,
  29. GPIO0_A2,
  30. GPIO0_A3,
  31. GPIO0_A4,
  32. GPIO0_A5,
  33. GPIO0_A6,
  34. GPIO0_A7,
  35. GPIO0_B0 = 8,
  36. GPIO0_B1,
  37. GPIO0_B2,
  38. GPIO0_B3,
  39. GPIO0_B4,
  40. GPIO0_B5,
  41. GPIO0_B6,
  42. GPIO0_B7,
  43. GPIO0_C0 = 16,
  44. GPIO0_C1,
  45. GPIO0_C2,
  46. GPIO0_C3,
  47. GPIO0_C4,
  48. GPIO0_C5,
  49. GPIO0_C6,
  50. GPIO0_C7,
  51. GPIO0_D0 = 24,
  52. GPIO0_D1,
  53. GPIO0_D2,
  54. GPIO0_D3,
  55. GPIO0_D4,
  56. GPIO0_D5,
  57. GPIO0_D6,
  58. GPIO0_D7,
  59. #endif
  60. #if defined(GPIO1)
  61. GPIO1_A0 = 32,
  62. GPIO1_A1,
  63. GPIO1_A2,
  64. GPIO1_A3,
  65. GPIO1_A4,
  66. GPIO1_A5,
  67. GPIO1_A6,
  68. GPIO1_A7,
  69. GPIO1_B0 = 40,
  70. GPIO1_B1,
  71. GPIO1_B2,
  72. GPIO1_B3,
  73. GPIO1_B4,
  74. GPIO1_B5,
  75. GPIO1_B6,
  76. GPIO1_B7,
  77. GPIO1_C0 = 48,
  78. GPIO1_C1,
  79. GPIO1_C2,
  80. GPIO1_C3,
  81. GPIO1_C4,
  82. GPIO1_C5,
  83. GPIO1_C6,
  84. GPIO1_C7,
  85. GPIO1_D0 = 56,
  86. GPIO1_D1,
  87. GPIO1_D2,
  88. GPIO1_D3,
  89. GPIO1_D4,
  90. GPIO1_D5,
  91. GPIO1_D6,
  92. GPIO1_D7,
  93. #endif
  94. #if defined(GPIO2)
  95. GPIO2_A0 = 64,
  96. GPIO2_A1,
  97. GPIO2_A2,
  98. GPIO2_A3,
  99. GPIO2_A4,
  100. GPIO2_A5,
  101. GPIO2_A6,
  102. GPIO2_A7,
  103. GPIO2_B0 = 72,
  104. GPIO2_B1,
  105. GPIO2_B2,
  106. GPIO2_B3,
  107. GPIO2_B4,
  108. GPIO2_B5,
  109. GPIO2_B6,
  110. GPIO2_B7,
  111. GPIO2_C0 = 80,
  112. GPIO2_C1,
  113. GPIO2_C2,
  114. GPIO2_C3,
  115. GPIO2_C4,
  116. GPIO2_C5,
  117. GPIO2_C6,
  118. GPIO2_C7,
  119. GPIO2_D0 = 88,
  120. GPIO2_D1,
  121. GPIO2_D2,
  122. GPIO2_D3,
  123. GPIO2_D4,
  124. GPIO2_D5,
  125. GPIO2_D6,
  126. GPIO2_D7,
  127. #endif
  128. #if defined(GPIO3)
  129. GPIO3_A0 = 96,
  130. GPIO3_A1,
  131. GPIO3_A2,
  132. GPIO3_A3,
  133. GPIO3_A4,
  134. GPIO3_A5,
  135. GPIO3_A6,
  136. GPIO3_A7,
  137. GPIO3_B0 = 104,
  138. GPIO3_B1,
  139. GPIO3_B2,
  140. GPIO3_B3,
  141. GPIO3_B4,
  142. GPIO3_B5,
  143. GPIO3_B6,
  144. GPIO3_B7,
  145. GPIO3_C0 = 112,
  146. GPIO3_C1,
  147. GPIO3_C2,
  148. GPIO3_C3,
  149. GPIO3_C4,
  150. GPIO3_C5,
  151. GPIO3_C6,
  152. GPIO3_C7,
  153. GPIO3_D0 = 120,
  154. GPIO3_D1,
  155. GPIO3_D2,
  156. GPIO3_D3,
  157. GPIO3_D4,
  158. GPIO3_D5,
  159. GPIO3_D6,
  160. GPIO3_D7,
  161. #endif
  162. #if defined(GPIO4)
  163. GPIO4_A0 = 128,
  164. GPIO4_A1,
  165. GPIO4_A2,
  166. GPIO4_A3,
  167. GPIO4_A4,
  168. GPIO4_A5,
  169. GPIO4_A6,
  170. GPIO4_A7,
  171. GPIO4_B0 = 136,
  172. GPIO4_B1,
  173. GPIO4_B2,
  174. GPIO4_B3,
  175. GPIO4_B4,
  176. GPIO4_B5,
  177. GPIO4_B6,
  178. GPIO4_B7,
  179. GPIO4_C0 = 144,
  180. GPIO4_C1,
  181. GPIO4_C2,
  182. GPIO4_C3,
  183. GPIO4_C4,
  184. GPIO4_C5,
  185. GPIO4_C6,
  186. GPIO4_C7,
  187. GPIO4_D0 = 152,
  188. GPIO4_D1,
  189. GPIO4_D2,
  190. GPIO4_D3,
  191. GPIO4_D4,
  192. GPIO4_D5,
  193. GPIO4_D6,
  194. GPIO4_D7,
  195. #endif
  196. GPIO_NUM_MAX
  197. } ePINCTRL_PIN;
  198. /** PINCTRL IOMUX definition */
  199. typedef enum {
  200. PINCTRL_IOMUX_FUNC0,
  201. PINCTRL_IOMUX_FUNC1,
  202. PINCTRL_IOMUX_FUNC2,
  203. PINCTRL_IOMUX_FUNC3,
  204. PINCTRL_IOMUX_FUNC4,
  205. PINCTRL_IOMUX_FUNC5,
  206. PINCTRL_IOMUX_FUNC6,
  207. PINCTRL_IOMUX_FUNC7
  208. } ePINCTRL_iomuxFunc;
  209. /** PINCTRL PULL definition */
  210. typedef enum {
  211. PINCTRL_PULL_OD,
  212. PINCTRL_PULL_UP,
  213. PINCTRL_PULL_DOWN,
  214. PINCTRL_PULL_KEEP
  215. } ePINCTRL_pullMode;
  216. /** PINCTRL Drive Strength definition */
  217. typedef enum {
  218. PINCTRL_DRIVE_LEVEL0,
  219. PINCTRL_DRIVE_LEVEL1,
  220. PINCTRL_DRIVE_LEVEL2,
  221. PINCTRL_DRIVE_LEVEL3,
  222. PINCTRL_DRIVE_LEVEL4,
  223. PINCTRL_DRIVE_LEVEL5,
  224. PINCTRL_DRIVE_LEVEL6,
  225. PINCTRL_DRIVE_LEVEL7
  226. } ePINCTRL_driveLevel;
  227. /** PINCTRL Slew Rate definition */
  228. typedef enum {
  229. PINCTRL_SLEWRATE_SLOW,
  230. PINCTRL_SLEWRATE_FAST
  231. } ePINCTRL_slewRate;
  232. /** PINCTRL Schmitt enable definition */
  233. typedef enum {
  234. PINCTRL_SCHMITT_DIS,
  235. PINCTRL_SCHMITT_EN
  236. } ePINCTRL_schmitt;
  237. #define FLAG_MUX HAL_BIT(31)
  238. #define FLAG_PUL HAL_BIT(30)
  239. #define FLAG_DRV HAL_BIT(29)
  240. #define FLAG_SRT HAL_BIT(28)
  241. #define FLAG_SMT HAL_BIT(27)
  242. #define SHIFT_MUX (0)
  243. #define SHIFT_PUL (4)
  244. #define SHIFT_DRV (8)
  245. #define SHIFT_SRT (16)
  246. #define SHIFT_SMT (18)
  247. #define MASK_MUX (0xFU << SHIFT_MUX)
  248. #define MASK_PUL (0xFU << SHIFT_PUL)
  249. #define MASK_DRV (0xFFU << SHIFT_DRV)
  250. #define MASK_SRT (0x3U << SHIFT_SRT)
  251. #define MASK_SMT (0x3U << SHIFT_SMT)
  252. /** @brief PIN Configuration Mode
  253. * Elements values convention: gggg g000 0000 ttrr dddd dddd pppp xxxx
  254. * - ggggg : Flag to set Mux/Pull/Drive/Slewrate/Schmitt
  255. * - tt : Schmitt value
  256. * - rr : Slewrate value
  257. * - dddddddd : Drive value
  258. * - pppp : Pull value
  259. * - xxxx : Mux mode value
  260. */
  261. typedef enum {
  262. PIN_CONFIG_MUX_FUNC0 = (0x0 << SHIFT_MUX | FLAG_MUX),
  263. PIN_CONFIG_MUX_FUNC1 = (0x1 << SHIFT_MUX | FLAG_MUX),
  264. PIN_CONFIG_MUX_FUNC2 = (0x2 << SHIFT_MUX | FLAG_MUX),
  265. PIN_CONFIG_MUX_FUNC3 = (0x3 << SHIFT_MUX | FLAG_MUX),
  266. PIN_CONFIG_MUX_FUNC4 = (0x4 << SHIFT_MUX | FLAG_MUX),
  267. PIN_CONFIG_MUX_FUNC5 = (0x5 << SHIFT_MUX | FLAG_MUX),
  268. PIN_CONFIG_MUX_FUNC6 = (0x6 << SHIFT_MUX | FLAG_MUX),
  269. PIN_CONFIG_MUX_FUNC7 = (0x7 << SHIFT_MUX | FLAG_MUX),
  270. PIN_CONFIG_MUX_FUNC8 = (0x8 << SHIFT_MUX | FLAG_MUX),
  271. PIN_CONFIG_MUX_FUNC9 = (0x9 << SHIFT_MUX | FLAG_MUX),
  272. PIN_CONFIG_MUX_FUNC10 = (0xa << SHIFT_MUX | FLAG_MUX),
  273. PIN_CONFIG_MUX_FUNC11 = (0xb << SHIFT_MUX | FLAG_MUX),
  274. PIN_CONFIG_MUX_FUNC12 = (0xc << SHIFT_MUX | FLAG_MUX),
  275. PIN_CONFIG_MUX_FUNC13 = (0xd << SHIFT_MUX | FLAG_MUX),
  276. PIN_CONFIG_MUX_FUNC14 = (0xe << SHIFT_MUX | FLAG_MUX),
  277. PIN_CONFIG_MUX_FUNC15 = (0xf << SHIFT_MUX | FLAG_MUX),
  278. PIN_CONFIG_MUX_DEFAULT = PIN_CONFIG_MUX_FUNC0,
  279. #if defined(SOC_SWALLOW)
  280. PIN_CONFIG_PUL_NORMAL = (0x1 << SHIFT_PUL | FLAG_PUL),
  281. PIN_CONFIG_PUL_DEFAULT = (0x0 << SHIFT_PUL | FLAG_PUL),
  282. PIN_CONFIG_PUL_UP = PIN_CONFIG_PUL_DEFAULT,
  283. PIN_CONFIG_PUL_DOWN = PIN_CONFIG_PUL_DEFAULT,
  284. PIN_CONFIG_PUL_KEEP = PIN_CONFIG_PUL_DEFAULT,
  285. #else
  286. PIN_CONFIG_PUL_NORMAL = (0x0 << SHIFT_PUL | FLAG_PUL),
  287. PIN_CONFIG_PUL_UP = (0x1 << SHIFT_PUL | FLAG_PUL),
  288. PIN_CONFIG_PUL_DOWN = (0x2 << SHIFT_PUL | FLAG_PUL),
  289. PIN_CONFIG_PUL_KEEP = (0x3 << SHIFT_PUL | FLAG_PUL),
  290. PIN_CONFIG_PUL_DEFAULT = PIN_CONFIG_PUL_NORMAL,
  291. #endif
  292. #if defined(SOC_RK3568)
  293. PIN_CONFIG_DRV_LEVEL0 = (0x1 << SHIFT_DRV | FLAG_DRV),
  294. PIN_CONFIG_DRV_LEVEL1 = (0x3 << SHIFT_DRV | FLAG_DRV),
  295. PIN_CONFIG_DRV_LEVEL2 = (0x7 << SHIFT_DRV | FLAG_DRV),
  296. PIN_CONFIG_DRV_LEVEL3 = (0xf << SHIFT_DRV | FLAG_DRV),
  297. PIN_CONFIG_DRV_LEVEL4 = (0x1f << SHIFT_DRV | FLAG_DRV),
  298. PIN_CONFIG_DRV_LEVEL5 = (0x3f << SHIFT_DRV | FLAG_DRV),
  299. PIN_CONFIG_DRV_LEVEL_DEFAULT = PIN_CONFIG_DRV_LEVEL2,
  300. #else
  301. PIN_CONFIG_DRV_LEVEL0 = (0x0 << SHIFT_DRV | FLAG_DRV),
  302. PIN_CONFIG_DRV_LEVEL1 = (0x1 << SHIFT_DRV | FLAG_DRV),
  303. PIN_CONFIG_DRV_LEVEL2 = (0x2 << SHIFT_DRV | FLAG_DRV),
  304. PIN_CONFIG_DRV_LEVEL3 = (0x3 << SHIFT_DRV | FLAG_DRV),
  305. PIN_CONFIG_DRV_LEVEL4 = (0x4 << SHIFT_DRV | FLAG_DRV),
  306. PIN_CONFIG_DRV_LEVEL5 = (0x5 << SHIFT_DRV | FLAG_DRV),
  307. PIN_CONFIG_DRV_LEVEL6 = (0x6 << SHIFT_DRV | FLAG_DRV),
  308. PIN_CONFIG_DRV_LEVEL7 = (0x7 << SHIFT_DRV | FLAG_DRV),
  309. PIN_CONFIG_DRV_LEVEL_DEFAULT = PIN_CONFIG_DRV_LEVEL2,
  310. #endif
  311. PIN_CONFIG_SRT_SLOW = (0x0 << SHIFT_SRT | FLAG_SRT),
  312. PIN_CONFIG_SRT_FAST = (0x1 << SHIFT_SRT | FLAG_SRT),
  313. PIN_CONFIG_SRT_DEFAULT = PIN_CONFIG_SRT_SLOW,
  314. PIN_CONFIG_SMT_DISABLE = (0x0 << SHIFT_SMT | FLAG_SMT),
  315. PIN_CONFIG_SMT_ENABLE = (0x1 << SHIFT_SMT | FLAG_SMT),
  316. PIN_CONFIG_SMT_DEFAULT = PIN_CONFIG_SMT_DISABLE,
  317. PIN_CONFIG_MAX = 0xFFFFFFFFU,
  318. } ePINCTRL_configParam;
  319. typedef enum {
  320. GRF_MUX_INFO = 0,
  321. GRF_PUL_INFO,
  322. GRF_DRV_INFO,
  323. GRF_SRT_INFO,
  324. GRF_SMT_INFO,
  325. GRF_INFO_NUM
  326. } ePIN_GRF_INFO_ID;
  327. #define PIN_BANK_CFG_FLAGS(chn, cnt, reg, \
  328. offset0, bpp0, ppr0, \
  329. offset1, bpp1, ppr1, \
  330. offset2, bpp2, ppr2, \
  331. offset3, bpp3, ppr3, \
  332. offset4, bpp4, ppr4) \
  333. { \
  334. .channel = chn, \
  335. .pinCount = cnt, \
  336. .grfBase = reg, \
  337. .GRFInfo[GRF_MUX_INFO] = { .offset = offset0, .bitsPerPin = bpp0, .pinsPerReg = ppr0 }, \
  338. .GRFInfo[GRF_PUL_INFO] = { .offset = offset1, .bitsPerPin = bpp1, .pinsPerReg = ppr1 }, \
  339. .GRFInfo[GRF_DRV_INFO] = { .offset = offset2, .bitsPerPin = bpp2, .pinsPerReg = ppr2 }, \
  340. .GRFInfo[GRF_SRT_INFO] = { .offset = offset3, .bitsPerPin = bpp3, .pinsPerReg = ppr3 }, \
  341. .GRFInfo[GRF_SMT_INFO] = { .offset = offset4, .bitsPerPin = bpp4, .pinsPerReg = ppr4 }, \
  342. }
  343. /** @defgroup ePINCTRL_GPIO_PINS Pins Definition
  344. * @{
  345. */
  346. typedef enum {
  347. GPIO_PIN_A0 = 0x00000001U, /*!< Pin 0 selected */
  348. GPIO_PIN_A1 = 0x00000002U, /*!< Pin 1 selected */
  349. GPIO_PIN_A2 = 0x00000004U, /*!< Pin 2 selected */
  350. GPIO_PIN_A3 = 0x00000008U, /*!< Pin 3 selected */
  351. GPIO_PIN_A4 = 0x00000010U, /*!< Pin 4 selected */
  352. GPIO_PIN_A5 = 0x00000020U, /*!< Pin 5 selected */
  353. GPIO_PIN_A6 = 0x00000040U, /*!< Pin 6 selected */
  354. GPIO_PIN_A7 = 0x00000080U, /*!< Pin 7 selected */
  355. GPIO_PIN_B0 = 0x00000100U, /*!< Pin 8 selected */
  356. GPIO_PIN_B1 = 0x00000200U, /*!< Pin 9 selected */
  357. GPIO_PIN_B2 = 0x00000400U, /*!< Pin 10 selected */
  358. GPIO_PIN_B3 = 0x00000800U, /*!< Pin 11 selected */
  359. GPIO_PIN_B4 = 0x00001000U, /*!< Pin 12 selected */
  360. GPIO_PIN_B5 = 0x00002000U, /*!< Pin 13 selected */
  361. GPIO_PIN_B6 = 0x00004000U, /*!< Pin 14 selected */
  362. GPIO_PIN_B7 = 0x00008000U, /*!< Pin 15 selected */
  363. GPIO_PIN_C0 = 0x00010000U, /*!< Pin 16 selected */
  364. GPIO_PIN_C1 = 0x00020000U, /*!< Pin 17 selected */
  365. GPIO_PIN_C2 = 0x00040000U, /*!< Pin 18 selected */
  366. GPIO_PIN_C3 = 0x00080000U, /*!< Pin 19 selected */
  367. GPIO_PIN_C4 = 0x00100000U, /*!< Pin 20 selected */
  368. GPIO_PIN_C5 = 0x00200000U, /*!< Pin 21 selected */
  369. GPIO_PIN_C6 = 0x00400000U, /*!< Pin 22 selected */
  370. GPIO_PIN_C7 = 0x00800000U, /*!< Pin 23 selected */
  371. GPIO_PIN_D0 = 0x01000000U, /*!< Pin 24 selected */
  372. GPIO_PIN_D1 = 0x02000000U, /*!< Pin 25 selected */
  373. GPIO_PIN_D2 = 0x04000000U, /*!< Pin 26 selected */
  374. GPIO_PIN_D3 = 0x08000000U, /*!< Pin 27 selected */
  375. GPIO_PIN_D4 = 0x10000000U, /*!< Pin 28 selected */
  376. GPIO_PIN_D5 = 0x20000000U, /*!< Pin 29 selected */
  377. GPIO_PIN_D6 = 0x40000000U, /*!< Pin 30 selected */
  378. GPIO_PIN_D7 = 0x80000000U, /*!< Pin 31 selected */
  379. } ePINCTRL_GPIO_PINS;
  380. #define GPIO_PIN_ALL (0xFFFFFFFFU) /*!< All pins selected */
  381. /** @} */
  382. #define ROUTE_VAL(v, s, m) (((v) << (s)) | (m) << ((s) + 16))
  383. /***************************** Structure Definition **************************/
  384. struct PINCTRL_GRF_INFO {
  385. uint16_t offset;
  386. uint8_t bitsPerPin;
  387. uint8_t pinsPerReg;
  388. };
  389. struct PINCTRL_MUX_RECAL_DATA {
  390. uint32_t reg;
  391. uint8_t bank;
  392. uint8_t pin;
  393. uint8_t bit;
  394. uint8_t mask;
  395. };
  396. struct PINCTRL_MUX_ROUTE_DATA {
  397. uint32_t routeReg;
  398. uint32_t routeVal;
  399. uint32_t pin;
  400. uint8_t bank;
  401. uint8_t func;
  402. };
  403. struct PINCTRL_BANK_INFO {
  404. struct PINCTRL_GRF_INFO GRFInfo[GRF_INFO_NUM];
  405. uint32_t grfBase;
  406. uint8_t pinCount;
  407. uint8_t channel;
  408. };
  409. struct HAL_PINCTRL_DEV {
  410. const struct PINCTRL_BANK_INFO *banks;
  411. const struct PINCTRL_MUX_RECAL_DATA *muxRecalData;
  412. const struct PINCTRL_MUX_ROUTE_DATA *muxRouteData;
  413. uint8_t banksNum;
  414. uint8_t muxRecalDataNum;
  415. uint8_t muxRouteDataNum;
  416. };
  417. /** @brief Rockchip pinctrl device struct define
  418. * Define a struct for pinctrl, including banks info, bank number,
  419. * and grf info about iomux offset, iomux bit info, drive/pull/
  420. * slewrate/schmitt offset and bit info.
  421. */
  422. extern const struct HAL_PINCTRL_DEV g_pinDev;
  423. /** @} */
  424. /***************************** Function Declare ******************************/
  425. /** @defgroup PINCTRL_Public_Function_Declare Public Function Declare
  426. * @{
  427. */
  428. HAL_Status HAL_PINCTRL_Suspend(void);
  429. HAL_Status HAL_PINCTRL_Resume(void);
  430. HAL_Status HAL_PINCTRL_Init(void);
  431. HAL_Status HAL_PINCTRL_DeInit(void);
  432. HAL_Status HAL_PINCTRL_SetParam(eGPIO_bankId bank, uint32_t mPins, ePINCTRL_configParam param);
  433. HAL_Status HAL_PINCTRL_SetIOMUX(eGPIO_bankId bank, uint32_t mPins, ePINCTRL_configParam param);
  434. HAL_Status HAL_PINCTRL_IOFuncSelForCIF(eIOFUNC_SEL mode);
  435. HAL_Status HAL_PINCTRL_IOFuncSelForEMMC(eIOFUNC_SEL mode);
  436. HAL_Status HAL_PINCTRL_IOFuncSelForFLASH(eIOFUNC_SEL mode);
  437. HAL_Status HAL_PINCTRL_IOFuncSelForFSPI(eIOFUNC_SEL mode);
  438. HAL_Status HAL_PINCTRL_IOFuncSelForLCDC(eIOFUNC_SEL mode);
  439. HAL_Status HAL_PINCTRL_IOFuncSelForMIPICSI(eIOFUNC_SEL mode);
  440. HAL_Status HAL_PINCTRL_IOFuncSelForRGMII(eIOFUNC_SEL mode);
  441. HAL_Status HAL_PINCTRL_IOFuncSelForGMAC0(eIOFUNC_SEL mode);
  442. HAL_Status HAL_PINCTRL_IOFuncSelForGMAC1(eIOFUNC_SEL mode);
  443. HAL_Status HAL_PINCTRL_IOFuncSelForSDIO(eIOFUNC_SEL mode);
  444. HAL_Status HAL_PINCTRL_IOFuncSelForSDMMC0(eIOFUNC_SEL mode);
  445. HAL_Status HAL_PINCTRL_IOFuncSelForCAN0(eIOFUNC_SEL mode);
  446. HAL_Status HAL_PINCTRL_IOFuncSelForCAN1(eIOFUNC_SEL mode);
  447. HAL_Status HAL_PINCTRL_IOFuncSelForCAN2(eIOFUNC_SEL mode);
  448. HAL_Status HAL_PINCTRL_IOFuncSelForCAN3(eIOFUNC_SEL mode);
  449. HAL_Status HAL_PINCTRL_IOFuncSelForCAN4(eIOFUNC_SEL mode);
  450. HAL_Status HAL_PINCTRL_IOFuncSelForCAN5(eIOFUNC_SEL mode);
  451. HAL_Status HAL_PINCTRL_IOFuncSelForI2C0(eIOFUNC_SEL mode);
  452. HAL_Status HAL_PINCTRL_IOFuncSelForI2C1(eIOFUNC_SEL mode);
  453. HAL_Status HAL_PINCTRL_IOFuncSelForI2C2(eIOFUNC_SEL mode);
  454. HAL_Status HAL_PINCTRL_IOFuncSelForI2C3(eIOFUNC_SEL mode);
  455. HAL_Status HAL_PINCTRL_IOFuncSelForI2C4(eIOFUNC_SEL mode);
  456. HAL_Status HAL_PINCTRL_IOFuncSelForI2C5(eIOFUNC_SEL mode);
  457. HAL_Status HAL_PINCTRL_IOFuncSelForI2S0(eIOFUNC_SEL mode);
  458. HAL_Status HAL_PINCTRL_IOFuncSelForI2S1(eIOFUNC_SEL mode);
  459. HAL_Status HAL_PINCTRL_IOFuncSelForI2S2(eIOFUNC_SEL mode);
  460. HAL_Status HAL_PINCTRL_IOFuncSelForPWM0(eIOFUNC_SEL mode);
  461. HAL_Status HAL_PINCTRL_IOFuncSelForPWM1(eIOFUNC_SEL mode);
  462. HAL_Status HAL_PINCTRL_IOFuncSelForPWM2(eIOFUNC_SEL mode);
  463. HAL_Status HAL_PINCTRL_IOFuncSelForPWM3(eIOFUNC_SEL mode);
  464. HAL_Status HAL_PINCTRL_IOFuncSelForPWM4(eIOFUNC_SEL mode);
  465. HAL_Status HAL_PINCTRL_IOFuncSelForPWM5(eIOFUNC_SEL mode);
  466. HAL_Status HAL_PINCTRL_IOFuncSelForPWM6(eIOFUNC_SEL mode);
  467. HAL_Status HAL_PINCTRL_IOFuncSelForPWM7(eIOFUNC_SEL mode);
  468. HAL_Status HAL_PINCTRL_IOFuncSelForPWM8(eIOFUNC_SEL mode);
  469. HAL_Status HAL_PINCTRL_IOFuncSelForPWM9(eIOFUNC_SEL mode);
  470. HAL_Status HAL_PINCTRL_IOFuncSelForPWM10(eIOFUNC_SEL mode);
  471. HAL_Status HAL_PINCTRL_IOFuncSelForPWM11(eIOFUNC_SEL mode);
  472. HAL_Status HAL_PINCTRL_IOFuncSelForSPI0(eIOFUNC_SEL mode);
  473. HAL_Status HAL_PINCTRL_IOFuncSelForSPI1(eIOFUNC_SEL mode);
  474. HAL_Status HAL_PINCTRL_IOFuncSelForSPI2(eIOFUNC_SEL mode);
  475. HAL_Status HAL_PINCTRL_IOFuncSelForSPI3(eIOFUNC_SEL mode);
  476. HAL_Status HAL_PINCTRL_IOFuncSelForSPI4(eIOFUNC_SEL mode);
  477. HAL_Status HAL_PINCTRL_IOFuncSelForSPI5(eIOFUNC_SEL mode);
  478. HAL_Status HAL_PINCTRL_IOFuncSelForUART0(eIOFUNC_SEL mode);
  479. HAL_Status HAL_PINCTRL_IOFuncSelForUART1(eIOFUNC_SEL mode);
  480. HAL_Status HAL_PINCTRL_IOFuncSelForUART2(eIOFUNC_SEL mode);
  481. HAL_Status HAL_PINCTRL_IOFuncSelForUART3(eIOFUNC_SEL mode);
  482. HAL_Status HAL_PINCTRL_IOFuncSelForUART4(eIOFUNC_SEL mode);
  483. HAL_Status HAL_PINCTRL_IOFuncSelForUART5(eIOFUNC_SEL mode);
  484. HAL_Status HAL_PINCTRL_IOFuncSelForUART6(eIOFUNC_SEL mode);
  485. HAL_Status HAL_PINCTRL_IOFuncSelForUART7(eIOFUNC_SEL mode);
  486. HAL_Status HAL_PINCTRL_IOFuncSelForUART8(eIOFUNC_SEL mode);
  487. HAL_Status HAL_PINCTRL_IOFuncSelForUART9(eIOFUNC_SEL mode);
  488. HAL_Status HAL_PINCTRL_IOFuncSelForUART10(eIOFUNC_SEL mode);
  489. HAL_Status HAL_PINCTRL_IOFuncSelForUART11(eIOFUNC_SEL mode);
  490. /** @} */
  491. #endif /* __HAL_PINCTRL_H__ */
  492. /** @} */
  493. /** @} */