pinctrl-uniphier-ld11.c 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  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_ld11_pins[] = {
  22. UNIPHIER_PINCTRL_PIN(0, "XECS1", UNIPHIER_PIN_IECTRL_EXIST,
  23. 0, UNIPHIER_PIN_DRV_1BIT,
  24. 0, UNIPHIER_PIN_PULL_UP),
  25. UNIPHIER_PINCTRL_PIN(1, "ERXW", UNIPHIER_PIN_IECTRL_NONE,
  26. 1, UNIPHIER_PIN_DRV_1BIT,
  27. 1, UNIPHIER_PIN_PULL_UP),
  28. UNIPHIER_PINCTRL_PIN(2, "XERWE1", UNIPHIER_PIN_IECTRL_NONE,
  29. 2, UNIPHIER_PIN_DRV_1BIT,
  30. 2, UNIPHIER_PIN_PULL_UP),
  31. UNIPHIER_PINCTRL_PIN(3, "XNFWP", UNIPHIER_PIN_IECTRL_EXIST,
  32. 3, UNIPHIER_PIN_DRV_1BIT,
  33. 3, UNIPHIER_PIN_PULL_DOWN),
  34. UNIPHIER_PINCTRL_PIN(4, "XNFCE0", UNIPHIER_PIN_IECTRL_EXIST,
  35. 4, UNIPHIER_PIN_DRV_1BIT,
  36. 4, UNIPHIER_PIN_PULL_UP),
  37. UNIPHIER_PINCTRL_PIN(5, "NFRYBY0", UNIPHIER_PIN_IECTRL_EXIST,
  38. 5, UNIPHIER_PIN_DRV_1BIT,
  39. 5, UNIPHIER_PIN_PULL_UP),
  40. UNIPHIER_PINCTRL_PIN(6, "XNFRE", UNIPHIER_PIN_IECTRL_NONE,
  41. 6, UNIPHIER_PIN_DRV_1BIT,
  42. 6, UNIPHIER_PIN_PULL_UP),
  43. UNIPHIER_PINCTRL_PIN(7, "XNFWE", UNIPHIER_PIN_IECTRL_NONE,
  44. 7, UNIPHIER_PIN_DRV_1BIT,
  45. 7, UNIPHIER_PIN_PULL_UP),
  46. UNIPHIER_PINCTRL_PIN(8, "NFALE", UNIPHIER_PIN_IECTRL_NONE,
  47. 8, UNIPHIER_PIN_DRV_1BIT,
  48. 8, UNIPHIER_PIN_PULL_UP),
  49. UNIPHIER_PINCTRL_PIN(9, "NFCLE", UNIPHIER_PIN_IECTRL_NONE,
  50. 9, UNIPHIER_PIN_DRV_1BIT,
  51. 9, UNIPHIER_PIN_PULL_UP),
  52. UNIPHIER_PINCTRL_PIN(10, "NFD0", UNIPHIER_PIN_IECTRL_EXIST,
  53. 10, UNIPHIER_PIN_DRV_1BIT,
  54. 10, UNIPHIER_PIN_PULL_UP),
  55. UNIPHIER_PINCTRL_PIN(11, "NFD1", UNIPHIER_PIN_IECTRL_EXIST,
  56. 11, UNIPHIER_PIN_DRV_1BIT,
  57. 11, UNIPHIER_PIN_PULL_UP),
  58. UNIPHIER_PINCTRL_PIN(12, "NFD2", UNIPHIER_PIN_IECTRL_EXIST,
  59. 12, UNIPHIER_PIN_DRV_1BIT,
  60. 12, UNIPHIER_PIN_PULL_UP),
  61. UNIPHIER_PINCTRL_PIN(13, "NFD3", UNIPHIER_PIN_IECTRL_EXIST,
  62. 13, UNIPHIER_PIN_DRV_1BIT,
  63. 13, UNIPHIER_PIN_PULL_UP),
  64. UNIPHIER_PINCTRL_PIN(14, "NFD4", UNIPHIER_PIN_IECTRL_EXIST,
  65. 14, UNIPHIER_PIN_DRV_1BIT,
  66. 14, UNIPHIER_PIN_PULL_UP),
  67. UNIPHIER_PINCTRL_PIN(15, "NFD5", UNIPHIER_PIN_IECTRL_EXIST,
  68. 15, UNIPHIER_PIN_DRV_1BIT,
  69. 15, UNIPHIER_PIN_PULL_UP),
  70. UNIPHIER_PINCTRL_PIN(16, "NFD6", UNIPHIER_PIN_IECTRL_EXIST,
  71. 16, UNIPHIER_PIN_DRV_1BIT,
  72. 16, UNIPHIER_PIN_PULL_UP),
  73. UNIPHIER_PINCTRL_PIN(17, "NFD7", UNIPHIER_PIN_IECTRL_EXIST,
  74. 17, UNIPHIER_PIN_DRV_1BIT,
  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(46, "USB0VBUS", UNIPHIER_PIN_IECTRL_EXIST,
  113. 46, UNIPHIER_PIN_DRV_1BIT,
  114. 46, UNIPHIER_PIN_PULL_DOWN),
  115. UNIPHIER_PINCTRL_PIN(47, "USB0OD", UNIPHIER_PIN_IECTRL_NONE,
  116. 47, UNIPHIER_PIN_DRV_1BIT,
  117. 47, UNIPHIER_PIN_PULL_UP),
  118. UNIPHIER_PINCTRL_PIN(48, "USB1VBUS", UNIPHIER_PIN_IECTRL_EXIST,
  119. 48, UNIPHIER_PIN_DRV_1BIT,
  120. 48, UNIPHIER_PIN_PULL_DOWN),
  121. UNIPHIER_PINCTRL_PIN(49, "USB1OD", UNIPHIER_PIN_IECTRL_EXIST,
  122. 49, UNIPHIER_PIN_DRV_1BIT,
  123. 49, UNIPHIER_PIN_PULL_UP),
  124. UNIPHIER_PINCTRL_PIN(50, "USB2VBUS", UNIPHIER_PIN_IECTRL_EXIST,
  125. 50, UNIPHIER_PIN_DRV_1BIT,
  126. 50, UNIPHIER_PIN_PULL_DOWN),
  127. UNIPHIER_PINCTRL_PIN(51, "USB2OD", UNIPHIER_PIN_IECTRL_EXIST,
  128. 51, UNIPHIER_PIN_DRV_1BIT,
  129. 51, UNIPHIER_PIN_PULL_UP),
  130. UNIPHIER_PINCTRL_PIN(54, "TXD0", UNIPHIER_PIN_IECTRL_EXIST,
  131. 54, UNIPHIER_PIN_DRV_1BIT,
  132. 54, UNIPHIER_PIN_PULL_UP),
  133. UNIPHIER_PINCTRL_PIN(55, "RXD0", UNIPHIER_PIN_IECTRL_EXIST,
  134. 55, UNIPHIER_PIN_DRV_1BIT,
  135. 55, UNIPHIER_PIN_PULL_UP),
  136. UNIPHIER_PINCTRL_PIN(56, "SPISYNC0", UNIPHIER_PIN_IECTRL_EXIST,
  137. 56, UNIPHIER_PIN_DRV_1BIT,
  138. 56, UNIPHIER_PIN_PULL_DOWN),
  139. UNIPHIER_PINCTRL_PIN(57, "SPISCLK0", UNIPHIER_PIN_IECTRL_EXIST,
  140. 57, UNIPHIER_PIN_DRV_1BIT,
  141. 57, UNIPHIER_PIN_PULL_DOWN),
  142. UNIPHIER_PINCTRL_PIN(58, "SPITXD0", UNIPHIER_PIN_IECTRL_EXIST,
  143. 58, UNIPHIER_PIN_DRV_1BIT,
  144. 58, UNIPHIER_PIN_PULL_DOWN),
  145. UNIPHIER_PINCTRL_PIN(59, "SPIRXD0", UNIPHIER_PIN_IECTRL_EXIST,
  146. 59, UNIPHIER_PIN_DRV_1BIT,
  147. 59, UNIPHIER_PIN_PULL_DOWN),
  148. UNIPHIER_PINCTRL_PIN(60, "AGCI", UNIPHIER_PIN_IECTRL_EXIST,
  149. 60, UNIPHIER_PIN_DRV_1BIT,
  150. 60, UNIPHIER_PIN_PULL_DOWN),
  151. UNIPHIER_PINCTRL_PIN(61, "DMDSDA0", UNIPHIER_PIN_IECTRL_EXIST,
  152. -1, UNIPHIER_PIN_DRV_FIXED4,
  153. -1, UNIPHIER_PIN_PULL_NONE),
  154. UNIPHIER_PINCTRL_PIN(62, "DMDSCL0", UNIPHIER_PIN_IECTRL_EXIST,
  155. -1, UNIPHIER_PIN_DRV_FIXED4,
  156. -1, UNIPHIER_PIN_PULL_NONE),
  157. UNIPHIER_PINCTRL_PIN(63, "SDA0", UNIPHIER_PIN_IECTRL_EXIST,
  158. -1, UNIPHIER_PIN_DRV_FIXED4,
  159. -1, UNIPHIER_PIN_PULL_NONE),
  160. UNIPHIER_PINCTRL_PIN(64, "SCL0", UNIPHIER_PIN_IECTRL_EXIST,
  161. -1, UNIPHIER_PIN_DRV_FIXED4,
  162. -1, UNIPHIER_PIN_PULL_NONE),
  163. UNIPHIER_PINCTRL_PIN(65, "SDA1", UNIPHIER_PIN_IECTRL_EXIST,
  164. -1, UNIPHIER_PIN_DRV_FIXED4,
  165. -1, UNIPHIER_PIN_PULL_NONE),
  166. UNIPHIER_PINCTRL_PIN(66, "SCL1", UNIPHIER_PIN_IECTRL_EXIST,
  167. -1, UNIPHIER_PIN_DRV_FIXED4,
  168. -1, UNIPHIER_PIN_PULL_NONE),
  169. UNIPHIER_PINCTRL_PIN(67, "HIN", UNIPHIER_PIN_IECTRL_EXIST,
  170. -1, UNIPHIER_PIN_DRV_FIXED5,
  171. -1, UNIPHIER_PIN_PULL_NONE),
  172. UNIPHIER_PINCTRL_PIN(68, "VIN", UNIPHIER_PIN_IECTRL_EXIST,
  173. -1, UNIPHIER_PIN_DRV_FIXED5,
  174. -1, UNIPHIER_PIN_PULL_NONE),
  175. UNIPHIER_PINCTRL_PIN(69, "PCA00", UNIPHIER_PIN_IECTRL_EXIST,
  176. 69, UNIPHIER_PIN_DRV_1BIT,
  177. 69, UNIPHIER_PIN_PULL_DOWN),
  178. UNIPHIER_PINCTRL_PIN(70, "PCA01", UNIPHIER_PIN_IECTRL_EXIST,
  179. 70, UNIPHIER_PIN_DRV_1BIT,
  180. 70, UNIPHIER_PIN_PULL_DOWN),
  181. UNIPHIER_PINCTRL_PIN(71, "PCA02", UNIPHIER_PIN_IECTRL_EXIST,
  182. 71, UNIPHIER_PIN_DRV_1BIT,
  183. 71, UNIPHIER_PIN_PULL_DOWN),
  184. UNIPHIER_PINCTRL_PIN(72, "PCA03", UNIPHIER_PIN_IECTRL_EXIST,
  185. 72, UNIPHIER_PIN_DRV_1BIT,
  186. 72, UNIPHIER_PIN_PULL_DOWN),
  187. UNIPHIER_PINCTRL_PIN(73, "PCA04", UNIPHIER_PIN_IECTRL_EXIST,
  188. 73, UNIPHIER_PIN_DRV_1BIT,
  189. 73, UNIPHIER_PIN_PULL_DOWN),
  190. UNIPHIER_PINCTRL_PIN(74, "PCA05", UNIPHIER_PIN_IECTRL_EXIST,
  191. 74, UNIPHIER_PIN_DRV_1BIT,
  192. 74, UNIPHIER_PIN_PULL_DOWN),
  193. UNIPHIER_PINCTRL_PIN(75, "PCA06", UNIPHIER_PIN_IECTRL_EXIST,
  194. 75, UNIPHIER_PIN_DRV_1BIT,
  195. 75, UNIPHIER_PIN_PULL_DOWN),
  196. UNIPHIER_PINCTRL_PIN(76, "PCA07", UNIPHIER_PIN_IECTRL_EXIST,
  197. 76, UNIPHIER_PIN_DRV_1BIT,
  198. 76, UNIPHIER_PIN_PULL_DOWN),
  199. UNIPHIER_PINCTRL_PIN(77, "PCA08", UNIPHIER_PIN_IECTRL_EXIST,
  200. 77, UNIPHIER_PIN_DRV_1BIT,
  201. 77, UNIPHIER_PIN_PULL_DOWN),
  202. UNIPHIER_PINCTRL_PIN(78, "PCA09", UNIPHIER_PIN_IECTRL_EXIST,
  203. 78, UNIPHIER_PIN_DRV_1BIT,
  204. 78, UNIPHIER_PIN_PULL_DOWN),
  205. UNIPHIER_PINCTRL_PIN(79, "PCA10", UNIPHIER_PIN_IECTRL_EXIST,
  206. 79, UNIPHIER_PIN_DRV_1BIT,
  207. 79, UNIPHIER_PIN_PULL_DOWN),
  208. UNIPHIER_PINCTRL_PIN(80, "PCA11", UNIPHIER_PIN_IECTRL_EXIST,
  209. 80, UNIPHIER_PIN_DRV_1BIT,
  210. 80, UNIPHIER_PIN_PULL_DOWN),
  211. UNIPHIER_PINCTRL_PIN(81, "PCA12", UNIPHIER_PIN_IECTRL_EXIST,
  212. 81, UNIPHIER_PIN_DRV_1BIT,
  213. 81, UNIPHIER_PIN_PULL_DOWN),
  214. UNIPHIER_PINCTRL_PIN(82, "PCA13", UNIPHIER_PIN_IECTRL_EXIST,
  215. 82, UNIPHIER_PIN_DRV_1BIT,
  216. 82, UNIPHIER_PIN_PULL_DOWN),
  217. UNIPHIER_PINCTRL_PIN(83, "PCA14", UNIPHIER_PIN_IECTRL_EXIST,
  218. 83, UNIPHIER_PIN_DRV_1BIT,
  219. 83, UNIPHIER_PIN_PULL_DOWN),
  220. UNIPHIER_PINCTRL_PIN(84, "PC0READY", UNIPHIER_PIN_IECTRL_EXIST,
  221. 84, UNIPHIER_PIN_DRV_1BIT,
  222. 84, UNIPHIER_PIN_PULL_DOWN),
  223. UNIPHIER_PINCTRL_PIN(85, "PC0CD1", UNIPHIER_PIN_IECTRL_EXIST,
  224. 85, UNIPHIER_PIN_DRV_1BIT,
  225. 85, UNIPHIER_PIN_PULL_DOWN),
  226. UNIPHIER_PINCTRL_PIN(86, "PC0CD2", UNIPHIER_PIN_IECTRL_EXIST,
  227. 86, UNIPHIER_PIN_DRV_1BIT,
  228. 86, UNIPHIER_PIN_PULL_DOWN),
  229. UNIPHIER_PINCTRL_PIN(87, "PC0WAIT", UNIPHIER_PIN_IECTRL_EXIST,
  230. 87, UNIPHIER_PIN_DRV_1BIT,
  231. 87, UNIPHIER_PIN_PULL_DOWN),
  232. UNIPHIER_PINCTRL_PIN(88, "PC0RESET", UNIPHIER_PIN_IECTRL_EXIST,
  233. 88, UNIPHIER_PIN_DRV_1BIT,
  234. 88, UNIPHIER_PIN_PULL_DOWN),
  235. UNIPHIER_PINCTRL_PIN(89, "PC0CE1", UNIPHIER_PIN_IECTRL_EXIST,
  236. 89, UNIPHIER_PIN_DRV_1BIT,
  237. 89, UNIPHIER_PIN_PULL_DOWN),
  238. UNIPHIER_PINCTRL_PIN(90, "PC0WE", UNIPHIER_PIN_IECTRL_EXIST,
  239. 90, UNIPHIER_PIN_DRV_1BIT,
  240. 90, UNIPHIER_PIN_PULL_DOWN),
  241. UNIPHIER_PINCTRL_PIN(91, "PC0OE", UNIPHIER_PIN_IECTRL_EXIST,
  242. 91, UNIPHIER_PIN_DRV_1BIT,
  243. 91, UNIPHIER_PIN_PULL_DOWN),
  244. UNIPHIER_PINCTRL_PIN(92, "PC0IOWR", UNIPHIER_PIN_IECTRL_EXIST,
  245. 92, UNIPHIER_PIN_DRV_1BIT,
  246. 92, UNIPHIER_PIN_PULL_DOWN),
  247. UNIPHIER_PINCTRL_PIN(93, "PC0IORD", UNIPHIER_PIN_IECTRL_EXIST,
  248. 93, UNIPHIER_PIN_DRV_1BIT,
  249. 93, UNIPHIER_PIN_PULL_DOWN),
  250. UNIPHIER_PINCTRL_PIN(94, "PCD00", UNIPHIER_PIN_IECTRL_EXIST,
  251. 94, UNIPHIER_PIN_DRV_1BIT,
  252. 94, UNIPHIER_PIN_PULL_DOWN),
  253. UNIPHIER_PINCTRL_PIN(95, "PCD01", UNIPHIER_PIN_IECTRL_EXIST,
  254. 95, UNIPHIER_PIN_DRV_1BIT,
  255. 95, UNIPHIER_PIN_PULL_DOWN),
  256. UNIPHIER_PINCTRL_PIN(96, "PCD02", UNIPHIER_PIN_IECTRL_EXIST,
  257. 96, UNIPHIER_PIN_DRV_1BIT,
  258. 96, UNIPHIER_PIN_PULL_DOWN),
  259. UNIPHIER_PINCTRL_PIN(97, "PCD03", UNIPHIER_PIN_IECTRL_EXIST,
  260. 97, UNIPHIER_PIN_DRV_1BIT,
  261. 97, UNIPHIER_PIN_PULL_DOWN),
  262. UNIPHIER_PINCTRL_PIN(98, "PCD04", UNIPHIER_PIN_IECTRL_EXIST,
  263. 98, UNIPHIER_PIN_DRV_1BIT,
  264. 98, UNIPHIER_PIN_PULL_DOWN),
  265. UNIPHIER_PINCTRL_PIN(99, "PCD05", UNIPHIER_PIN_IECTRL_EXIST,
  266. 99, UNIPHIER_PIN_DRV_1BIT,
  267. 99, UNIPHIER_PIN_PULL_DOWN),
  268. UNIPHIER_PINCTRL_PIN(100, "PCD06", UNIPHIER_PIN_IECTRL_EXIST,
  269. 100, UNIPHIER_PIN_DRV_1BIT,
  270. 100, UNIPHIER_PIN_PULL_DOWN),
  271. UNIPHIER_PINCTRL_PIN(101, "PCD07", UNIPHIER_PIN_IECTRL_EXIST,
  272. 101, UNIPHIER_PIN_DRV_1BIT,
  273. 101, UNIPHIER_PIN_PULL_DOWN),
  274. UNIPHIER_PINCTRL_PIN(102, "HS0BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
  275. 102, UNIPHIER_PIN_DRV_1BIT,
  276. 102, UNIPHIER_PIN_PULL_DOWN),
  277. UNIPHIER_PINCTRL_PIN(103, "HS0SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
  278. 103, UNIPHIER_PIN_DRV_1BIT,
  279. 103, UNIPHIER_PIN_PULL_DOWN),
  280. UNIPHIER_PINCTRL_PIN(104, "HS0VALIN", UNIPHIER_PIN_IECTRL_EXIST,
  281. 104, UNIPHIER_PIN_DRV_1BIT,
  282. 104, UNIPHIER_PIN_PULL_DOWN),
  283. UNIPHIER_PINCTRL_PIN(105, "HS0DIN0", UNIPHIER_PIN_IECTRL_EXIST,
  284. 105, UNIPHIER_PIN_DRV_1BIT,
  285. 105, UNIPHIER_PIN_PULL_DOWN),
  286. UNIPHIER_PINCTRL_PIN(106, "HS0DIN1", UNIPHIER_PIN_IECTRL_EXIST,
  287. 106, UNIPHIER_PIN_DRV_1BIT,
  288. 106, UNIPHIER_PIN_PULL_DOWN),
  289. UNIPHIER_PINCTRL_PIN(107, "HS0DIN2", UNIPHIER_PIN_IECTRL_EXIST,
  290. 107, UNIPHIER_PIN_DRV_1BIT,
  291. 107, UNIPHIER_PIN_PULL_DOWN),
  292. UNIPHIER_PINCTRL_PIN(108, "HS0DIN3", UNIPHIER_PIN_IECTRL_EXIST,
  293. 108, UNIPHIER_PIN_DRV_1BIT,
  294. 108, UNIPHIER_PIN_PULL_DOWN),
  295. UNIPHIER_PINCTRL_PIN(109, "HS0DIN4", UNIPHIER_PIN_IECTRL_EXIST,
  296. 109, UNIPHIER_PIN_DRV_1BIT,
  297. 109, UNIPHIER_PIN_PULL_DOWN),
  298. UNIPHIER_PINCTRL_PIN(110, "HS0DIN5", UNIPHIER_PIN_IECTRL_EXIST,
  299. 110, UNIPHIER_PIN_DRV_1BIT,
  300. 110, UNIPHIER_PIN_PULL_DOWN),
  301. UNIPHIER_PINCTRL_PIN(111, "HS0DIN6", UNIPHIER_PIN_IECTRL_EXIST,
  302. 111, UNIPHIER_PIN_DRV_1BIT,
  303. 111, UNIPHIER_PIN_PULL_DOWN),
  304. UNIPHIER_PINCTRL_PIN(112, "HS0DIN7", UNIPHIER_PIN_IECTRL_EXIST,
  305. 112, UNIPHIER_PIN_DRV_1BIT,
  306. 112, UNIPHIER_PIN_PULL_DOWN),
  307. UNIPHIER_PINCTRL_PIN(113, "HS0BCLKOUT", UNIPHIER_PIN_IECTRL_EXIST,
  308. 113, UNIPHIER_PIN_DRV_1BIT,
  309. 113, UNIPHIER_PIN_PULL_DOWN),
  310. UNIPHIER_PINCTRL_PIN(114, "HS0SYNCOUT", UNIPHIER_PIN_IECTRL_EXIST,
  311. 114, UNIPHIER_PIN_DRV_1BIT,
  312. 114, UNIPHIER_PIN_PULL_DOWN),
  313. UNIPHIER_PINCTRL_PIN(115, "HS0VALOUT", UNIPHIER_PIN_IECTRL_EXIST,
  314. 115, UNIPHIER_PIN_DRV_1BIT,
  315. 115, UNIPHIER_PIN_PULL_DOWN),
  316. UNIPHIER_PINCTRL_PIN(116, "HS0DOUT0", UNIPHIER_PIN_IECTRL_EXIST,
  317. 116, UNIPHIER_PIN_DRV_1BIT,
  318. 116, UNIPHIER_PIN_PULL_DOWN),
  319. UNIPHIER_PINCTRL_PIN(117, "HS0DOUT1", UNIPHIER_PIN_IECTRL_EXIST,
  320. 117, UNIPHIER_PIN_DRV_1BIT,
  321. 117, UNIPHIER_PIN_PULL_DOWN),
  322. UNIPHIER_PINCTRL_PIN(118, "HS0DOUT2", UNIPHIER_PIN_IECTRL_EXIST,
  323. 118, UNIPHIER_PIN_DRV_1BIT,
  324. 118, UNIPHIER_PIN_PULL_DOWN),
  325. UNIPHIER_PINCTRL_PIN(119, "HS0DOUT3", UNIPHIER_PIN_IECTRL_EXIST,
  326. 119, UNIPHIER_PIN_DRV_1BIT,
  327. 119, UNIPHIER_PIN_PULL_DOWN),
  328. UNIPHIER_PINCTRL_PIN(120, "HS0DOUT4", UNIPHIER_PIN_IECTRL_EXIST,
  329. 120, UNIPHIER_PIN_DRV_1BIT,
  330. 120, UNIPHIER_PIN_PULL_DOWN),
  331. UNIPHIER_PINCTRL_PIN(121, "HS0DOUT5", UNIPHIER_PIN_IECTRL_EXIST,
  332. 121, UNIPHIER_PIN_DRV_1BIT,
  333. 121, UNIPHIER_PIN_PULL_DOWN),
  334. UNIPHIER_PINCTRL_PIN(122, "HS0DOUT6", UNIPHIER_PIN_IECTRL_EXIST,
  335. 122, UNIPHIER_PIN_DRV_1BIT,
  336. 122, UNIPHIER_PIN_PULL_DOWN),
  337. UNIPHIER_PINCTRL_PIN(123, "HS0DOUT7", UNIPHIER_PIN_IECTRL_EXIST,
  338. 123, UNIPHIER_PIN_DRV_1BIT,
  339. 123, UNIPHIER_PIN_PULL_DOWN),
  340. UNIPHIER_PINCTRL_PIN(124, "HS1BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
  341. 124, UNIPHIER_PIN_DRV_1BIT,
  342. 124, UNIPHIER_PIN_PULL_DOWN),
  343. UNIPHIER_PINCTRL_PIN(125, "HS1SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
  344. 125, UNIPHIER_PIN_DRV_1BIT,
  345. 125, UNIPHIER_PIN_PULL_DOWN),
  346. UNIPHIER_PINCTRL_PIN(126, "HS1VALIN", UNIPHIER_PIN_IECTRL_EXIST,
  347. 126, UNIPHIER_PIN_DRV_1BIT,
  348. 126, UNIPHIER_PIN_PULL_DOWN),
  349. UNIPHIER_PINCTRL_PIN(127, "HS1DIN0", UNIPHIER_PIN_IECTRL_EXIST,
  350. 127, UNIPHIER_PIN_DRV_1BIT,
  351. 127, UNIPHIER_PIN_PULL_DOWN),
  352. UNIPHIER_PINCTRL_PIN(128, "HS1DIN1", UNIPHIER_PIN_IECTRL_EXIST,
  353. 128, UNIPHIER_PIN_DRV_1BIT,
  354. 128, UNIPHIER_PIN_PULL_DOWN),
  355. UNIPHIER_PINCTRL_PIN(129, "HS1DIN2", UNIPHIER_PIN_IECTRL_EXIST,
  356. 129, UNIPHIER_PIN_DRV_1BIT,
  357. 129, UNIPHIER_PIN_PULL_DOWN),
  358. UNIPHIER_PINCTRL_PIN(130, "HS1DIN3", UNIPHIER_PIN_IECTRL_EXIST,
  359. 130, UNIPHIER_PIN_DRV_1BIT,
  360. 130, UNIPHIER_PIN_PULL_DOWN),
  361. UNIPHIER_PINCTRL_PIN(131, "HS1DIN4", UNIPHIER_PIN_IECTRL_EXIST,
  362. 131, UNIPHIER_PIN_DRV_1BIT,
  363. 131, UNIPHIER_PIN_PULL_DOWN),
  364. UNIPHIER_PINCTRL_PIN(132, "HS1DIN5", UNIPHIER_PIN_IECTRL_EXIST,
  365. 132, UNIPHIER_PIN_DRV_1BIT,
  366. 132, UNIPHIER_PIN_PULL_DOWN),
  367. UNIPHIER_PINCTRL_PIN(133, "HS1DIN6", UNIPHIER_PIN_IECTRL_EXIST,
  368. 133, UNIPHIER_PIN_DRV_1BIT,
  369. 133, UNIPHIER_PIN_PULL_DOWN),
  370. UNIPHIER_PINCTRL_PIN(134, "HS1DIN7", UNIPHIER_PIN_IECTRL_EXIST,
  371. 134, UNIPHIER_PIN_DRV_1BIT,
  372. 134, UNIPHIER_PIN_PULL_DOWN),
  373. UNIPHIER_PINCTRL_PIN(135, "AO1IEC", UNIPHIER_PIN_IECTRL_EXIST,
  374. 135, UNIPHIER_PIN_DRV_1BIT,
  375. 135, UNIPHIER_PIN_PULL_DOWN),
  376. UNIPHIER_PINCTRL_PIN(136, "AO1ARC", UNIPHIER_PIN_IECTRL_EXIST,
  377. 136, UNIPHIER_PIN_DRV_1BIT,
  378. 136, UNIPHIER_PIN_PULL_DOWN),
  379. UNIPHIER_PINCTRL_PIN(137, "AO1DACCK", UNIPHIER_PIN_IECTRL_EXIST,
  380. 137, UNIPHIER_PIN_DRV_1BIT,
  381. 137, UNIPHIER_PIN_PULL_DOWN),
  382. UNIPHIER_PINCTRL_PIN(138, "AO1BCK", UNIPHIER_PIN_IECTRL_EXIST,
  383. 138, UNIPHIER_PIN_DRV_1BIT,
  384. 138, UNIPHIER_PIN_PULL_DOWN),
  385. UNIPHIER_PINCTRL_PIN(139, "AO1LRCK", UNIPHIER_PIN_IECTRL_EXIST,
  386. 139, UNIPHIER_PIN_DRV_1BIT,
  387. 139, UNIPHIER_PIN_PULL_DOWN),
  388. UNIPHIER_PINCTRL_PIN(140, "AO1D0", UNIPHIER_PIN_IECTRL_EXIST,
  389. 140, UNIPHIER_PIN_DRV_1BIT,
  390. 140, UNIPHIER_PIN_PULL_DOWN),
  391. UNIPHIER_PINCTRL_PIN(141, "AO1D1", UNIPHIER_PIN_IECTRL_EXIST,
  392. 141, UNIPHIER_PIN_DRV_1BIT,
  393. 141, UNIPHIER_PIN_PULL_DOWN),
  394. UNIPHIER_PINCTRL_PIN(142, "AO1D2", UNIPHIER_PIN_IECTRL_EXIST,
  395. 142, UNIPHIER_PIN_DRV_1BIT,
  396. 142, UNIPHIER_PIN_PULL_DOWN),
  397. UNIPHIER_PINCTRL_PIN(143, "XIRQ9", UNIPHIER_PIN_IECTRL_EXIST,
  398. 143, UNIPHIER_PIN_DRV_1BIT,
  399. 143, UNIPHIER_PIN_PULL_DOWN),
  400. UNIPHIER_PINCTRL_PIN(144, "XIRQ10", UNIPHIER_PIN_IECTRL_EXIST,
  401. 144, UNIPHIER_PIN_DRV_1BIT,
  402. 144, UNIPHIER_PIN_PULL_DOWN),
  403. UNIPHIER_PINCTRL_PIN(145, "XIRQ11", UNIPHIER_PIN_IECTRL_EXIST,
  404. 145, UNIPHIER_PIN_DRV_1BIT,
  405. 145, UNIPHIER_PIN_PULL_DOWN),
  406. UNIPHIER_PINCTRL_PIN(146, "XIRQ13", UNIPHIER_PIN_IECTRL_EXIST,
  407. 146, UNIPHIER_PIN_DRV_1BIT,
  408. 146, UNIPHIER_PIN_PULL_DOWN),
  409. UNIPHIER_PINCTRL_PIN(147, "PWMA", UNIPHIER_PIN_IECTRL_EXIST,
  410. 147, UNIPHIER_PIN_DRV_1BIT,
  411. 147, UNIPHIER_PIN_PULL_DOWN),
  412. UNIPHIER_PINCTRL_PIN(148, "LR_GOUT", UNIPHIER_PIN_IECTRL_EXIST,
  413. 148, UNIPHIER_PIN_DRV_1BIT,
  414. 148, UNIPHIER_PIN_PULL_DOWN),
  415. UNIPHIER_PINCTRL_PIN(149, "XIRQ0", UNIPHIER_PIN_IECTRL_EXIST,
  416. 149, UNIPHIER_PIN_DRV_1BIT,
  417. 149, UNIPHIER_PIN_PULL_DOWN),
  418. UNIPHIER_PINCTRL_PIN(150, "XIRQ1", UNIPHIER_PIN_IECTRL_EXIST,
  419. 150, UNIPHIER_PIN_DRV_1BIT,
  420. 150, UNIPHIER_PIN_PULL_DOWN),
  421. UNIPHIER_PINCTRL_PIN(151, "XIRQ2", UNIPHIER_PIN_IECTRL_EXIST,
  422. 151, UNIPHIER_PIN_DRV_1BIT,
  423. 151, UNIPHIER_PIN_PULL_DOWN),
  424. UNIPHIER_PINCTRL_PIN(152, "XIRQ3", UNIPHIER_PIN_IECTRL_EXIST,
  425. 152, UNIPHIER_PIN_DRV_1BIT,
  426. 152, UNIPHIER_PIN_PULL_DOWN),
  427. UNIPHIER_PINCTRL_PIN(153, "XIRQ4", UNIPHIER_PIN_IECTRL_EXIST,
  428. 153, UNIPHIER_PIN_DRV_1BIT,
  429. 153, UNIPHIER_PIN_PULL_DOWN),
  430. UNIPHIER_PINCTRL_PIN(154, "XIRQ5", UNIPHIER_PIN_IECTRL_EXIST,
  431. 154, UNIPHIER_PIN_DRV_1BIT,
  432. 154, UNIPHIER_PIN_PULL_DOWN),
  433. UNIPHIER_PINCTRL_PIN(155, "XIRQ6", UNIPHIER_PIN_IECTRL_EXIST,
  434. 155, UNIPHIER_PIN_DRV_1BIT,
  435. 155, UNIPHIER_PIN_PULL_DOWN),
  436. UNIPHIER_PINCTRL_PIN(156, "XIRQ7", UNIPHIER_PIN_IECTRL_EXIST,
  437. 156, UNIPHIER_PIN_DRV_1BIT,
  438. 156, UNIPHIER_PIN_PULL_DOWN),
  439. UNIPHIER_PINCTRL_PIN(157, "XIRQ8", UNIPHIER_PIN_IECTRL_EXIST,
  440. 157, UNIPHIER_PIN_DRV_1BIT,
  441. 157, UNIPHIER_PIN_PULL_DOWN),
  442. UNIPHIER_PINCTRL_PIN(158, "AGCBS", UNIPHIER_PIN_IECTRL_EXIST,
  443. 158, UNIPHIER_PIN_DRV_1BIT,
  444. 158, UNIPHIER_PIN_PULL_DOWN),
  445. UNIPHIER_PINCTRL_PIN(159, "XIRQ21", UNIPHIER_PIN_IECTRL_EXIST,
  446. 159, UNIPHIER_PIN_DRV_1BIT,
  447. 159, UNIPHIER_PIN_PULL_DOWN),
  448. UNIPHIER_PINCTRL_PIN(160, "XIRQ22", UNIPHIER_PIN_IECTRL_EXIST,
  449. 160, UNIPHIER_PIN_DRV_1BIT,
  450. 160, UNIPHIER_PIN_PULL_DOWN),
  451. UNIPHIER_PINCTRL_PIN(161, "XIRQ23", UNIPHIER_PIN_IECTRL_EXIST,
  452. 161, UNIPHIER_PIN_DRV_1BIT,
  453. 161, UNIPHIER_PIN_PULL_DOWN),
  454. UNIPHIER_PINCTRL_PIN(162, "CH2CLK", UNIPHIER_PIN_IECTRL_EXIST,
  455. 162, UNIPHIER_PIN_DRV_1BIT,
  456. 162, UNIPHIER_PIN_PULL_DOWN),
  457. UNIPHIER_PINCTRL_PIN(163, "CH2PSYNC", UNIPHIER_PIN_IECTRL_EXIST,
  458. 163, UNIPHIER_PIN_DRV_1BIT,
  459. 163, UNIPHIER_PIN_PULL_DOWN),
  460. UNIPHIER_PINCTRL_PIN(164, "CH2VAL", UNIPHIER_PIN_IECTRL_EXIST,
  461. 164, UNIPHIER_PIN_DRV_1BIT,
  462. 164, UNIPHIER_PIN_PULL_DOWN),
  463. UNIPHIER_PINCTRL_PIN(165, "CH2DATA", UNIPHIER_PIN_IECTRL_EXIST,
  464. 165, UNIPHIER_PIN_DRV_1BIT,
  465. 165, UNIPHIER_PIN_PULL_DOWN),
  466. UNIPHIER_PINCTRL_PIN(166, "CK25O", UNIPHIER_PIN_IECTRL_EXIST,
  467. 166, UNIPHIER_PIN_DRV_1BIT,
  468. 166, UNIPHIER_PIN_PULL_DOWN),
  469. };
  470. static const unsigned aout1_pins[] = {137, 138, 139, 140, 141, 142};
  471. static const int aout1_muxvals[] = {0, 0, 0, 0, 0, 0};
  472. static const unsigned aoutiec1_pins[] = {135, 136};
  473. static const int aoutiec1_muxvals[] = {0, 0};
  474. static const unsigned int emmc_pins[] = {19, 20, 21, 22, 23, 24, 25};
  475. static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0};
  476. static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29};
  477. static const int emmc_dat8_muxvals[] = {0, 0, 0, 0};
  478. static const unsigned ether_rmii_pins[] = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  479. 16, 17};
  480. static const int ether_rmii_muxvals[] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4};
  481. static const unsigned hscin0_ci_pins[] = {102, 103, 104, 105, 106, 107, 108,
  482. 109, 110, 111, 112};
  483. static const int hscin0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
  484. static const unsigned hscin0_p_pins[] = {102, 103, 104, 105, 106, 107, 108, 109,
  485. 110, 111, 112};
  486. static const int hscin0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  487. static const unsigned hscin0_s_pins[] = {116, 117, 118, 119};
  488. static const int hscin0_s_muxvals[] = {3, 3, 3, 3};
  489. static const unsigned hscin1_p_pins[] = {124, 125, 126, 127, 128, 129, 130, 131,
  490. 132, 133, 134};
  491. static const int hscin1_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  492. static const unsigned hscin1_s_pins[] = {120, 121, 122, 123};
  493. static const int hscin1_s_muxvals[] = {3, 3, 3, 3};
  494. static const unsigned hscin2_s_pins[] = {124, 125, 126, 127};
  495. static const int hscin2_s_muxvals[] = {3, 3, 3, 3};
  496. static const unsigned hscout0_ci_pins[] = {113, 114, 115, 116, 117, 118, 119,
  497. 120, 121, 122, 123};
  498. static const int hscout0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
  499. static const unsigned hscout0_p_pins[] = {113, 114, 115, 116, 117, 118, 119,
  500. 120, 121, 122, 123};
  501. static const int hscout0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  502. static const unsigned hscout0_s_pins[] = {116, 117, 118, 119};
  503. static const int hscout0_s_muxvals[] = {4, 4, 4, 4};
  504. static const unsigned hscout1_s_pins[] = {120, 121, 122, 123};
  505. static const int hscout1_s_muxvals[] = {4, 4, 4, 4};
  506. static const unsigned i2c0_pins[] = {63, 64};
  507. static const int i2c0_muxvals[] = {0, 0};
  508. static const unsigned i2c1_pins[] = {65, 66};
  509. static const int i2c1_muxvals[] = {0, 0};
  510. static const unsigned i2c3_pins[] = {67, 68};
  511. static const int i2c3_muxvals[] = {1, 1};
  512. static const unsigned i2c4_pins[] = {61, 62};
  513. static const int i2c4_muxvals[] = {1, 1};
  514. static const unsigned nand_pins[] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  515. 15, 16, 17};
  516. static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  517. static const unsigned spi0_pins[] = {56, 57, 58, 59};
  518. static const int spi0_muxvals[] = {0, 0, 0, 0};
  519. static const unsigned spi1_pins[] = {169, 170, 171, 172};
  520. static const int spi1_muxvals[] = {1, 1, 1, 1};
  521. static const unsigned system_bus_pins[] = {1, 2, 6, 7, 8, 9, 10, 11, 12, 13,
  522. 14, 15, 16, 17};
  523. static const int system_bus_muxvals[] = {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  524. 2};
  525. static const unsigned system_bus_cs1_pins[] = {0};
  526. static const int system_bus_cs1_muxvals[] = {0};
  527. static const unsigned uart0_pins[] = {54, 55};
  528. static const int uart0_muxvals[] = {0, 0};
  529. static const unsigned uart1_pins[] = {58, 59};
  530. static const int uart1_muxvals[] = {1, 1};
  531. static const unsigned uart2_pins[] = {90, 91};
  532. static const int uart2_muxvals[] = {1, 1};
  533. static const unsigned uart3_pins[] = {94, 95};
  534. static const int uart3_muxvals[] = {1, 1};
  535. static const unsigned uart3_ctsrts_pins[] = {96, 97, 98, 99, 100, 101};
  536. static const int uart3_ctsrts_muxvals[] = {1, 1, 1, 1, 1, 1};
  537. static const unsigned usb0_pins[] = {46, 47};
  538. static const int usb0_muxvals[] = {0, 0};
  539. static const unsigned usb1_pins[] = {48, 49};
  540. static const int usb1_muxvals[] = {0, 0};
  541. static const unsigned usb2_pins[] = {50, 51};
  542. static const int usb2_muxvals[] = {0, 0};
  543. static const unsigned int gpio_range0_pins[] = {
  544. 159, 160, 161, 162, 163, 164, 165, 166, /* PORT0x */
  545. 0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */
  546. 8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */
  547. 16, 17, 18, /* PORT30-32 */
  548. };
  549. static const unsigned int gpio_range1_pins[] = {
  550. 46, 47, 48, 49, 50, /* PORT53-57 */
  551. 51, /* PORT60 */
  552. };
  553. static const unsigned int gpio_range2_pins[] = {
  554. 54, 55, 56, 57, 58, /* PORT63-67 */
  555. 59, 60, 69, 70, 71, 72, 73, 74, /* PORT7x */
  556. 75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */
  557. 83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */
  558. 91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */
  559. };
  560. static const unsigned int gpio_range3_pins[] = {
  561. 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
  562. 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
  563. 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
  564. 149, 150, 151, 152, 153, 154, 155, 156, /* XIRQ0-7 */
  565. 157, 143, 144, 145, 85, 146, 158, 84, /* XIRQ8-15 */
  566. 141, 142, 148, 50, 51, 159, 160, 161, /* XIRQ16-23 */
  567. 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
  568. };
  569. static const unsigned int gpio_range4_pins[] = {
  570. 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
  571. 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
  572. 139, 140, 141, 142, /* PORT220-223 */
  573. };
  574. static const unsigned int gpio_range5_pins[] = {
  575. 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
  576. 155, 156, 157, 143, 144, 145, 146, 158, /* PORT24x */
  577. };
  578. static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = {
  579. UNIPHIER_PINCTRL_GROUP(aout1),
  580. UNIPHIER_PINCTRL_GROUP(aoutiec1),
  581. UNIPHIER_PINCTRL_GROUP(emmc),
  582. UNIPHIER_PINCTRL_GROUP(emmc_dat8),
  583. UNIPHIER_PINCTRL_GROUP(ether_rmii),
  584. UNIPHIER_PINCTRL_GROUP(hscin0_ci),
  585. UNIPHIER_PINCTRL_GROUP(hscin0_p),
  586. UNIPHIER_PINCTRL_GROUP(hscin0_s),
  587. UNIPHIER_PINCTRL_GROUP(hscin1_p),
  588. UNIPHIER_PINCTRL_GROUP(hscin1_s),
  589. UNIPHIER_PINCTRL_GROUP(hscin2_s),
  590. UNIPHIER_PINCTRL_GROUP(hscout0_ci),
  591. UNIPHIER_PINCTRL_GROUP(hscout0_p),
  592. UNIPHIER_PINCTRL_GROUP(hscout0_s),
  593. UNIPHIER_PINCTRL_GROUP(hscout1_s),
  594. UNIPHIER_PINCTRL_GROUP(i2c0),
  595. UNIPHIER_PINCTRL_GROUP(i2c1),
  596. UNIPHIER_PINCTRL_GROUP(i2c3),
  597. UNIPHIER_PINCTRL_GROUP(i2c4),
  598. UNIPHIER_PINCTRL_GROUP(nand),
  599. UNIPHIER_PINCTRL_GROUP(spi0),
  600. UNIPHIER_PINCTRL_GROUP(spi1),
  601. UNIPHIER_PINCTRL_GROUP(system_bus),
  602. UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
  603. UNIPHIER_PINCTRL_GROUP(uart0),
  604. UNIPHIER_PINCTRL_GROUP(uart1),
  605. UNIPHIER_PINCTRL_GROUP(uart2),
  606. UNIPHIER_PINCTRL_GROUP(uart3),
  607. UNIPHIER_PINCTRL_GROUP(uart3_ctsrts),
  608. UNIPHIER_PINCTRL_GROUP(usb0),
  609. UNIPHIER_PINCTRL_GROUP(usb1),
  610. UNIPHIER_PINCTRL_GROUP(usb2),
  611. UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range0),
  612. UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range1),
  613. UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2),
  614. UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range3),
  615. UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range4),
  616. UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range5),
  617. };
  618. static const char * const aout1_groups[] = {"aout1"};
  619. static const char * const aoutiec1_groups[] = {"aoutiec1"};
  620. static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
  621. static const char * const ether_rmii_groups[] = {"ether_rmii"};
  622. static const char * const hscin0_groups[] = {"hscin0_ci",
  623. "hscin0_p",
  624. "hscin0_s"};
  625. static const char * const hscin1_groups[] = {"hscin1_p", "hscin1_s"};
  626. static const char * const hscin2_groups[] = {"hscin2_s"};
  627. static const char * const hscout0_groups[] = {"hscout0_ci",
  628. "hscout0_p",
  629. "hscout0_s"};
  630. static const char * const hscout1_groups[] = {"hscout1_s"};
  631. static const char * const i2c0_groups[] = {"i2c0"};
  632. static const char * const i2c1_groups[] = {"i2c1"};
  633. static const char * const i2c3_groups[] = {"i2c3"};
  634. static const char * const i2c4_groups[] = {"i2c4"};
  635. static const char * const nand_groups[] = {"nand"};
  636. static const char * const spi0_groups[] = {"spi0"};
  637. static const char * const spi1_groups[] = {"spi1"};
  638. static const char * const system_bus_groups[] = {"system_bus",
  639. "system_bus_cs1"};
  640. static const char * const uart0_groups[] = {"uart0"};
  641. static const char * const uart1_groups[] = {"uart1"};
  642. static const char * const uart2_groups[] = {"uart2"};
  643. static const char * const uart3_groups[] = {"uart3", "uart3_ctsrts"};
  644. static const char * const usb0_groups[] = {"usb0"};
  645. static const char * const usb1_groups[] = {"usb1"};
  646. static const char * const usb2_groups[] = {"usb2"};
  647. static const struct uniphier_pinmux_function uniphier_ld11_functions[] = {
  648. UNIPHIER_PINMUX_FUNCTION(aout1),
  649. UNIPHIER_PINMUX_FUNCTION(aoutiec1),
  650. UNIPHIER_PINMUX_FUNCTION(emmc),
  651. UNIPHIER_PINMUX_FUNCTION(ether_rmii),
  652. UNIPHIER_PINMUX_FUNCTION(hscin0),
  653. UNIPHIER_PINMUX_FUNCTION(hscin1),
  654. UNIPHIER_PINMUX_FUNCTION(hscin2),
  655. UNIPHIER_PINMUX_FUNCTION(hscout0),
  656. UNIPHIER_PINMUX_FUNCTION(hscout1),
  657. UNIPHIER_PINMUX_FUNCTION(i2c0),
  658. UNIPHIER_PINMUX_FUNCTION(i2c1),
  659. UNIPHIER_PINMUX_FUNCTION(i2c3),
  660. UNIPHIER_PINMUX_FUNCTION(i2c4),
  661. UNIPHIER_PINMUX_FUNCTION(nand),
  662. UNIPHIER_PINMUX_FUNCTION(spi0),
  663. UNIPHIER_PINMUX_FUNCTION(spi1),
  664. UNIPHIER_PINMUX_FUNCTION(system_bus),
  665. UNIPHIER_PINMUX_FUNCTION(uart0),
  666. UNIPHIER_PINMUX_FUNCTION(uart1),
  667. UNIPHIER_PINMUX_FUNCTION(uart2),
  668. UNIPHIER_PINMUX_FUNCTION(uart3),
  669. UNIPHIER_PINMUX_FUNCTION(usb0),
  670. UNIPHIER_PINMUX_FUNCTION(usb1),
  671. UNIPHIER_PINMUX_FUNCTION(usb2),
  672. };
  673. static int uniphier_ld11_get_gpio_muxval(unsigned int pin,
  674. unsigned int gpio_offset)
  675. {
  676. if (gpio_offset == 132 || gpio_offset == 135) /* XIRQ12, 15 */
  677. return 13;
  678. if (gpio_offset >= 120 && gpio_offset <= 143) /* XIRQx */
  679. return 14;
  680. return 15;
  681. }
  682. static struct uniphier_pinctrl_socdata uniphier_ld11_pindata = {
  683. .pins = uniphier_ld11_pins,
  684. .npins = ARRAY_SIZE(uniphier_ld11_pins),
  685. .groups = uniphier_ld11_groups,
  686. .groups_count = ARRAY_SIZE(uniphier_ld11_groups),
  687. .functions = uniphier_ld11_functions,
  688. .functions_count = ARRAY_SIZE(uniphier_ld11_functions),
  689. .get_gpio_muxval = uniphier_ld11_get_gpio_muxval,
  690. .caps = UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL,
  691. };
  692. static int uniphier_ld11_pinctrl_probe(struct platform_device *pdev)
  693. {
  694. return uniphier_pinctrl_probe(pdev, &uniphier_ld11_pindata);
  695. }
  696. static const struct of_device_id uniphier_ld11_pinctrl_match[] = {
  697. { .compatible = "socionext,uniphier-ld11-pinctrl" },
  698. { /* sentinel */ }
  699. };
  700. static struct platform_driver uniphier_ld11_pinctrl_driver = {
  701. .probe = uniphier_ld11_pinctrl_probe,
  702. .driver = {
  703. .name = "uniphier-ld11-pinctrl",
  704. .of_match_table = uniphier_ld11_pinctrl_match,
  705. .pm = &uniphier_pinctrl_pm_ops,
  706. },
  707. };
  708. builtin_platform_driver(uniphier_ld11_pinctrl_driver);