pinctrl-uniphier-ld20.c 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827
  1. /*
  2. * Copyright (C) 2016-2017 Socionext Inc.
  3. * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation; either version 2 of the License, or
  8. * (at your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. */
  15. #include <linux/kernel.h>
  16. #include <linux/init.h>
  17. #include <linux/mod_devicetable.h>
  18. #include <linux/pinctrl/pinctrl.h>
  19. #include <linux/platform_device.h>
  20. #include "pinctrl-uniphier.h"
  21. static const struct pinctrl_pin_desc uniphier_ld20_pins[] = {
  22. UNIPHIER_PINCTRL_PIN(0, "XECS1", UNIPHIER_PIN_IECTRL_EXIST,
  23. 0, UNIPHIER_PIN_DRV_3BIT,
  24. 0, UNIPHIER_PIN_PULL_UP),
  25. UNIPHIER_PINCTRL_PIN(1, "ERXW", UNIPHIER_PIN_IECTRL_EXIST,
  26. 1, UNIPHIER_PIN_DRV_3BIT,
  27. 1, UNIPHIER_PIN_PULL_UP),
  28. UNIPHIER_PINCTRL_PIN(2, "XERWE1", UNIPHIER_PIN_IECTRL_EXIST,
  29. 2, UNIPHIER_PIN_DRV_3BIT,
  30. 2, UNIPHIER_PIN_PULL_UP),
  31. UNIPHIER_PINCTRL_PIN(3, "XNFWP", UNIPHIER_PIN_IECTRL_EXIST,
  32. 3, UNIPHIER_PIN_DRV_3BIT,
  33. 3, UNIPHIER_PIN_PULL_DOWN),
  34. UNIPHIER_PINCTRL_PIN(4, "XNFCE0", UNIPHIER_PIN_IECTRL_EXIST,
  35. 4, UNIPHIER_PIN_DRV_3BIT,
  36. 4, UNIPHIER_PIN_PULL_UP),
  37. UNIPHIER_PINCTRL_PIN(5, "NFRYBY0", UNIPHIER_PIN_IECTRL_EXIST,
  38. 5, UNIPHIER_PIN_DRV_3BIT,
  39. 5, UNIPHIER_PIN_PULL_UP),
  40. UNIPHIER_PINCTRL_PIN(6, "XNFRE", UNIPHIER_PIN_IECTRL_EXIST,
  41. 6, UNIPHIER_PIN_DRV_3BIT,
  42. 6, UNIPHIER_PIN_PULL_UP),
  43. UNIPHIER_PINCTRL_PIN(7, "XNFWE", UNIPHIER_PIN_IECTRL_EXIST,
  44. 7, UNIPHIER_PIN_DRV_3BIT,
  45. 7, UNIPHIER_PIN_PULL_UP),
  46. UNIPHIER_PINCTRL_PIN(8, "NFALE", UNIPHIER_PIN_IECTRL_EXIST,
  47. 8, UNIPHIER_PIN_DRV_3BIT,
  48. 8, UNIPHIER_PIN_PULL_UP),
  49. UNIPHIER_PINCTRL_PIN(9, "NFCLE", UNIPHIER_PIN_IECTRL_EXIST,
  50. 9, UNIPHIER_PIN_DRV_3BIT,
  51. 9, UNIPHIER_PIN_PULL_UP),
  52. UNIPHIER_PINCTRL_PIN(10, "NFD0", UNIPHIER_PIN_IECTRL_EXIST,
  53. 10, UNIPHIER_PIN_DRV_3BIT,
  54. 10, UNIPHIER_PIN_PULL_UP),
  55. UNIPHIER_PINCTRL_PIN(11, "NFD1", UNIPHIER_PIN_IECTRL_EXIST,
  56. 11, UNIPHIER_PIN_DRV_3BIT,
  57. 11, UNIPHIER_PIN_PULL_UP),
  58. UNIPHIER_PINCTRL_PIN(12, "NFD2", UNIPHIER_PIN_IECTRL_EXIST,
  59. 12, UNIPHIER_PIN_DRV_3BIT,
  60. 12, UNIPHIER_PIN_PULL_UP),
  61. UNIPHIER_PINCTRL_PIN(13, "NFD3", UNIPHIER_PIN_IECTRL_EXIST,
  62. 13, UNIPHIER_PIN_DRV_3BIT,
  63. 13, UNIPHIER_PIN_PULL_UP),
  64. UNIPHIER_PINCTRL_PIN(14, "NFD4", UNIPHIER_PIN_IECTRL_EXIST,
  65. 14, UNIPHIER_PIN_DRV_3BIT,
  66. 14, UNIPHIER_PIN_PULL_UP),
  67. UNIPHIER_PINCTRL_PIN(15, "NFD5", UNIPHIER_PIN_IECTRL_EXIST,
  68. 15, UNIPHIER_PIN_DRV_3BIT,
  69. 15, UNIPHIER_PIN_PULL_UP),
  70. UNIPHIER_PINCTRL_PIN(16, "NFD6", UNIPHIER_PIN_IECTRL_EXIST,
  71. 16, UNIPHIER_PIN_DRV_3BIT,
  72. 16, UNIPHIER_PIN_PULL_UP),
  73. UNIPHIER_PINCTRL_PIN(17, "NFD7", UNIPHIER_PIN_IECTRL_EXIST,
  74. 17, UNIPHIER_PIN_DRV_3BIT,
  75. 17, UNIPHIER_PIN_PULL_UP),
  76. UNIPHIER_PINCTRL_PIN(18, "XERST", UNIPHIER_PIN_IECTRL_EXIST,
  77. 0, UNIPHIER_PIN_DRV_2BIT,
  78. 18, UNIPHIER_PIN_PULL_UP),
  79. UNIPHIER_PINCTRL_PIN(19, "MMCCLK", UNIPHIER_PIN_IECTRL_EXIST,
  80. 1, UNIPHIER_PIN_DRV_2BIT,
  81. 19, UNIPHIER_PIN_PULL_UP),
  82. UNIPHIER_PINCTRL_PIN(20, "MMCCMD", UNIPHIER_PIN_IECTRL_EXIST,
  83. 2, UNIPHIER_PIN_DRV_2BIT,
  84. 20, UNIPHIER_PIN_PULL_UP),
  85. UNIPHIER_PINCTRL_PIN(21, "MMCDS", UNIPHIER_PIN_IECTRL_EXIST,
  86. 3, UNIPHIER_PIN_DRV_2BIT,
  87. 21, UNIPHIER_PIN_PULL_UP),
  88. UNIPHIER_PINCTRL_PIN(22, "MMCDAT0", UNIPHIER_PIN_IECTRL_EXIST,
  89. 4, UNIPHIER_PIN_DRV_2BIT,
  90. 22, UNIPHIER_PIN_PULL_UP),
  91. UNIPHIER_PINCTRL_PIN(23, "MMCDAT1", UNIPHIER_PIN_IECTRL_EXIST,
  92. 5, UNIPHIER_PIN_DRV_2BIT,
  93. 23, UNIPHIER_PIN_PULL_UP),
  94. UNIPHIER_PINCTRL_PIN(24, "MMCDAT2", UNIPHIER_PIN_IECTRL_EXIST,
  95. 6, UNIPHIER_PIN_DRV_2BIT,
  96. 24, UNIPHIER_PIN_PULL_UP),
  97. UNIPHIER_PINCTRL_PIN(25, "MMCDAT3", UNIPHIER_PIN_IECTRL_EXIST,
  98. 7, UNIPHIER_PIN_DRV_2BIT,
  99. 25, UNIPHIER_PIN_PULL_UP),
  100. UNIPHIER_PINCTRL_PIN(26, "MMCDAT4", UNIPHIER_PIN_IECTRL_EXIST,
  101. 8, UNIPHIER_PIN_DRV_2BIT,
  102. 26, UNIPHIER_PIN_PULL_UP),
  103. UNIPHIER_PINCTRL_PIN(27, "MMCDAT5", UNIPHIER_PIN_IECTRL_EXIST,
  104. 9, UNIPHIER_PIN_DRV_2BIT,
  105. 27, UNIPHIER_PIN_PULL_UP),
  106. UNIPHIER_PINCTRL_PIN(28, "MMCDAT6", UNIPHIER_PIN_IECTRL_EXIST,
  107. 10, UNIPHIER_PIN_DRV_2BIT,
  108. 28, UNIPHIER_PIN_PULL_UP),
  109. UNIPHIER_PINCTRL_PIN(29, "MMCDAT7", UNIPHIER_PIN_IECTRL_EXIST,
  110. 11, UNIPHIER_PIN_DRV_2BIT,
  111. 29, UNIPHIER_PIN_PULL_UP),
  112. UNIPHIER_PINCTRL_PIN(30, "MDC", UNIPHIER_PIN_IECTRL_EXIST,
  113. 18, UNIPHIER_PIN_DRV_3BIT,
  114. 30, UNIPHIER_PIN_PULL_DOWN),
  115. UNIPHIER_PINCTRL_PIN(31, "MDIO", UNIPHIER_PIN_IECTRL_EXIST,
  116. 19, UNIPHIER_PIN_DRV_3BIT,
  117. 31, UNIPHIER_PIN_PULL_DOWN),
  118. UNIPHIER_PINCTRL_PIN(32, "MDIO_INTL", UNIPHIER_PIN_IECTRL_EXIST,
  119. 20, UNIPHIER_PIN_DRV_3BIT,
  120. 32, UNIPHIER_PIN_PULL_DOWN),
  121. UNIPHIER_PINCTRL_PIN(33, "PHYRSTL", UNIPHIER_PIN_IECTRL_EXIST,
  122. 21, UNIPHIER_PIN_DRV_3BIT,
  123. 33, UNIPHIER_PIN_PULL_DOWN),
  124. UNIPHIER_PINCTRL_PIN(34, "RGMII_RXCLK", UNIPHIER_PIN_IECTRL_EXIST,
  125. 22, UNIPHIER_PIN_DRV_3BIT,
  126. 34, UNIPHIER_PIN_PULL_DOWN),
  127. UNIPHIER_PINCTRL_PIN(35, "RGMII_RXD0", UNIPHIER_PIN_IECTRL_EXIST,
  128. 23, UNIPHIER_PIN_DRV_3BIT,
  129. 35, UNIPHIER_PIN_PULL_DOWN),
  130. UNIPHIER_PINCTRL_PIN(36, "RGMII_RXD1", UNIPHIER_PIN_IECTRL_EXIST,
  131. 24, UNIPHIER_PIN_DRV_3BIT,
  132. 36, UNIPHIER_PIN_PULL_DOWN),
  133. UNIPHIER_PINCTRL_PIN(37, "RGMII_RXD2", UNIPHIER_PIN_IECTRL_EXIST,
  134. 25, UNIPHIER_PIN_DRV_3BIT,
  135. 37, UNIPHIER_PIN_PULL_DOWN),
  136. UNIPHIER_PINCTRL_PIN(38, "RGMII_RXD3", UNIPHIER_PIN_IECTRL_EXIST,
  137. 26, UNIPHIER_PIN_DRV_3BIT,
  138. 38, UNIPHIER_PIN_PULL_DOWN),
  139. UNIPHIER_PINCTRL_PIN(39, "RGMII_RXCTL", UNIPHIER_PIN_IECTRL_EXIST,
  140. 27, UNIPHIER_PIN_DRV_3BIT,
  141. 39, UNIPHIER_PIN_PULL_DOWN),
  142. UNIPHIER_PINCTRL_PIN(40, "RGMII_TXCLK", UNIPHIER_PIN_IECTRL_EXIST,
  143. 28, UNIPHIER_PIN_DRV_3BIT,
  144. 40, UNIPHIER_PIN_PULL_DOWN),
  145. UNIPHIER_PINCTRL_PIN(41, "RGMII_TXD0", UNIPHIER_PIN_IECTRL_EXIST,
  146. 29, UNIPHIER_PIN_DRV_3BIT,
  147. 41, UNIPHIER_PIN_PULL_DOWN),
  148. UNIPHIER_PINCTRL_PIN(42, "RGMII_TXD1", UNIPHIER_PIN_IECTRL_EXIST,
  149. 30, UNIPHIER_PIN_DRV_3BIT,
  150. 42, UNIPHIER_PIN_PULL_DOWN),
  151. UNIPHIER_PINCTRL_PIN(43, "RGMII_TXD2", UNIPHIER_PIN_IECTRL_EXIST,
  152. 31, UNIPHIER_PIN_DRV_3BIT,
  153. 43, UNIPHIER_PIN_PULL_DOWN),
  154. UNIPHIER_PINCTRL_PIN(44, "RGMII_TXD3", UNIPHIER_PIN_IECTRL_EXIST,
  155. 32, UNIPHIER_PIN_DRV_3BIT,
  156. 44, UNIPHIER_PIN_PULL_DOWN),
  157. UNIPHIER_PINCTRL_PIN(45, "RGMII_TXCTL", UNIPHIER_PIN_IECTRL_EXIST,
  158. 33, UNIPHIER_PIN_DRV_3BIT,
  159. 45, UNIPHIER_PIN_PULL_DOWN),
  160. UNIPHIER_PINCTRL_PIN(46, "USB0VBUS", UNIPHIER_PIN_IECTRL_EXIST,
  161. 34, UNIPHIER_PIN_DRV_3BIT,
  162. 46, UNIPHIER_PIN_PULL_DOWN),
  163. UNIPHIER_PINCTRL_PIN(47, "USB0OD", UNIPHIER_PIN_IECTRL_EXIST,
  164. 35, UNIPHIER_PIN_DRV_3BIT,
  165. 47, UNIPHIER_PIN_PULL_UP),
  166. UNIPHIER_PINCTRL_PIN(48, "USB1VBUS", UNIPHIER_PIN_IECTRL_EXIST,
  167. 36, UNIPHIER_PIN_DRV_3BIT,
  168. 48, UNIPHIER_PIN_PULL_DOWN),
  169. UNIPHIER_PINCTRL_PIN(49, "USB1OD", UNIPHIER_PIN_IECTRL_EXIST,
  170. 37, UNIPHIER_PIN_DRV_3BIT,
  171. 49, UNIPHIER_PIN_PULL_UP),
  172. UNIPHIER_PINCTRL_PIN(50, "USB2VBUS", UNIPHIER_PIN_IECTRL_EXIST,
  173. 38, UNIPHIER_PIN_DRV_3BIT,
  174. 50, UNIPHIER_PIN_PULL_DOWN),
  175. UNIPHIER_PINCTRL_PIN(51, "USB2OD", UNIPHIER_PIN_IECTRL_EXIST,
  176. 39, UNIPHIER_PIN_DRV_3BIT,
  177. 51, UNIPHIER_PIN_PULL_UP),
  178. UNIPHIER_PINCTRL_PIN(52, "USB3VBUS", UNIPHIER_PIN_IECTRL_EXIST,
  179. 40, UNIPHIER_PIN_DRV_3BIT,
  180. 52, UNIPHIER_PIN_PULL_DOWN),
  181. UNIPHIER_PINCTRL_PIN(53, "USB3OD", UNIPHIER_PIN_IECTRL_EXIST,
  182. 41, UNIPHIER_PIN_DRV_3BIT,
  183. 53, UNIPHIER_PIN_PULL_UP),
  184. UNIPHIER_PINCTRL_PIN(54, "TXD0", UNIPHIER_PIN_IECTRL_EXIST,
  185. 42, UNIPHIER_PIN_DRV_3BIT,
  186. 54, UNIPHIER_PIN_PULL_UP),
  187. UNIPHIER_PINCTRL_PIN(55, "RXD0", UNIPHIER_PIN_IECTRL_EXIST,
  188. 43, UNIPHIER_PIN_DRV_3BIT,
  189. 55, UNIPHIER_PIN_PULL_UP),
  190. UNIPHIER_PINCTRL_PIN(56, "SPISYNC0", UNIPHIER_PIN_IECTRL_EXIST,
  191. 44, UNIPHIER_PIN_DRV_3BIT,
  192. 56, UNIPHIER_PIN_PULL_DOWN),
  193. UNIPHIER_PINCTRL_PIN(57, "SPISCLK0", UNIPHIER_PIN_IECTRL_EXIST,
  194. 45, UNIPHIER_PIN_DRV_3BIT,
  195. 57, UNIPHIER_PIN_PULL_DOWN),
  196. UNIPHIER_PINCTRL_PIN(58, "SPITXD0", UNIPHIER_PIN_IECTRL_EXIST,
  197. 46, UNIPHIER_PIN_DRV_3BIT,
  198. 58, UNIPHIER_PIN_PULL_DOWN),
  199. UNIPHIER_PINCTRL_PIN(59, "SPIRXD0", UNIPHIER_PIN_IECTRL_EXIST,
  200. 47, UNIPHIER_PIN_DRV_3BIT,
  201. 59, UNIPHIER_PIN_PULL_DOWN),
  202. UNIPHIER_PINCTRL_PIN(60, "AGCI", UNIPHIER_PIN_IECTRL_EXIST,
  203. 48, UNIPHIER_PIN_DRV_3BIT,
  204. 60, UNIPHIER_PIN_PULL_DOWN),
  205. UNIPHIER_PINCTRL_PIN(61, "DMDSDA0", UNIPHIER_PIN_IECTRL_EXIST,
  206. -1, UNIPHIER_PIN_DRV_FIXED4,
  207. -1, UNIPHIER_PIN_PULL_NONE),
  208. UNIPHIER_PINCTRL_PIN(62, "DMDSCL0", UNIPHIER_PIN_IECTRL_EXIST,
  209. -1, UNIPHIER_PIN_DRV_FIXED4,
  210. -1, UNIPHIER_PIN_PULL_NONE),
  211. UNIPHIER_PINCTRL_PIN(63, "SDA0", UNIPHIER_PIN_IECTRL_EXIST,
  212. -1, UNIPHIER_PIN_DRV_FIXED4,
  213. -1, UNIPHIER_PIN_PULL_NONE),
  214. UNIPHIER_PINCTRL_PIN(64, "SCL0", UNIPHIER_PIN_IECTRL_EXIST,
  215. -1, UNIPHIER_PIN_DRV_FIXED4,
  216. -1, UNIPHIER_PIN_PULL_NONE),
  217. UNIPHIER_PINCTRL_PIN(65, "SDA1", UNIPHIER_PIN_IECTRL_EXIST,
  218. -1, UNIPHIER_PIN_DRV_FIXED4,
  219. -1, UNIPHIER_PIN_PULL_NONE),
  220. UNIPHIER_PINCTRL_PIN(66, "SCL1", UNIPHIER_PIN_IECTRL_EXIST,
  221. -1, UNIPHIER_PIN_DRV_FIXED4,
  222. -1, UNIPHIER_PIN_PULL_NONE),
  223. UNIPHIER_PINCTRL_PIN(67, "HIN", UNIPHIER_PIN_IECTRL_EXIST,
  224. -1, UNIPHIER_PIN_DRV_FIXED4,
  225. -1, UNIPHIER_PIN_PULL_NONE),
  226. UNIPHIER_PINCTRL_PIN(68, "VIN", UNIPHIER_PIN_IECTRL_EXIST,
  227. -1, UNIPHIER_PIN_DRV_FIXED4,
  228. -1, UNIPHIER_PIN_PULL_NONE),
  229. UNIPHIER_PINCTRL_PIN(69, "PCA00", UNIPHIER_PIN_IECTRL_EXIST,
  230. 49, UNIPHIER_PIN_DRV_3BIT,
  231. 69, UNIPHIER_PIN_PULL_DOWN),
  232. UNIPHIER_PINCTRL_PIN(70, "PCA01", UNIPHIER_PIN_IECTRL_EXIST,
  233. 50, UNIPHIER_PIN_DRV_3BIT,
  234. 70, UNIPHIER_PIN_PULL_DOWN),
  235. UNIPHIER_PINCTRL_PIN(71, "PCA02", UNIPHIER_PIN_IECTRL_EXIST,
  236. 51, UNIPHIER_PIN_DRV_3BIT,
  237. 71, UNIPHIER_PIN_PULL_DOWN),
  238. UNIPHIER_PINCTRL_PIN(72, "PCA03", UNIPHIER_PIN_IECTRL_EXIST,
  239. 52, UNIPHIER_PIN_DRV_3BIT,
  240. 72, UNIPHIER_PIN_PULL_DOWN),
  241. UNIPHIER_PINCTRL_PIN(73, "PCA04", UNIPHIER_PIN_IECTRL_EXIST,
  242. 53, UNIPHIER_PIN_DRV_3BIT,
  243. 73, UNIPHIER_PIN_PULL_DOWN),
  244. UNIPHIER_PINCTRL_PIN(74, "PCA05", UNIPHIER_PIN_IECTRL_EXIST,
  245. 54, UNIPHIER_PIN_DRV_3BIT,
  246. 74, UNIPHIER_PIN_PULL_DOWN),
  247. UNIPHIER_PINCTRL_PIN(75, "PCA06", UNIPHIER_PIN_IECTRL_EXIST,
  248. 55, UNIPHIER_PIN_DRV_3BIT,
  249. 75, UNIPHIER_PIN_PULL_DOWN),
  250. UNIPHIER_PINCTRL_PIN(76, "PCA07", UNIPHIER_PIN_IECTRL_EXIST,
  251. 56, UNIPHIER_PIN_DRV_3BIT,
  252. 76, UNIPHIER_PIN_PULL_DOWN),
  253. UNIPHIER_PINCTRL_PIN(77, "PCA08", UNIPHIER_PIN_IECTRL_EXIST,
  254. 57, UNIPHIER_PIN_DRV_3BIT,
  255. 77, UNIPHIER_PIN_PULL_DOWN),
  256. UNIPHIER_PINCTRL_PIN(78, "PCA09", UNIPHIER_PIN_IECTRL_EXIST,
  257. 58, UNIPHIER_PIN_DRV_3BIT,
  258. 78, UNIPHIER_PIN_PULL_DOWN),
  259. UNIPHIER_PINCTRL_PIN(79, "PCA10", UNIPHIER_PIN_IECTRL_EXIST,
  260. 59, UNIPHIER_PIN_DRV_3BIT,
  261. 79, UNIPHIER_PIN_PULL_DOWN),
  262. UNIPHIER_PINCTRL_PIN(80, "PCA11", UNIPHIER_PIN_IECTRL_EXIST,
  263. 60, UNIPHIER_PIN_DRV_3BIT,
  264. 80, UNIPHIER_PIN_PULL_DOWN),
  265. UNIPHIER_PINCTRL_PIN(81, "PCA12", UNIPHIER_PIN_IECTRL_EXIST,
  266. 61, UNIPHIER_PIN_DRV_3BIT,
  267. 81, UNIPHIER_PIN_PULL_DOWN),
  268. UNIPHIER_PINCTRL_PIN(82, "PCA13", UNIPHIER_PIN_IECTRL_EXIST,
  269. 62, UNIPHIER_PIN_DRV_3BIT,
  270. 82, UNIPHIER_PIN_PULL_DOWN),
  271. UNIPHIER_PINCTRL_PIN(83, "PCA14", UNIPHIER_PIN_IECTRL_EXIST,
  272. 63, UNIPHIER_PIN_DRV_3BIT,
  273. 83, UNIPHIER_PIN_PULL_DOWN),
  274. UNIPHIER_PINCTRL_PIN(84, "PC0READY", UNIPHIER_PIN_IECTRL_EXIST,
  275. 0, UNIPHIER_PIN_DRV_1BIT,
  276. 84, UNIPHIER_PIN_PULL_DOWN),
  277. UNIPHIER_PINCTRL_PIN(85, "PC0CD1", UNIPHIER_PIN_IECTRL_EXIST,
  278. 1, UNIPHIER_PIN_DRV_1BIT,
  279. 85, UNIPHIER_PIN_PULL_DOWN),
  280. UNIPHIER_PINCTRL_PIN(86, "PC0CD2", UNIPHIER_PIN_IECTRL_EXIST,
  281. 2, UNIPHIER_PIN_DRV_1BIT,
  282. 86, UNIPHIER_PIN_PULL_DOWN),
  283. UNIPHIER_PINCTRL_PIN(87, "PC0WAIT", UNIPHIER_PIN_IECTRL_EXIST,
  284. 3, UNIPHIER_PIN_DRV_1BIT,
  285. 87, UNIPHIER_PIN_PULL_DOWN),
  286. UNIPHIER_PINCTRL_PIN(88, "PC0RESET", UNIPHIER_PIN_IECTRL_EXIST,
  287. 4, UNIPHIER_PIN_DRV_1BIT,
  288. 88, UNIPHIER_PIN_PULL_DOWN),
  289. UNIPHIER_PINCTRL_PIN(89, "PC0CE1", UNIPHIER_PIN_IECTRL_EXIST,
  290. 5, UNIPHIER_PIN_DRV_1BIT,
  291. 89, UNIPHIER_PIN_PULL_DOWN),
  292. UNIPHIER_PINCTRL_PIN(90, "PC0WE", UNIPHIER_PIN_IECTRL_EXIST,
  293. 6, UNIPHIER_PIN_DRV_1BIT,
  294. 90, UNIPHIER_PIN_PULL_DOWN),
  295. UNIPHIER_PINCTRL_PIN(91, "PC0OE", UNIPHIER_PIN_IECTRL_EXIST,
  296. 7, UNIPHIER_PIN_DRV_1BIT,
  297. 91, UNIPHIER_PIN_PULL_DOWN),
  298. UNIPHIER_PINCTRL_PIN(92, "PC0IOWR", UNIPHIER_PIN_IECTRL_EXIST,
  299. 8, UNIPHIER_PIN_DRV_1BIT,
  300. 92, UNIPHIER_PIN_PULL_DOWN),
  301. UNIPHIER_PINCTRL_PIN(93, "PC0IORD", UNIPHIER_PIN_IECTRL_EXIST,
  302. 9, UNIPHIER_PIN_DRV_1BIT,
  303. 93, UNIPHIER_PIN_PULL_DOWN),
  304. UNIPHIER_PINCTRL_PIN(94, "PCD00", UNIPHIER_PIN_IECTRL_EXIST,
  305. 10, UNIPHIER_PIN_DRV_1BIT,
  306. 94, UNIPHIER_PIN_PULL_DOWN),
  307. UNIPHIER_PINCTRL_PIN(95, "PCD01", UNIPHIER_PIN_IECTRL_EXIST,
  308. 11, UNIPHIER_PIN_DRV_1BIT,
  309. 95, UNIPHIER_PIN_PULL_DOWN),
  310. UNIPHIER_PINCTRL_PIN(96, "PCD02", UNIPHIER_PIN_IECTRL_EXIST,
  311. 12, UNIPHIER_PIN_DRV_1BIT,
  312. 96, UNIPHIER_PIN_PULL_DOWN),
  313. UNIPHIER_PINCTRL_PIN(97, "PCD03", UNIPHIER_PIN_IECTRL_EXIST,
  314. 13, UNIPHIER_PIN_DRV_1BIT,
  315. 97, UNIPHIER_PIN_PULL_DOWN),
  316. UNIPHIER_PINCTRL_PIN(98, "PCD04", UNIPHIER_PIN_IECTRL_EXIST,
  317. 14, UNIPHIER_PIN_DRV_1BIT,
  318. 98, UNIPHIER_PIN_PULL_DOWN),
  319. UNIPHIER_PINCTRL_PIN(99, "PCD05", UNIPHIER_PIN_IECTRL_EXIST,
  320. 15, UNIPHIER_PIN_DRV_1BIT,
  321. 99, UNIPHIER_PIN_PULL_DOWN),
  322. UNIPHIER_PINCTRL_PIN(100, "PCD06", UNIPHIER_PIN_IECTRL_EXIST,
  323. 16, UNIPHIER_PIN_DRV_1BIT,
  324. 100, UNIPHIER_PIN_PULL_DOWN),
  325. UNIPHIER_PINCTRL_PIN(101, "PCD07", UNIPHIER_PIN_IECTRL_EXIST,
  326. 17, UNIPHIER_PIN_DRV_1BIT,
  327. 101, UNIPHIER_PIN_PULL_DOWN),
  328. UNIPHIER_PINCTRL_PIN(102, "HS0BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
  329. 18, UNIPHIER_PIN_DRV_1BIT,
  330. 102, UNIPHIER_PIN_PULL_DOWN),
  331. UNIPHIER_PINCTRL_PIN(103, "HS0SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
  332. 19, UNIPHIER_PIN_DRV_1BIT,
  333. 103, UNIPHIER_PIN_PULL_DOWN),
  334. UNIPHIER_PINCTRL_PIN(104, "HS0VALIN", UNIPHIER_PIN_IECTRL_EXIST,
  335. 20, UNIPHIER_PIN_DRV_1BIT,
  336. 104, UNIPHIER_PIN_PULL_DOWN),
  337. UNIPHIER_PINCTRL_PIN(105, "HS0DIN0", UNIPHIER_PIN_IECTRL_EXIST,
  338. 21, UNIPHIER_PIN_DRV_1BIT,
  339. 105, UNIPHIER_PIN_PULL_DOWN),
  340. UNIPHIER_PINCTRL_PIN(106, "HS0DIN1", UNIPHIER_PIN_IECTRL_EXIST,
  341. 22, UNIPHIER_PIN_DRV_1BIT,
  342. 106, UNIPHIER_PIN_PULL_DOWN),
  343. UNIPHIER_PINCTRL_PIN(107, "HS0DIN2", UNIPHIER_PIN_IECTRL_EXIST,
  344. 23, UNIPHIER_PIN_DRV_1BIT,
  345. 107, UNIPHIER_PIN_PULL_DOWN),
  346. UNIPHIER_PINCTRL_PIN(108, "HS0DIN3", UNIPHIER_PIN_IECTRL_EXIST,
  347. 24, UNIPHIER_PIN_DRV_1BIT,
  348. 108, UNIPHIER_PIN_PULL_DOWN),
  349. UNIPHIER_PINCTRL_PIN(109, "HS0DIN4", UNIPHIER_PIN_IECTRL_EXIST,
  350. 25, UNIPHIER_PIN_DRV_1BIT,
  351. 109, UNIPHIER_PIN_PULL_DOWN),
  352. UNIPHIER_PINCTRL_PIN(110, "HS0DIN5", UNIPHIER_PIN_IECTRL_EXIST,
  353. 26, UNIPHIER_PIN_DRV_1BIT,
  354. 110, UNIPHIER_PIN_PULL_DOWN),
  355. UNIPHIER_PINCTRL_PIN(111, "HS0DIN6", UNIPHIER_PIN_IECTRL_EXIST,
  356. 27, UNIPHIER_PIN_DRV_1BIT,
  357. 111, UNIPHIER_PIN_PULL_DOWN),
  358. UNIPHIER_PINCTRL_PIN(112, "HS0DIN7", UNIPHIER_PIN_IECTRL_EXIST,
  359. 28, UNIPHIER_PIN_DRV_1BIT,
  360. 112, UNIPHIER_PIN_PULL_DOWN),
  361. UNIPHIER_PINCTRL_PIN(113, "HS0BCLKOUT", UNIPHIER_PIN_IECTRL_EXIST,
  362. 64, UNIPHIER_PIN_DRV_3BIT,
  363. 113, UNIPHIER_PIN_PULL_DOWN),
  364. UNIPHIER_PINCTRL_PIN(114, "HS0SYNCOUT", UNIPHIER_PIN_IECTRL_EXIST,
  365. 65, UNIPHIER_PIN_DRV_3BIT,
  366. 114, UNIPHIER_PIN_PULL_DOWN),
  367. UNIPHIER_PINCTRL_PIN(115, "HS0VALOUT", UNIPHIER_PIN_IECTRL_EXIST,
  368. 66, UNIPHIER_PIN_DRV_3BIT,
  369. 115, UNIPHIER_PIN_PULL_DOWN),
  370. UNIPHIER_PINCTRL_PIN(116, "HS0DOUT0", UNIPHIER_PIN_IECTRL_EXIST,
  371. 67, UNIPHIER_PIN_DRV_3BIT,
  372. 116, UNIPHIER_PIN_PULL_DOWN),
  373. UNIPHIER_PINCTRL_PIN(117, "HS0DOUT1", UNIPHIER_PIN_IECTRL_EXIST,
  374. 68, UNIPHIER_PIN_DRV_3BIT,
  375. 117, UNIPHIER_PIN_PULL_DOWN),
  376. UNIPHIER_PINCTRL_PIN(118, "HS0DOUT2", UNIPHIER_PIN_IECTRL_EXIST,
  377. 69, UNIPHIER_PIN_DRV_3BIT,
  378. 118, UNIPHIER_PIN_PULL_DOWN),
  379. UNIPHIER_PINCTRL_PIN(119, "HS0DOUT3", UNIPHIER_PIN_IECTRL_EXIST,
  380. 70, UNIPHIER_PIN_DRV_3BIT,
  381. 119, UNIPHIER_PIN_PULL_DOWN),
  382. UNIPHIER_PINCTRL_PIN(120, "HS0DOUT4", UNIPHIER_PIN_IECTRL_EXIST,
  383. 71, UNIPHIER_PIN_DRV_3BIT,
  384. 120, UNIPHIER_PIN_PULL_DOWN),
  385. UNIPHIER_PINCTRL_PIN(121, "HS0DOUT5", UNIPHIER_PIN_IECTRL_EXIST,
  386. 72, UNIPHIER_PIN_DRV_3BIT,
  387. 121, UNIPHIER_PIN_PULL_DOWN),
  388. UNIPHIER_PINCTRL_PIN(122, "HS0DOUT6", UNIPHIER_PIN_IECTRL_EXIST,
  389. 73, UNIPHIER_PIN_DRV_3BIT,
  390. 122, UNIPHIER_PIN_PULL_DOWN),
  391. UNIPHIER_PINCTRL_PIN(123, "HS0DOUT7", UNIPHIER_PIN_IECTRL_EXIST,
  392. 74, UNIPHIER_PIN_DRV_3BIT,
  393. 123, UNIPHIER_PIN_PULL_DOWN),
  394. UNIPHIER_PINCTRL_PIN(124, "HS1BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
  395. 75, UNIPHIER_PIN_DRV_3BIT,
  396. 124, UNIPHIER_PIN_PULL_DOWN),
  397. UNIPHIER_PINCTRL_PIN(125, "HS1SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
  398. 76, UNIPHIER_PIN_DRV_3BIT,
  399. 125, UNIPHIER_PIN_PULL_DOWN),
  400. UNIPHIER_PINCTRL_PIN(126, "HS1VALIN", UNIPHIER_PIN_IECTRL_EXIST,
  401. 77, UNIPHIER_PIN_DRV_3BIT,
  402. 126, UNIPHIER_PIN_PULL_DOWN),
  403. UNIPHIER_PINCTRL_PIN(127, "HS1DIN0", UNIPHIER_PIN_IECTRL_EXIST,
  404. 78, UNIPHIER_PIN_DRV_3BIT,
  405. 127, UNIPHIER_PIN_PULL_DOWN),
  406. UNIPHIER_PINCTRL_PIN(128, "HS1DIN1", UNIPHIER_PIN_IECTRL_EXIST,
  407. 79, UNIPHIER_PIN_DRV_3BIT,
  408. 128, UNIPHIER_PIN_PULL_DOWN),
  409. UNIPHIER_PINCTRL_PIN(129, "HS1DIN2", UNIPHIER_PIN_IECTRL_EXIST,
  410. 80, UNIPHIER_PIN_DRV_3BIT,
  411. 129, UNIPHIER_PIN_PULL_DOWN),
  412. UNIPHIER_PINCTRL_PIN(130, "HS1DIN3", UNIPHIER_PIN_IECTRL_EXIST,
  413. 81, UNIPHIER_PIN_DRV_3BIT,
  414. 130, UNIPHIER_PIN_PULL_DOWN),
  415. UNIPHIER_PINCTRL_PIN(131, "HS1DIN4", UNIPHIER_PIN_IECTRL_EXIST,
  416. 82, UNIPHIER_PIN_DRV_3BIT,
  417. 131, UNIPHIER_PIN_PULL_DOWN),
  418. UNIPHIER_PINCTRL_PIN(132, "HS1DIN5", UNIPHIER_PIN_IECTRL_EXIST,
  419. 83, UNIPHIER_PIN_DRV_3BIT,
  420. 132, UNIPHIER_PIN_PULL_DOWN),
  421. UNIPHIER_PINCTRL_PIN(133, "HS1DIN6", UNIPHIER_PIN_IECTRL_EXIST,
  422. 84, UNIPHIER_PIN_DRV_3BIT,
  423. 133, UNIPHIER_PIN_PULL_DOWN),
  424. UNIPHIER_PINCTRL_PIN(134, "HS1DIN7", UNIPHIER_PIN_IECTRL_EXIST,
  425. 85, UNIPHIER_PIN_DRV_3BIT,
  426. 134, UNIPHIER_PIN_PULL_DOWN),
  427. UNIPHIER_PINCTRL_PIN(135, "AO1IEC", UNIPHIER_PIN_IECTRL_EXIST,
  428. 86, UNIPHIER_PIN_DRV_3BIT,
  429. 135, UNIPHIER_PIN_PULL_DOWN),
  430. UNIPHIER_PINCTRL_PIN(136, "AO1ARC", UNIPHIER_PIN_IECTRL_EXIST,
  431. 87, UNIPHIER_PIN_DRV_3BIT,
  432. 136, UNIPHIER_PIN_PULL_DOWN),
  433. UNIPHIER_PINCTRL_PIN(137, "AO1DACCK", UNIPHIER_PIN_IECTRL_EXIST,
  434. 88, UNIPHIER_PIN_DRV_3BIT,
  435. 137, UNIPHIER_PIN_PULL_DOWN),
  436. UNIPHIER_PINCTRL_PIN(138, "AO1BCK", UNIPHIER_PIN_IECTRL_EXIST,
  437. 89, UNIPHIER_PIN_DRV_3BIT,
  438. 138, UNIPHIER_PIN_PULL_DOWN),
  439. UNIPHIER_PINCTRL_PIN(139, "AO1LRCK", UNIPHIER_PIN_IECTRL_EXIST,
  440. 90, UNIPHIER_PIN_DRV_3BIT,
  441. 139, UNIPHIER_PIN_PULL_DOWN),
  442. UNIPHIER_PINCTRL_PIN(140, "AO1D0", UNIPHIER_PIN_IECTRL_EXIST,
  443. 91, UNIPHIER_PIN_DRV_3BIT,
  444. 140, UNIPHIER_PIN_PULL_DOWN),
  445. UNIPHIER_PINCTRL_PIN(141, "AO1D1", UNIPHIER_PIN_IECTRL_EXIST,
  446. 92, UNIPHIER_PIN_DRV_3BIT,
  447. 141, UNIPHIER_PIN_PULL_DOWN),
  448. UNIPHIER_PINCTRL_PIN(142, "AO1D2", UNIPHIER_PIN_IECTRL_EXIST,
  449. 93, UNIPHIER_PIN_DRV_3BIT,
  450. 142, UNIPHIER_PIN_PULL_DOWN),
  451. UNIPHIER_PINCTRL_PIN(143, "HTPDN0", UNIPHIER_PIN_IECTRL_EXIST,
  452. 94, UNIPHIER_PIN_DRV_3BIT,
  453. 143, UNIPHIER_PIN_PULL_DOWN),
  454. UNIPHIER_PINCTRL_PIN(144, "LOCKN0", UNIPHIER_PIN_IECTRL_EXIST,
  455. 95, UNIPHIER_PIN_DRV_3BIT,
  456. 144, UNIPHIER_PIN_PULL_DOWN),
  457. UNIPHIER_PINCTRL_PIN(145, "HTPDN1", UNIPHIER_PIN_IECTRL_EXIST,
  458. 96, UNIPHIER_PIN_DRV_3BIT,
  459. 145, UNIPHIER_PIN_PULL_DOWN),
  460. UNIPHIER_PINCTRL_PIN(146, "LOCKN1", UNIPHIER_PIN_IECTRL_EXIST,
  461. 97, UNIPHIER_PIN_DRV_3BIT,
  462. 146, UNIPHIER_PIN_PULL_DOWN),
  463. UNIPHIER_PINCTRL_PIN(147, "PWMA", UNIPHIER_PIN_IECTRL_EXIST,
  464. 98, UNIPHIER_PIN_DRV_3BIT,
  465. 147, UNIPHIER_PIN_PULL_DOWN),
  466. UNIPHIER_PINCTRL_PIN(148, "LR_GOUT", UNIPHIER_PIN_IECTRL_EXIST,
  467. 99, UNIPHIER_PIN_DRV_3BIT,
  468. 148, UNIPHIER_PIN_PULL_DOWN),
  469. UNIPHIER_PINCTRL_PIN(149, "XIRQ0", UNIPHIER_PIN_IECTRL_EXIST,
  470. 100, UNIPHIER_PIN_DRV_3BIT,
  471. 149, UNIPHIER_PIN_PULL_DOWN),
  472. UNIPHIER_PINCTRL_PIN(150, "XIRQ1", UNIPHIER_PIN_IECTRL_EXIST,
  473. 101, UNIPHIER_PIN_DRV_3BIT,
  474. 150, UNIPHIER_PIN_PULL_DOWN),
  475. UNIPHIER_PINCTRL_PIN(151, "XIRQ2", UNIPHIER_PIN_IECTRL_EXIST,
  476. 102, UNIPHIER_PIN_DRV_3BIT,
  477. 151, UNIPHIER_PIN_PULL_DOWN),
  478. UNIPHIER_PINCTRL_PIN(152, "XIRQ3", UNIPHIER_PIN_IECTRL_EXIST,
  479. 103, UNIPHIER_PIN_DRV_3BIT,
  480. 152, UNIPHIER_PIN_PULL_DOWN),
  481. UNIPHIER_PINCTRL_PIN(153, "XIRQ4", UNIPHIER_PIN_IECTRL_EXIST,
  482. 104, UNIPHIER_PIN_DRV_3BIT,
  483. 153, UNIPHIER_PIN_PULL_DOWN),
  484. UNIPHIER_PINCTRL_PIN(154, "XIRQ5", UNIPHIER_PIN_IECTRL_EXIST,
  485. 105, UNIPHIER_PIN_DRV_3BIT,
  486. 154, UNIPHIER_PIN_PULL_DOWN),
  487. UNIPHIER_PINCTRL_PIN(155, "XIRQ6", UNIPHIER_PIN_IECTRL_EXIST,
  488. 106, UNIPHIER_PIN_DRV_3BIT,
  489. 155, UNIPHIER_PIN_PULL_DOWN),
  490. UNIPHIER_PINCTRL_PIN(156, "XIRQ7", UNIPHIER_PIN_IECTRL_EXIST,
  491. 107, UNIPHIER_PIN_DRV_3BIT,
  492. 156, UNIPHIER_PIN_PULL_DOWN),
  493. UNIPHIER_PINCTRL_PIN(157, "XIRQ8", UNIPHIER_PIN_IECTRL_EXIST,
  494. 108, UNIPHIER_PIN_DRV_3BIT,
  495. 157, UNIPHIER_PIN_PULL_DOWN),
  496. UNIPHIER_PINCTRL_PIN(158, "XIRQ9", UNIPHIER_PIN_IECTRL_EXIST,
  497. 109, UNIPHIER_PIN_DRV_3BIT,
  498. 158, UNIPHIER_PIN_PULL_DOWN),
  499. UNIPHIER_PINCTRL_PIN(159, "XIRQ10", UNIPHIER_PIN_IECTRL_EXIST,
  500. 110, UNIPHIER_PIN_DRV_3BIT,
  501. 159, UNIPHIER_PIN_PULL_DOWN),
  502. UNIPHIER_PINCTRL_PIN(160, "XIRQ11", UNIPHIER_PIN_IECTRL_EXIST,
  503. 111, UNIPHIER_PIN_DRV_3BIT,
  504. 160, UNIPHIER_PIN_PULL_DOWN),
  505. UNIPHIER_PINCTRL_PIN(161, "XIRQ13", UNIPHIER_PIN_IECTRL_EXIST,
  506. 112, UNIPHIER_PIN_DRV_3BIT,
  507. 161, UNIPHIER_PIN_PULL_DOWN),
  508. UNIPHIER_PINCTRL_PIN(162, "XIRQ14", UNIPHIER_PIN_IECTRL_EXIST,
  509. 113, UNIPHIER_PIN_DRV_3BIT,
  510. 162, UNIPHIER_PIN_PULL_DOWN),
  511. UNIPHIER_PINCTRL_PIN(163, "XIRQ16", UNIPHIER_PIN_IECTRL_EXIST,
  512. 114, UNIPHIER_PIN_DRV_3BIT,
  513. 163, UNIPHIER_PIN_PULL_DOWN),
  514. UNIPHIER_PINCTRL_PIN(164, "XIRQ17", UNIPHIER_PIN_IECTRL_EXIST,
  515. 115, UNIPHIER_PIN_DRV_3BIT,
  516. 164, UNIPHIER_PIN_PULL_DOWN),
  517. UNIPHIER_PINCTRL_PIN(165, "XIRQ18", UNIPHIER_PIN_IECTRL_EXIST,
  518. 116, UNIPHIER_PIN_DRV_3BIT,
  519. 165, UNIPHIER_PIN_PULL_DOWN),
  520. UNIPHIER_PINCTRL_PIN(166, "XIRQ19", UNIPHIER_PIN_IECTRL_EXIST,
  521. 117, UNIPHIER_PIN_DRV_3BIT,
  522. 166, UNIPHIER_PIN_PULL_DOWN),
  523. UNIPHIER_PINCTRL_PIN(167, "XIRQ20", UNIPHIER_PIN_IECTRL_EXIST,
  524. 118, UNIPHIER_PIN_DRV_3BIT,
  525. 167, UNIPHIER_PIN_PULL_DOWN),
  526. UNIPHIER_PINCTRL_PIN(168, "PORT00", UNIPHIER_PIN_IECTRL_EXIST,
  527. 119, UNIPHIER_PIN_DRV_3BIT,
  528. 168, UNIPHIER_PIN_PULL_DOWN),
  529. UNIPHIER_PINCTRL_PIN(169, "PORT01", UNIPHIER_PIN_IECTRL_EXIST,
  530. 120, UNIPHIER_PIN_DRV_3BIT,
  531. 169, UNIPHIER_PIN_PULL_DOWN),
  532. UNIPHIER_PINCTRL_PIN(170, "PORT02", UNIPHIER_PIN_IECTRL_EXIST,
  533. 121, UNIPHIER_PIN_DRV_3BIT,
  534. 170, UNIPHIER_PIN_PULL_DOWN),
  535. UNIPHIER_PINCTRL_PIN(171, "PORT03", UNIPHIER_PIN_IECTRL_EXIST,
  536. 122, UNIPHIER_PIN_DRV_3BIT,
  537. 171, UNIPHIER_PIN_PULL_DOWN),
  538. UNIPHIER_PINCTRL_PIN(172, "PORT04", UNIPHIER_PIN_IECTRL_EXIST,
  539. 123, UNIPHIER_PIN_DRV_3BIT,
  540. 172, UNIPHIER_PIN_PULL_DOWN),
  541. UNIPHIER_PINCTRL_PIN(173, "CK27FO", UNIPHIER_PIN_IECTRL_EXIST,
  542. 124, UNIPHIER_PIN_DRV_3BIT,
  543. 173, UNIPHIER_PIN_PULL_DOWN),
  544. UNIPHIER_PINCTRL_PIN(174, "PHSYNCO", UNIPHIER_PIN_IECTRL_EXIST,
  545. 125, UNIPHIER_PIN_DRV_3BIT,
  546. 174, UNIPHIER_PIN_PULL_DOWN),
  547. UNIPHIER_PINCTRL_PIN(175, "PVSYNCO", UNIPHIER_PIN_IECTRL_EXIST,
  548. 126, UNIPHIER_PIN_DRV_3BIT,
  549. 175, UNIPHIER_PIN_PULL_DOWN),
  550. };
  551. static const unsigned aout1_pins[] = {137, 138, 139, 140, 141, 142};
  552. static const int aout1_muxvals[] = {0, 0, 0, 0, 0, 0};
  553. static const unsigned aoutiec1_pins[] = {135, 136};
  554. static const int aoutiec1_muxvals[] = {0, 0};
  555. static const unsigned int emmc_pins[] = {19, 20, 21, 22, 23, 24, 25};
  556. static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0};
  557. static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29};
  558. static const int emmc_dat8_muxvals[] = {0, 0, 0, 0};
  559. static const unsigned ether_rgmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 38,
  560. 39, 40, 41, 42, 43, 44, 45};
  561. static const int ether_rgmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  562. 0, 0, 0, 0};
  563. static const unsigned ether_rmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 39,
  564. 41, 42, 45};
  565. static const int ether_rmii_muxvals[] = {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1};
  566. static const unsigned hscin0_ci_pins[] = {102, 103, 104, 105, 106, 107, 108,
  567. 109, 110, 111, 112};
  568. static const int hscin0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
  569. static const unsigned hscin0_p_pins[] = {102, 103, 104, 105, 106, 107, 108, 109,
  570. 110, 111, 112};
  571. static const int hscin0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  572. static const unsigned hscin0_s_pins[] = {116, 117, 118, 119};
  573. static const int hscin0_s_muxvals[] = {3, 3, 3, 3};
  574. static const unsigned hscin1_p_pins[] = {124, 125, 126, 127, 128, 129, 130, 131,
  575. 132, 133, 134};
  576. static const int hscin1_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  577. static const unsigned hscin1_s_pins[] = {120, 121, 122, 123};
  578. static const int hscin1_s_muxvals[] = {3, 3, 3, 3};
  579. static const unsigned hscin2_s_pins[] = {124, 125, 126, 127};
  580. static const int hscin2_s_muxvals[] = {3, 3, 3, 3};
  581. static const unsigned hscin3_s_pins[] = {129, 130, 131, 132};
  582. static const int hscin3_s_muxvals[] = {3, 3, 3, 3};
  583. static const unsigned hscout0_ci_pins[] = {113, 114, 115, 116, 117, 118, 119,
  584. 120, 121, 122, 123};
  585. static const int hscout0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
  586. static const unsigned hscout0_p_pins[] = {113, 114, 115, 116, 117, 118, 119,
  587. 120, 121, 122, 123};
  588. static const int hscout0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  589. static const unsigned hscout0_s_pins[] = {116, 117, 118, 119};
  590. static const int hscout0_s_muxvals[] = {4, 4, 4, 4};
  591. static const unsigned hscout1_s_pins[] = {120, 121, 122, 123};
  592. static const int hscout1_s_muxvals[] = {4, 4, 4, 4};
  593. static const unsigned i2c0_pins[] = {63, 64};
  594. static const int i2c0_muxvals[] = {0, 0};
  595. static const unsigned i2c1_pins[] = {65, 66};
  596. static const int i2c1_muxvals[] = {0, 0};
  597. static const unsigned i2c3_pins[] = {67, 68};
  598. static const int i2c3_muxvals[] = {1, 1};
  599. static const unsigned i2c4_pins[] = {61, 62};
  600. static const int i2c4_muxvals[] = {1, 1};
  601. static const unsigned nand_pins[] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  602. 15, 16, 17};
  603. static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  604. static const unsigned sd_pins[] = {10, 11, 12, 13, 14, 15, 16, 17};
  605. static const int sd_muxvals[] = {3, 3, 3, 3, 3, 3, 3, 3}; /* No SDVOLC */
  606. static const unsigned spi0_pins[] = {56, 57, 58, 59};
  607. static const int spi0_muxvals[] = {0, 0, 0, 0};
  608. static const unsigned spi1_pins[] = {169, 170, 171, 172};
  609. static const int spi1_muxvals[] = {1, 1, 1, 1};
  610. static const unsigned spi2_pins[] = {86, 87, 88, 89};
  611. static const int spi2_muxvals[] = {1, 1, 1, 1};
  612. static const unsigned spi3_pins[] = {74, 75, 76, 77};
  613. static const int spi3_muxvals[] = {1, 1, 1, 1};
  614. static const unsigned system_bus_pins[] = {1, 2, 6, 7, 8, 9, 10, 11, 12, 13,
  615. 14, 15, 16, 17};
  616. static const int system_bus_muxvals[] = {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  617. 2};
  618. static const unsigned system_bus_cs1_pins[] = {0};
  619. static const int system_bus_cs1_muxvals[] = {0};
  620. static const unsigned uart0_pins[] = {54, 55};
  621. static const int uart0_muxvals[] = {0, 0};
  622. static const unsigned uart1_pins[] = {58, 59};
  623. static const int uart1_muxvals[] = {1, 1};
  624. static const unsigned uart2_pins[] = {90, 91};
  625. static const int uart2_muxvals[] = {1, 1};
  626. static const unsigned uart3_pins[] = {94, 95};
  627. static const int uart3_muxvals[] = {1, 1};
  628. static const unsigned uart3_ctsrts_pins[] = {96, 97, 98, 99, 100, 101};
  629. static const int uart3_ctsrts_muxvals[] = {1, 1, 1, 1, 1, 1};
  630. static const unsigned usb0_pins[] = {46, 47};
  631. static const int usb0_muxvals[] = {0, 0};
  632. static const unsigned usb1_pins[] = {48, 49};
  633. static const int usb1_muxvals[] = {0, 0};
  634. static const unsigned usb2_pins[] = {50, 51};
  635. static const int usb2_muxvals[] = {0, 0};
  636. static const unsigned usb3_pins[] = {52, 53};
  637. static const int usb3_muxvals[] = {0, 0};
  638. static const unsigned int gpio_range0_pins[] = {
  639. 168, 169, 170, 171, 172, 173, 174, 175, /* PORT0x */
  640. 0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */
  641. 8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */
  642. 16, 17, 18, 30, 31, 32, 33, 34, /* PORT3x */
  643. 35, 36, 37, 38, 39, 40, 41, 42, /* PORT4x */
  644. 43, 44, 45, 46, 47, 48, 49, 50, /* PORT5x */
  645. 51, 52, 53, 54, 55, 56, 57, 58, /* PORT6x */
  646. 59, 60, 69, 70, 71, 72, 73, 74, /* PORT7x */
  647. 75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */
  648. 83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */
  649. 91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */
  650. };
  651. static const unsigned int gpio_range1_pins[] = {
  652. 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
  653. 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
  654. 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
  655. 149, 150, 151, 152, 153, 154, 155, 156, /* XIRQ0-7 */
  656. 157, 158, 159, 160, 85, 161, 162, 84, /* XIRQ8-15 */
  657. 163, 164, 165, 166, 167, 146, 52, 53, /* XIRQ16-23 */
  658. 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
  659. };
  660. static const unsigned int gpio_range2_pins[] = {
  661. 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
  662. 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
  663. 139, 140, 141, 142, 143, 144, 145, 146, /* PORT22x */
  664. 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
  665. 155, 156, 157, 158, 159, 160, 161, 162, /* PORT24x */
  666. 163, 164, 165, 166, 167, /* PORT250-254 */
  667. };
  668. static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = {
  669. UNIPHIER_PINCTRL_GROUP(aout1),
  670. UNIPHIER_PINCTRL_GROUP(aoutiec1),
  671. UNIPHIER_PINCTRL_GROUP(emmc),
  672. UNIPHIER_PINCTRL_GROUP(emmc_dat8),
  673. UNIPHIER_PINCTRL_GROUP(ether_rgmii),
  674. UNIPHIER_PINCTRL_GROUP(ether_rmii),
  675. UNIPHIER_PINCTRL_GROUP(hscin0_ci),
  676. UNIPHIER_PINCTRL_GROUP(hscin0_p),
  677. UNIPHIER_PINCTRL_GROUP(hscin0_s),
  678. UNIPHIER_PINCTRL_GROUP(hscin1_p),
  679. UNIPHIER_PINCTRL_GROUP(hscin1_s),
  680. UNIPHIER_PINCTRL_GROUP(hscin2_s),
  681. UNIPHIER_PINCTRL_GROUP(hscin3_s),
  682. UNIPHIER_PINCTRL_GROUP(hscout0_ci),
  683. UNIPHIER_PINCTRL_GROUP(hscout0_p),
  684. UNIPHIER_PINCTRL_GROUP(hscout0_s),
  685. UNIPHIER_PINCTRL_GROUP(hscout1_s),
  686. UNIPHIER_PINCTRL_GROUP(i2c0),
  687. UNIPHIER_PINCTRL_GROUP(i2c1),
  688. UNIPHIER_PINCTRL_GROUP(i2c3),
  689. UNIPHIER_PINCTRL_GROUP(i2c4),
  690. UNIPHIER_PINCTRL_GROUP(nand),
  691. UNIPHIER_PINCTRL_GROUP(sd),
  692. UNIPHIER_PINCTRL_GROUP(spi0),
  693. UNIPHIER_PINCTRL_GROUP(spi1),
  694. UNIPHIER_PINCTRL_GROUP(spi2),
  695. UNIPHIER_PINCTRL_GROUP(spi3),
  696. UNIPHIER_PINCTRL_GROUP(system_bus),
  697. UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
  698. UNIPHIER_PINCTRL_GROUP(uart0),
  699. UNIPHIER_PINCTRL_GROUP(uart1),
  700. UNIPHIER_PINCTRL_GROUP(uart2),
  701. UNIPHIER_PINCTRL_GROUP(uart3),
  702. UNIPHIER_PINCTRL_GROUP(uart3_ctsrts),
  703. UNIPHIER_PINCTRL_GROUP(usb0),
  704. UNIPHIER_PINCTRL_GROUP(usb1),
  705. UNIPHIER_PINCTRL_GROUP(usb2),
  706. UNIPHIER_PINCTRL_GROUP(usb3),
  707. UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range0),
  708. UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range1),
  709. UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2),
  710. };
  711. static const char * const aout1_groups[] = {"aout1"};
  712. static const char * const aoutiec1_groups[] = {"aoutiec1"};
  713. static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
  714. static const char * const ether_rgmii_groups[] = {"ether_rgmii"};
  715. static const char * const ether_rmii_groups[] = {"ether_rmii"};
  716. static const char * const hscin0_groups[] = {"hscin0_ci",
  717. "hscin0_p",
  718. "hscin0_s"};
  719. static const char * const hscin1_groups[] = {"hscin1_p", "hscin1_s"};
  720. static const char * const hscin2_groups[] = {"hscin2_s"};
  721. static const char * const hscin3_groups[] = {"hscin3_s"};
  722. static const char * const hscout0_groups[] = {"hscout0_ci",
  723. "hscout0_p",
  724. "hscout0_s"};
  725. static const char * const hscout1_groups[] = {"hscout1_s"};
  726. static const char * const i2c0_groups[] = {"i2c0"};
  727. static const char * const i2c1_groups[] = {"i2c1"};
  728. static const char * const i2c3_groups[] = {"i2c3"};
  729. static const char * const i2c4_groups[] = {"i2c4"};
  730. static const char * const nand_groups[] = {"nand"};
  731. static const char * const sd_groups[] = {"sd"};
  732. static const char * const spi0_groups[] = {"spi0"};
  733. static const char * const spi1_groups[] = {"spi1"};
  734. static const char * const spi2_groups[] = {"spi2"};
  735. static const char * const spi3_groups[] = {"spi3"};
  736. static const char * const system_bus_groups[] = {"system_bus",
  737. "system_bus_cs1"};
  738. static const char * const uart0_groups[] = {"uart0"};
  739. static const char * const uart1_groups[] = {"uart1"};
  740. static const char * const uart2_groups[] = {"uart2"};
  741. static const char * const uart3_groups[] = {"uart3", "uart3_ctsrts"};
  742. static const char * const usb0_groups[] = {"usb0"};
  743. static const char * const usb1_groups[] = {"usb1"};
  744. static const char * const usb2_groups[] = {"usb2"};
  745. static const char * const usb3_groups[] = {"usb3"};
  746. static const struct uniphier_pinmux_function uniphier_ld20_functions[] = {
  747. UNIPHIER_PINMUX_FUNCTION(aout1),
  748. UNIPHIER_PINMUX_FUNCTION(aoutiec1),
  749. UNIPHIER_PINMUX_FUNCTION(emmc),
  750. UNIPHIER_PINMUX_FUNCTION(ether_rgmii),
  751. UNIPHIER_PINMUX_FUNCTION(ether_rmii),
  752. UNIPHIER_PINMUX_FUNCTION(hscin0),
  753. UNIPHIER_PINMUX_FUNCTION(hscin1),
  754. UNIPHIER_PINMUX_FUNCTION(hscin2),
  755. UNIPHIER_PINMUX_FUNCTION(hscin3),
  756. UNIPHIER_PINMUX_FUNCTION(hscout0),
  757. UNIPHIER_PINMUX_FUNCTION(hscout1),
  758. UNIPHIER_PINMUX_FUNCTION(i2c0),
  759. UNIPHIER_PINMUX_FUNCTION(i2c1),
  760. UNIPHIER_PINMUX_FUNCTION(i2c3),
  761. UNIPHIER_PINMUX_FUNCTION(i2c4),
  762. UNIPHIER_PINMUX_FUNCTION(nand),
  763. UNIPHIER_PINMUX_FUNCTION(sd),
  764. UNIPHIER_PINMUX_FUNCTION(spi0),
  765. UNIPHIER_PINMUX_FUNCTION(spi1),
  766. UNIPHIER_PINMUX_FUNCTION(spi2),
  767. UNIPHIER_PINMUX_FUNCTION(spi3),
  768. UNIPHIER_PINMUX_FUNCTION(system_bus),
  769. UNIPHIER_PINMUX_FUNCTION(uart0),
  770. UNIPHIER_PINMUX_FUNCTION(uart1),
  771. UNIPHIER_PINMUX_FUNCTION(uart2),
  772. UNIPHIER_PINMUX_FUNCTION(uart3),
  773. UNIPHIER_PINMUX_FUNCTION(usb0),
  774. UNIPHIER_PINMUX_FUNCTION(usb1),
  775. UNIPHIER_PINMUX_FUNCTION(usb2),
  776. UNIPHIER_PINMUX_FUNCTION(usb3),
  777. };
  778. static int uniphier_ld20_get_gpio_muxval(unsigned int pin,
  779. unsigned int gpio_offset)
  780. {
  781. if (gpio_offset == 132 || gpio_offset == 135) /* XIRQ12, 15 */
  782. return 13;
  783. if (gpio_offset >= 120 && gpio_offset <= 143) /* XIRQx */
  784. return 14;
  785. return 15;
  786. }
  787. static struct uniphier_pinctrl_socdata uniphier_ld20_pindata = {
  788. .pins = uniphier_ld20_pins,
  789. .npins = ARRAY_SIZE(uniphier_ld20_pins),
  790. .groups = uniphier_ld20_groups,
  791. .groups_count = ARRAY_SIZE(uniphier_ld20_groups),
  792. .functions = uniphier_ld20_functions,
  793. .functions_count = ARRAY_SIZE(uniphier_ld20_functions),
  794. .get_gpio_muxval = uniphier_ld20_get_gpio_muxval,
  795. .caps = UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL,
  796. };
  797. static int uniphier_ld20_pinctrl_probe(struct platform_device *pdev)
  798. {
  799. return uniphier_pinctrl_probe(pdev, &uniphier_ld20_pindata);
  800. }
  801. static const struct of_device_id uniphier_ld20_pinctrl_match[] = {
  802. { .compatible = "socionext,uniphier-ld20-pinctrl" },
  803. { /* sentinel */ }
  804. };
  805. static struct platform_driver uniphier_ld20_pinctrl_driver = {
  806. .probe = uniphier_ld20_pinctrl_probe,
  807. .driver = {
  808. .name = "uniphier-ld20-pinctrl",
  809. .of_match_table = uniphier_ld20_pinctrl_match,
  810. .pm = &uniphier_pinctrl_pm_ops,
  811. },
  812. };
  813. builtin_platform_driver(uniphier_ld20_pinctrl_driver);