pinctrl-pxa27x.c 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Marvell PXA27x family pin control
  4. *
  5. * Copyright (C) 2015 Robert Jarzmik
  6. */
  7. #include <linux/module.h>
  8. #include <linux/platform_device.h>
  9. #include <linux/of.h>
  10. #include <linux/pinctrl/pinctrl.h>
  11. #include "pinctrl-pxa2xx.h"
  12. static const struct pxa_desc_pin pxa27x_pins[] = {
  13. PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(0)),
  14. PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(1)),
  15. PXA_GPIO_PIN(PXA_PINCTRL_PIN(9),
  16. PXA_FUNCTION(0, 3, "FFCTS"),
  17. PXA_FUNCTION(1, 1, "HZ_CLK"),
  18. PXA_FUNCTION(1, 3, "CHOUT<0>")),
  19. PXA_GPIO_PIN(PXA_PINCTRL_PIN(10),
  20. PXA_FUNCTION(0, 1, "FFDCD"),
  21. PXA_FUNCTION(0, 3, "USB_P3_5"),
  22. PXA_FUNCTION(1, 1, "HZ_CLK"),
  23. PXA_FUNCTION(1, 3, "CHOUT<1>")),
  24. PXA_GPIO_PIN(PXA_PINCTRL_PIN(11),
  25. PXA_FUNCTION(0, 1, "EXT_SYNC<0>"),
  26. PXA_FUNCTION(0, 2, "SSPRXD2"),
  27. PXA_FUNCTION(0, 3, "USB_P3_1"),
  28. PXA_FUNCTION(1, 1, "CHOUT<0>"),
  29. PXA_FUNCTION(1, 1, "PWM_OUT<2>"),
  30. PXA_FUNCTION(1, 3, "48_MHz")),
  31. PXA_GPIO_PIN(PXA_PINCTRL_PIN(12),
  32. PXA_FUNCTION(0, 1, "EXT_SYNC<1>"),
  33. PXA_FUNCTION(0, 2, "CIF_DD<7>"),
  34. PXA_FUNCTION(1, 1, "CHOUT<1>"),
  35. PXA_FUNCTION(1, 1, "PWM_OUT<3>"),
  36. PXA_FUNCTION(1, 3, "48_MHz")),
  37. PXA_GPIO_PIN(PXA_PINCTRL_PIN(13),
  38. PXA_FUNCTION(0, 1, "CLK_EXT"),
  39. PXA_FUNCTION(0, 2, "KP_DKIN<7>"),
  40. PXA_FUNCTION(0, 3, "KP_MKIN<7>"),
  41. PXA_FUNCTION(1, 1, "SSPTXD2")),
  42. PXA_GPIO_PIN(PXA_PINCTRL_PIN(14),
  43. PXA_FUNCTION(0, 1, "L_VSYNC"),
  44. PXA_FUNCTION(0, 2, "SSPSFRM2"),
  45. PXA_FUNCTION(1, 1, "SSPSFRM2"),
  46. PXA_FUNCTION(1, 3, "UCLK")),
  47. PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(15)),
  48. PXA_GPIO_PIN(PXA_PINCTRL_PIN(16),
  49. PXA_FUNCTION(0, 1, "KP_MKIN<5>"),
  50. PXA_FUNCTION(1, 2, "PWM_OUT<0>"),
  51. PXA_FUNCTION(1, 3, "FFTXD")),
  52. PXA_GPIO_PIN(PXA_PINCTRL_PIN(17),
  53. PXA_FUNCTION(0, 1, "KP_MKIN<6>"),
  54. PXA_FUNCTION(0, 2, "CIF_DD<6>"),
  55. PXA_FUNCTION(1, 2, "PWM_OUT<1>")),
  56. PXA_GPIO_PIN(PXA_PINCTRL_PIN(18),
  57. PXA_FUNCTION(0, 1, "RDY")),
  58. PXA_GPIO_PIN(PXA_PINCTRL_PIN(19),
  59. PXA_FUNCTION(0, 1, "SSPSCLK2"),
  60. PXA_FUNCTION(0, 3, "FFRXD"),
  61. PXA_FUNCTION(1, 1, "SSPSCLK2"),
  62. PXA_FUNCTION(1, 2, "L_CS"),
  63. PXA_FUNCTION(1, 3, "nURST")),
  64. PXA_GPIO_PIN(PXA_PINCTRL_PIN(20),
  65. PXA_FUNCTION(0, 1, "DREQ<0>"),
  66. PXA_FUNCTION(0, 2, "MBREQ"),
  67. PXA_FUNCTION(1, 1, "nSDCS<2>")),
  68. PXA_GPIO_PIN(PXA_PINCTRL_PIN(21),
  69. PXA_FUNCTION(1, 1, "nSDCS<3>"),
  70. PXA_FUNCTION(1, 2, "DVAL<0>"),
  71. PXA_FUNCTION(1, 3, "MBGNT")),
  72. PXA_GPIO_PIN(PXA_PINCTRL_PIN(22),
  73. PXA_FUNCTION(0, 1, "SSPEXTCLK2"),
  74. PXA_FUNCTION(0, 2, "SSPSCLKEN2"),
  75. PXA_FUNCTION(0, 3, "SSPSCLK2"),
  76. PXA_FUNCTION(1, 1, "KP_MKOUT<7>"),
  77. PXA_FUNCTION(1, 2, "SSPSYSCLK2"),
  78. PXA_FUNCTION(1, 3, "SSPSCLK2")),
  79. PXA_GPIO_PIN(PXA_PINCTRL_PIN(23),
  80. PXA_FUNCTION(0, 2, "SSPSCLK"),
  81. PXA_FUNCTION(1, 1, "CIF_MCLK"),
  82. PXA_FUNCTION(1, 1, "SSPSCLK")),
  83. PXA_GPIO_PIN(PXA_PINCTRL_PIN(24),
  84. PXA_FUNCTION(0, 1, "CIF_FV"),
  85. PXA_FUNCTION(0, 2, "SSPSFRM"),
  86. PXA_FUNCTION(1, 1, "CIF_FV"),
  87. PXA_FUNCTION(1, 2, "SSPSFRM")),
  88. PXA_GPIO_PIN(PXA_PINCTRL_PIN(25),
  89. PXA_FUNCTION(0, 1, "CIF_LV"),
  90. PXA_FUNCTION(1, 1, "CIF_LV"),
  91. PXA_FUNCTION(1, 2, "SSPTXD")),
  92. PXA_GPIO_PIN(PXA_PINCTRL_PIN(26),
  93. PXA_FUNCTION(0, 1, "SSPRXD"),
  94. PXA_FUNCTION(0, 2, "CIF_PCLK"),
  95. PXA_FUNCTION(0, 3, "FFCTS")),
  96. PXA_GPIO_PIN(PXA_PINCTRL_PIN(27),
  97. PXA_FUNCTION(0, 1, "SSPEXTCLK"),
  98. PXA_FUNCTION(0, 2, "SSPSCLKEN"),
  99. PXA_FUNCTION(0, 3, "CIF_DD<0>"),
  100. PXA_FUNCTION(1, 1, "SSPSYSCLK"),
  101. PXA_FUNCTION(1, 3, "FFRTS")),
  102. PXA_GPIO_PIN(PXA_PINCTRL_PIN(28),
  103. PXA_FUNCTION(0, 1, "AC97_BITCLK"),
  104. PXA_FUNCTION(0, 2, "I2S_BITCLK"),
  105. PXA_FUNCTION(0, 3, "SSPSFRM"),
  106. PXA_FUNCTION(1, 1, "I2S_BITCLK"),
  107. PXA_FUNCTION(1, 3, "SSPSFRM")),
  108. PXA_GPIO_PIN(PXA_PINCTRL_PIN(29),
  109. PXA_FUNCTION(0, 1, "AC97_SDATA_IN_0"),
  110. PXA_FUNCTION(0, 2, "I2S_SDATA_IN"),
  111. PXA_FUNCTION(0, 3, "SSPSCLK"),
  112. PXA_FUNCTION(1, 1, "SSPRXD2"),
  113. PXA_FUNCTION(1, 3, "SSPSCLK")),
  114. PXA_GPIO_PIN(PXA_PINCTRL_PIN(30),
  115. PXA_FUNCTION(1, 1, "I2S_SDATA_OUT"),
  116. PXA_FUNCTION(1, 2, "AC97_SDATA_OUT"),
  117. PXA_FUNCTION(1, 3, "USB_P3_2")),
  118. PXA_GPIO_PIN(PXA_PINCTRL_PIN(31),
  119. PXA_FUNCTION(1, 1, "I2S_SYNC"),
  120. PXA_FUNCTION(1, 2, "AC97_SYNC"),
  121. PXA_FUNCTION(1, 3, "USB_P3_6")),
  122. PXA_GPIO_PIN(PXA_PINCTRL_PIN(32),
  123. PXA_FUNCTION(1, 1, "MSSCLK"),
  124. PXA_FUNCTION(1, 2, "MMCLK")),
  125. PXA_GPIO_PIN(PXA_PINCTRL_PIN(33),
  126. PXA_FUNCTION(0, 1, "FFRXD"),
  127. PXA_FUNCTION(0, 2, "FFDSR"),
  128. PXA_FUNCTION(1, 1, "DVAL<1>"),
  129. PXA_FUNCTION(1, 2, "nCS<5>"),
  130. PXA_FUNCTION(1, 3, "MBGNT")),
  131. PXA_GPIO_PIN(PXA_PINCTRL_PIN(34),
  132. PXA_FUNCTION(0, 1, "FFRXD"),
  133. PXA_FUNCTION(0, 2, "KP_MKIN<3>"),
  134. PXA_FUNCTION(0, 3, "SSPSCLK3"),
  135. PXA_FUNCTION(1, 1, "USB_P2_2"),
  136. PXA_FUNCTION(1, 3, "SSPSCLK3")),
  137. PXA_GPIO_PIN(PXA_PINCTRL_PIN(35),
  138. PXA_FUNCTION(0, 1, "FFCTS"),
  139. PXA_FUNCTION(0, 2, "USB_P2_1"),
  140. PXA_FUNCTION(0, 3, "SSPSFRM3"),
  141. PXA_FUNCTION(1, 2, "KP_MKOUT<6>"),
  142. PXA_FUNCTION(1, 3, "SSPTXD3")),
  143. PXA_GPIO_PIN(PXA_PINCTRL_PIN(36),
  144. PXA_FUNCTION(0, 1, "FFDCD"),
  145. PXA_FUNCTION(0, 2, "SSPSCLK2"),
  146. PXA_FUNCTION(0, 3, "KP_MKIN<7>"),
  147. PXA_FUNCTION(1, 1, "USB_P2_4"),
  148. PXA_FUNCTION(1, 2, "SSPSCLK2")),
  149. PXA_GPIO_PIN(PXA_PINCTRL_PIN(37),
  150. PXA_FUNCTION(0, 1, "FFDSR"),
  151. PXA_FUNCTION(0, 2, "SSPSFRM2"),
  152. PXA_FUNCTION(0, 3, "KP_MKIN<3>"),
  153. PXA_FUNCTION(1, 1, "USB_P2_8"),
  154. PXA_FUNCTION(1, 2, "SSPSFRM2"),
  155. PXA_FUNCTION(1, 3, "FFTXD")),
  156. PXA_GPIO_PIN(PXA_PINCTRL_PIN(38),
  157. PXA_FUNCTION(0, 1, "FFRI"),
  158. PXA_FUNCTION(0, 2, "KP_MKIN<4>"),
  159. PXA_FUNCTION(0, 3, "USB_P2_3"),
  160. PXA_FUNCTION(1, 1, "SSPTXD3"),
  161. PXA_FUNCTION(1, 2, "SSPTXD2"),
  162. PXA_FUNCTION(1, 3, "PWM_OUT<0>")),
  163. PXA_GPIO_PIN(PXA_PINCTRL_PIN(39),
  164. PXA_FUNCTION(0, 1, "KP_MKIN<4>"),
  165. PXA_FUNCTION(0, 3, "SSPSFRM3"),
  166. PXA_FUNCTION(1, 1, "USB_P2_6"),
  167. PXA_FUNCTION(1, 2, "FFTXD"),
  168. PXA_FUNCTION(1, 3, "SSPSFRM3")),
  169. PXA_GPIO_PIN(PXA_PINCTRL_PIN(40),
  170. PXA_FUNCTION(0, 1, "SSPRXD2"),
  171. PXA_FUNCTION(0, 3, "USB_P2_5"),
  172. PXA_FUNCTION(1, 1, "KP_MKOUT<6>"),
  173. PXA_FUNCTION(1, 2, "FFDTR"),
  174. PXA_FUNCTION(1, 3, "SSPSCLK3")),
  175. PXA_GPIO_PIN(PXA_PINCTRL_PIN(41),
  176. PXA_FUNCTION(0, 1, "FFRXD"),
  177. PXA_FUNCTION(0, 2, "USB_P2_7"),
  178. PXA_FUNCTION(0, 3, "SSPRXD3"),
  179. PXA_FUNCTION(1, 1, "KP_MKOUT<7>"),
  180. PXA_FUNCTION(1, 2, "FFRTS")),
  181. PXA_GPIO_PIN(PXA_PINCTRL_PIN(42),
  182. PXA_FUNCTION(0, 1, "BTRXD"),
  183. PXA_FUNCTION(0, 2, "ICP_RXD"),
  184. PXA_FUNCTION(1, 3, "CIF_MCLK")),
  185. PXA_GPIO_PIN(PXA_PINCTRL_PIN(43),
  186. PXA_FUNCTION(0, 3, "CIF_FV"),
  187. PXA_FUNCTION(1, 1, "ICP_TXD"),
  188. PXA_FUNCTION(1, 2, "BTTXD"),
  189. PXA_FUNCTION(1, 3, "CIF_FV")),
  190. PXA_GPIO_PIN(PXA_PINCTRL_PIN(44),
  191. PXA_FUNCTION(0, 1, "BTCTS"),
  192. PXA_FUNCTION(0, 3, "CIF_LV"),
  193. PXA_FUNCTION(1, 3, "CIF_LV")),
  194. PXA_GPIO_PIN(PXA_PINCTRL_PIN(45),
  195. PXA_FUNCTION(0, 3, "CIF_PCLK"),
  196. PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
  197. PXA_FUNCTION(1, 2, "BTRTS"),
  198. PXA_FUNCTION(1, 3, "SSPSYSCLK3")),
  199. PXA_GPIO_PIN(PXA_PINCTRL_PIN(46),
  200. PXA_FUNCTION(0, 1, "ICP_RXD"),
  201. PXA_FUNCTION(0, 2, "STD_RXD"),
  202. PXA_FUNCTION(1, 2, "PWM_OUT<2>")),
  203. PXA_GPIO_PIN(PXA_PINCTRL_PIN(47),
  204. PXA_FUNCTION(0, 1, "CIF_DD<0>"),
  205. PXA_FUNCTION(1, 1, "STD_TXD"),
  206. PXA_FUNCTION(1, 2, "ICP_TXD"),
  207. PXA_FUNCTION(1, 3, "PWM_OUT<3>")),
  208. PXA_GPIO_PIN(PXA_PINCTRL_PIN(48),
  209. PXA_FUNCTION(0, 1, "CIF_DD<5>"),
  210. PXA_FUNCTION(1, 1, "BB_OB_DAT<1>"),
  211. PXA_FUNCTION(1, 2, "nPOE")),
  212. PXA_GPIO_PIN(PXA_PINCTRL_PIN(49),
  213. PXA_FUNCTION(1, 2, "nPWE")),
  214. PXA_GPIO_PIN(PXA_PINCTRL_PIN(50),
  215. PXA_FUNCTION(0, 1, "CIF_DD<3>"),
  216. PXA_FUNCTION(0, 3, "SSPSCLK2"),
  217. PXA_FUNCTION(1, 1, "BB_OB_DAT<2>"),
  218. PXA_FUNCTION(1, 2, "nPIOR"),
  219. PXA_FUNCTION(1, 3, "SSPSCLK2")),
  220. PXA_GPIO_PIN(PXA_PINCTRL_PIN(51),
  221. PXA_FUNCTION(0, 1, "CIF_DD<2>"),
  222. PXA_FUNCTION(1, 1, "BB_OB_DAT<3>"),
  223. PXA_FUNCTION(1, 2, "nPIOW")),
  224. PXA_GPIO_PIN(PXA_PINCTRL_PIN(52),
  225. PXA_FUNCTION(0, 1, "CIF_DD<4>"),
  226. PXA_FUNCTION(0, 2, "SSPSCLK3"),
  227. PXA_FUNCTION(1, 1, "BB_OB_CLK"),
  228. PXA_FUNCTION(1, 2, "SSPSCLK3")),
  229. PXA_GPIO_PIN(PXA_PINCTRL_PIN(53),
  230. PXA_FUNCTION(0, 1, "FFRXD"),
  231. PXA_FUNCTION(0, 2, "USB_P2_3"),
  232. PXA_FUNCTION(1, 1, "BB_OB_STB"),
  233. PXA_FUNCTION(1, 2, "CIF_MCLK"),
  234. PXA_FUNCTION(1, 3, "SSPSYSCLK")),
  235. PXA_GPIO_PIN(PXA_PINCTRL_PIN(54),
  236. PXA_FUNCTION(0, 2, "BB_OB_WAIT"),
  237. PXA_FUNCTION(0, 3, "CIF_PCLK"),
  238. PXA_FUNCTION(1, 2, "nPCE<2>")),
  239. PXA_GPIO_PIN(PXA_PINCTRL_PIN(55),
  240. PXA_FUNCTION(0, 1, "CIF_DD<1>"),
  241. PXA_FUNCTION(0, 2, "BB_IB_DAT<1>"),
  242. PXA_FUNCTION(1, 2, "nPREG")),
  243. PXA_GPIO_PIN(PXA_PINCTRL_PIN(56),
  244. PXA_FUNCTION(0, 1, "nPWAIT"),
  245. PXA_FUNCTION(0, 2, "BB_IB_DAT<2>"),
  246. PXA_FUNCTION(1, 1, "USB_P3_4")),
  247. PXA_GPIO_PIN(PXA_PINCTRL_PIN(57),
  248. PXA_FUNCTION(0, 1, "nIOS16"),
  249. PXA_FUNCTION(0, 2, "BB_IB_DAT<3>"),
  250. PXA_FUNCTION(1, 3, "SSPTXD")),
  251. PXA_GPIO_PIN(PXA_PINCTRL_PIN(58),
  252. PXA_FUNCTION(0, 2, "LDD<0>"),
  253. PXA_FUNCTION(1, 2, "LDD<0>")),
  254. PXA_GPIO_PIN(PXA_PINCTRL_PIN(59),
  255. PXA_FUNCTION(0, 2, "LDD<1>"),
  256. PXA_FUNCTION(1, 2, "LDD<1>")),
  257. PXA_GPIO_PIN(PXA_PINCTRL_PIN(60),
  258. PXA_FUNCTION(0, 2, "LDD<2>"),
  259. PXA_FUNCTION(1, 2, "LDD<2>")),
  260. PXA_GPIO_PIN(PXA_PINCTRL_PIN(61),
  261. PXA_FUNCTION(0, 2, "LDD<3>"),
  262. PXA_FUNCTION(1, 2, "LDD<3>")),
  263. PXA_GPIO_PIN(PXA_PINCTRL_PIN(62),
  264. PXA_FUNCTION(0, 2, "LDD<4>"),
  265. PXA_FUNCTION(1, 2, "LDD<4>")),
  266. PXA_GPIO_PIN(PXA_PINCTRL_PIN(63),
  267. PXA_FUNCTION(0, 2, "LDD<5>"),
  268. PXA_FUNCTION(1, 2, "LDD<5>")),
  269. PXA_GPIO_PIN(PXA_PINCTRL_PIN(64),
  270. PXA_FUNCTION(0, 2, "LDD<6>"),
  271. PXA_FUNCTION(1, 2, "LDD<6>")),
  272. PXA_GPIO_PIN(PXA_PINCTRL_PIN(65),
  273. PXA_FUNCTION(0, 2, "LDD<7>"),
  274. PXA_FUNCTION(1, 2, "LDD<7>")),
  275. PXA_GPIO_PIN(PXA_PINCTRL_PIN(66),
  276. PXA_FUNCTION(0, 2, "LDD<8>"),
  277. PXA_FUNCTION(1, 2, "LDD<8>")),
  278. PXA_GPIO_PIN(PXA_PINCTRL_PIN(67),
  279. PXA_FUNCTION(0, 2, "LDD<9>"),
  280. PXA_FUNCTION(1, 2, "LDD<9>")),
  281. PXA_GPIO_PIN(PXA_PINCTRL_PIN(68),
  282. PXA_FUNCTION(0, 2, "LDD<10>"),
  283. PXA_FUNCTION(1, 2, "LDD<10>")),
  284. PXA_GPIO_PIN(PXA_PINCTRL_PIN(69),
  285. PXA_FUNCTION(0, 2, "LDD<11>"),
  286. PXA_FUNCTION(1, 2, "LDD<11>")),
  287. PXA_GPIO_PIN(PXA_PINCTRL_PIN(70),
  288. PXA_FUNCTION(0, 2, "LDD<12>"),
  289. PXA_FUNCTION(1, 2, "LDD<12>")),
  290. PXA_GPIO_PIN(PXA_PINCTRL_PIN(71),
  291. PXA_FUNCTION(0, 2, "LDD<13>"),
  292. PXA_FUNCTION(1, 2, "LDD<13>")),
  293. PXA_GPIO_PIN(PXA_PINCTRL_PIN(72),
  294. PXA_FUNCTION(0, 2, "LDD<14>"),
  295. PXA_FUNCTION(1, 2, "LDD<14>")),
  296. PXA_GPIO_PIN(PXA_PINCTRL_PIN(73),
  297. PXA_FUNCTION(0, 2, "LDD<15>"),
  298. PXA_FUNCTION(1, 2, "LDD<15>")),
  299. PXA_GPIO_PIN(PXA_PINCTRL_PIN(74),
  300. PXA_FUNCTION(1, 2, "L_FCLK_RD")),
  301. PXA_GPIO_PIN(PXA_PINCTRL_PIN(75),
  302. PXA_FUNCTION(1, 2, "L_LCLK_A0")),
  303. PXA_GPIO_PIN(PXA_PINCTRL_PIN(76),
  304. PXA_FUNCTION(1, 2, "L_PCLK_WR")),
  305. PXA_GPIO_PIN(PXA_PINCTRL_PIN(77),
  306. PXA_FUNCTION(1, 2, "L_BIAS")),
  307. PXA_GPIO_PIN(PXA_PINCTRL_PIN(78),
  308. PXA_FUNCTION(1, 1, "nPCE<2>"),
  309. PXA_FUNCTION(1, 2, "nCS<2>")),
  310. PXA_GPIO_PIN(PXA_PINCTRL_PIN(79),
  311. PXA_FUNCTION(1, 1, "PSKTSEL"),
  312. PXA_FUNCTION(1, 2, "nCS<3>"),
  313. PXA_FUNCTION(1, 3, "PWM_OUT<2>")),
  314. PXA_GPIO_PIN(PXA_PINCTRL_PIN(80),
  315. PXA_FUNCTION(0, 1, "DREQ<1>"),
  316. PXA_FUNCTION(0, 2, "MBREQ"),
  317. PXA_FUNCTION(1, 2, "nCS<4>"),
  318. PXA_FUNCTION(1, 3, "PWM_OUT<3>")),
  319. PXA_GPIO_PIN(PXA_PINCTRL_PIN(81),
  320. PXA_FUNCTION(0, 2, "CIF_DD<0>"),
  321. PXA_FUNCTION(1, 1, "SSPTXD3"),
  322. PXA_FUNCTION(1, 2, "BB_OB_DAT<0>")),
  323. PXA_GPIO_PIN(PXA_PINCTRL_PIN(82),
  324. PXA_FUNCTION(0, 1, "SSPRXD3"),
  325. PXA_FUNCTION(0, 2, "BB_IB_DAT<0>"),
  326. PXA_FUNCTION(0, 3, "CIF_DD<5>"),
  327. PXA_FUNCTION(1, 3, "FFDTR")),
  328. PXA_GPIO_PIN(PXA_PINCTRL_PIN(83),
  329. PXA_FUNCTION(0, 1, "SSPSFRM3"),
  330. PXA_FUNCTION(0, 2, "BB_IB_CLK"),
  331. PXA_FUNCTION(0, 3, "CIF_DD<5>"),
  332. PXA_FUNCTION(1, 1, "SSPSFRM3"),
  333. PXA_FUNCTION(1, 2, "FFTXD"),
  334. PXA_FUNCTION(1, 3, "FFRTS")),
  335. PXA_GPIO_PIN(PXA_PINCTRL_PIN(84),
  336. PXA_FUNCTION(0, 1, "SSPCLK3"),
  337. PXA_FUNCTION(0, 2, "BB_IB_STB"),
  338. PXA_FUNCTION(0, 3, "CIF_FV"),
  339. PXA_FUNCTION(1, 1, "SSPCLK3"),
  340. PXA_FUNCTION(1, 3, "CIF_FV")),
  341. PXA_GPIO_PIN(PXA_PINCTRL_PIN(85),
  342. PXA_FUNCTION(0, 1, "FFRXD"),
  343. PXA_FUNCTION(0, 2, "DREQ<2>"),
  344. PXA_FUNCTION(0, 3, "CIF_LV"),
  345. PXA_FUNCTION(1, 1, "nPCE<1>"),
  346. PXA_FUNCTION(1, 2, "BB_IB_WAIT"),
  347. PXA_FUNCTION(1, 3, "CIF_LV")),
  348. PXA_GPIO_PIN(PXA_PINCTRL_PIN(86),
  349. PXA_FUNCTION(0, 1, "SSPRXD2"),
  350. PXA_FUNCTION(0, 2, "LDD<16>"),
  351. PXA_FUNCTION(0, 3, "USB_P3_5"),
  352. PXA_FUNCTION(1, 1, "nPCE<1>"),
  353. PXA_FUNCTION(1, 2, "LDD<16>")),
  354. PXA_GPIO_PIN(PXA_PINCTRL_PIN(87),
  355. PXA_FUNCTION(0, 1, "nPCE<2>"),
  356. PXA_FUNCTION(0, 2, "LDD<17>"),
  357. PXA_FUNCTION(0, 3, "USB_P3_1"),
  358. PXA_FUNCTION(1, 1, "SSPTXD2"),
  359. PXA_FUNCTION(1, 2, "LDD<17>"),
  360. PXA_FUNCTION(1, 3, "SSPSFRM2")),
  361. PXA_GPIO_PIN(PXA_PINCTRL_PIN(88),
  362. PXA_FUNCTION(0, 1, "USBHPWR<1>"),
  363. PXA_FUNCTION(0, 2, "SSPRXD2"),
  364. PXA_FUNCTION(0, 3, "SSPSFRM2"),
  365. PXA_FUNCTION(1, 2, "SSPTXD2"),
  366. PXA_FUNCTION(1, 3, "SSPSFRM2")),
  367. PXA_GPIO_PIN(PXA_PINCTRL_PIN(89),
  368. PXA_FUNCTION(0, 1, "SSPRXD3"),
  369. PXA_FUNCTION(0, 3, "FFRI"),
  370. PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
  371. PXA_FUNCTION(1, 2, "USBHPEN<1>"),
  372. PXA_FUNCTION(1, 3, "SSPTXD2")),
  373. PXA_GPIO_PIN(PXA_PINCTRL_PIN(90),
  374. PXA_FUNCTION(0, 1, "KP_MKIN<5>"),
  375. PXA_FUNCTION(0, 3, "USB_P3_5"),
  376. PXA_FUNCTION(1, 1, "CIF_DD<4>"),
  377. PXA_FUNCTION(1, 2, "nURST")),
  378. PXA_GPIO_PIN(PXA_PINCTRL_PIN(91),
  379. PXA_FUNCTION(0, 1, "KP_MKIN<6>"),
  380. PXA_FUNCTION(0, 3, "USB_P3_1"),
  381. PXA_FUNCTION(1, 1, "CIF_DD<5>"),
  382. PXA_FUNCTION(1, 2, "UCLK")),
  383. PXA_GPIO_PIN(PXA_PINCTRL_PIN(92),
  384. PXA_FUNCTION(0, 1, "MMDAT<0>"),
  385. PXA_FUNCTION(1, 1, "MMDAT<0>"),
  386. PXA_FUNCTION(1, 2, "MSBS")),
  387. PXA_GPIO_PIN(PXA_PINCTRL_PIN(93),
  388. PXA_FUNCTION(0, 1, "KP_DKIN<0>"),
  389. PXA_FUNCTION(0, 2, "CIF_DD<6>"),
  390. PXA_FUNCTION(1, 1, "AC97_SDATA_OUT")),
  391. PXA_GPIO_PIN(PXA_PINCTRL_PIN(94),
  392. PXA_FUNCTION(0, 1, "KP_DKIN<1>"),
  393. PXA_FUNCTION(0, 2, "CIF_DD<5>"),
  394. PXA_FUNCTION(1, 1, "AC97_SYNC")),
  395. PXA_GPIO_PIN(PXA_PINCTRL_PIN(95),
  396. PXA_FUNCTION(0, 1, "KP_DKIN<2>"),
  397. PXA_FUNCTION(0, 2, "CIF_DD<4>"),
  398. PXA_FUNCTION(0, 3, "KP_MKIN<6>"),
  399. PXA_FUNCTION(1, 1, "AC97_RESET_n")),
  400. PXA_GPIO_PIN(PXA_PINCTRL_PIN(96),
  401. PXA_FUNCTION(0, 1, "KP_DKIN<3>"),
  402. PXA_FUNCTION(0, 2, "MBREQ"),
  403. PXA_FUNCTION(0, 3, "FFRXD"),
  404. PXA_FUNCTION(1, 2, "DVAL<1>"),
  405. PXA_FUNCTION(1, 3, "KP_MKOUT<6>")),
  406. PXA_GPIO_PIN(PXA_PINCTRL_PIN(97),
  407. PXA_FUNCTION(0, 1, "KP_DKIN<4>"),
  408. PXA_FUNCTION(0, 2, "DREQ<1>"),
  409. PXA_FUNCTION(0, 3, "KP_MKIN<3>"),
  410. PXA_FUNCTION(1, 2, "MBGNT")),
  411. PXA_GPIO_PIN(PXA_PINCTRL_PIN(98),
  412. PXA_FUNCTION(0, 1, "KP_DKIN<5>"),
  413. PXA_FUNCTION(0, 2, "CIF_DD<0>"),
  414. PXA_FUNCTION(0, 3, "KP_MKIN<4>"),
  415. PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
  416. PXA_FUNCTION(1, 3, "FFRTS")),
  417. PXA_GPIO_PIN(PXA_PINCTRL_PIN(99),
  418. PXA_FUNCTION(0, 1, "KP_DKIN<6>"),
  419. PXA_FUNCTION(0, 2, "AC97_SDATA_IN_1"),
  420. PXA_FUNCTION(0, 3, "KP_MKIN<5>"),
  421. PXA_FUNCTION(1, 3, "FFTXD")),
  422. PXA_GPIO_PIN(PXA_PINCTRL_PIN(100),
  423. PXA_FUNCTION(0, 1, "KP_MKIN<0>"),
  424. PXA_FUNCTION(0, 2, "DREQ<2>"),
  425. PXA_FUNCTION(0, 3, "FFCTS")),
  426. PXA_GPIO_PIN(PXA_PINCTRL_PIN(101),
  427. PXA_FUNCTION(0, 1, "KP_MKIN<1>")),
  428. PXA_GPIO_PIN(PXA_PINCTRL_PIN(102),
  429. PXA_FUNCTION(0, 1, "KP_MKIN<2>"),
  430. PXA_FUNCTION(0, 3, "FFRXD"),
  431. PXA_FUNCTION(1, 1, "nPCE<1>")),
  432. PXA_GPIO_PIN(PXA_PINCTRL_PIN(103),
  433. PXA_FUNCTION(0, 1, "CIF_DD<3>"),
  434. PXA_FUNCTION(1, 2, "KP_MKOUT<0>")),
  435. PXA_GPIO_PIN(PXA_PINCTRL_PIN(104),
  436. PXA_FUNCTION(0, 1, "CIF_DD<2>"),
  437. PXA_FUNCTION(1, 1, "PSKTSEL"),
  438. PXA_FUNCTION(1, 2, "KP_MKOUT<1>")),
  439. PXA_GPIO_PIN(PXA_PINCTRL_PIN(105),
  440. PXA_FUNCTION(0, 1, "CIF_DD<1>"),
  441. PXA_FUNCTION(1, 1, "nPCE<2>"),
  442. PXA_FUNCTION(1, 2, "KP_MKOUT<2>")),
  443. PXA_GPIO_PIN(PXA_PINCTRL_PIN(106),
  444. PXA_FUNCTION(0, 1, "CIF_DD<9>"),
  445. PXA_FUNCTION(1, 2, "KP_MKOUT<3>")),
  446. PXA_GPIO_PIN(PXA_PINCTRL_PIN(107),
  447. PXA_FUNCTION(0, 1, "CIF_DD<8>"),
  448. PXA_FUNCTION(1, 2, "KP_MKOUT<4>")),
  449. PXA_GPIO_PIN(PXA_PINCTRL_PIN(108),
  450. PXA_FUNCTION(0, 1, "CIF_DD<7>"),
  451. PXA_FUNCTION(1, 1, "CHOUT<0>"),
  452. PXA_FUNCTION(1, 2, "KP_MKOUT<5>")),
  453. PXA_GPIO_PIN(PXA_PINCTRL_PIN(109),
  454. PXA_FUNCTION(0, 1, "MMDAT<1>"),
  455. PXA_FUNCTION(0, 2, "MSSDIO"),
  456. PXA_FUNCTION(1, 1, "MMDAT<1>"),
  457. PXA_FUNCTION(1, 2, "MSSDIO")),
  458. PXA_GPIO_PIN(PXA_PINCTRL_PIN(110),
  459. PXA_FUNCTION(0, 1, "MMDAT<2>"),
  460. PXA_FUNCTION(1, 1, "MMDAT<2>")),
  461. PXA_GPIO_PIN(PXA_PINCTRL_PIN(111),
  462. PXA_FUNCTION(0, 1, "MMDAT<3>"),
  463. PXA_FUNCTION(1, 1, "MMDAT<3>")),
  464. PXA_GPIO_PIN(PXA_PINCTRL_PIN(112),
  465. PXA_FUNCTION(0, 1, "MMCMD"),
  466. PXA_FUNCTION(0, 2, "nMSINS"),
  467. PXA_FUNCTION(1, 1, "MMCMD")),
  468. PXA_GPIO_PIN(PXA_PINCTRL_PIN(113),
  469. PXA_FUNCTION(0, 3, "USB_P3_3"),
  470. PXA_FUNCTION(1, 1, "I2S_SYSCLK"),
  471. PXA_FUNCTION(1, 2, "AC97_RESET_n")),
  472. PXA_GPIO_PIN(PXA_PINCTRL_PIN(114),
  473. PXA_FUNCTION(0, 1, "CIF_DD<1>"),
  474. PXA_FUNCTION(1, 1, "UEN"),
  475. PXA_FUNCTION(1, 2, "UVS0")),
  476. PXA_GPIO_PIN(PXA_PINCTRL_PIN(115),
  477. PXA_FUNCTION(0, 1, "DREQ<0>"),
  478. PXA_FUNCTION(0, 2, "CIF_DD<3>"),
  479. PXA_FUNCTION(0, 3, "MBREQ"),
  480. PXA_FUNCTION(1, 1, "UEN"),
  481. PXA_FUNCTION(1, 2, "nUVS1"),
  482. PXA_FUNCTION(1, 3, "PWM_OUT<1>")),
  483. PXA_GPIO_PIN(PXA_PINCTRL_PIN(116),
  484. PXA_FUNCTION(0, 1, "CIF_DD<2>"),
  485. PXA_FUNCTION(0, 2, "AC97_SDATA_IN_0"),
  486. PXA_FUNCTION(0, 3, "UDET"),
  487. PXA_FUNCTION(1, 1, "DVAL<0>"),
  488. PXA_FUNCTION(1, 2, "nUVS2"),
  489. PXA_FUNCTION(1, 3, "MBGNT")),
  490. PXA_GPIO_PIN(PXA_PINCTRL_PIN(117),
  491. PXA_FUNCTION(0, 1, "SCL"),
  492. PXA_FUNCTION(1, 1, "SCL")),
  493. PXA_GPIO_PIN(PXA_PINCTRL_PIN(118),
  494. PXA_FUNCTION(0, 1, "SDA"),
  495. PXA_FUNCTION(1, 1, "SDA")),
  496. PXA_GPIO_PIN(PXA_PINCTRL_PIN(119),
  497. PXA_FUNCTION(0, 1, "USBHPWR<2>")),
  498. PXA_GPIO_PIN(PXA_PINCTRL_PIN(120),
  499. PXA_FUNCTION(1, 2, "USBHPEN<2>")),
  500. };
  501. static int pxa27x_pinctrl_probe(struct platform_device *pdev)
  502. {
  503. int i;
  504. void __iomem *base_af[8];
  505. void __iomem *base_dir[4];
  506. void __iomem *base_sleep[4];
  507. base_af[0] = devm_platform_ioremap_resource(pdev, 0);
  508. if (IS_ERR(base_af[0]))
  509. return PTR_ERR(base_af[0]);
  510. base_dir[0] = devm_platform_ioremap_resource(pdev, 1);
  511. if (IS_ERR(base_dir[0]))
  512. return PTR_ERR(base_dir[0]);
  513. base_dir[3] = devm_platform_ioremap_resource(pdev, 2);
  514. if (IS_ERR(base_dir[3]))
  515. return PTR_ERR(base_dir[3]);
  516. base_sleep[0] = devm_platform_ioremap_resource(pdev, 3);
  517. if (IS_ERR(base_sleep[0]))
  518. return PTR_ERR(base_sleep[0]);
  519. for (i = 0; i < ARRAY_SIZE(base_af); i++)
  520. base_af[i] = base_af[0] + sizeof(base_af[0]) * i;
  521. for (i = 0; i < 3; i++)
  522. base_dir[i] = base_dir[0] + sizeof(base_dir[0]) * i;
  523. for (i = 0; i < ARRAY_SIZE(base_sleep); i++)
  524. base_sleep[i] = base_sleep[0] + sizeof(base_af[0]) * i;
  525. return pxa2xx_pinctrl_init(pdev, pxa27x_pins, ARRAY_SIZE(pxa27x_pins),
  526. base_af, base_dir, base_sleep);
  527. }
  528. static const struct of_device_id pxa27x_pinctrl_match[] = {
  529. { .compatible = "marvell,pxa27x-pinctrl", },
  530. {}
  531. };
  532. MODULE_DEVICE_TABLE(of, pxa27x_pinctrl_match);
  533. static struct platform_driver pxa27x_pinctrl_driver = {
  534. .probe = pxa27x_pinctrl_probe,
  535. .driver = {
  536. .name = "pxa27x-pinctrl",
  537. .of_match_table = pxa27x_pinctrl_match,
  538. },
  539. };
  540. module_platform_driver(pxa27x_pinctrl_driver);
  541. MODULE_AUTHOR("Robert Jarzmik <robert.jarzmik@free.fr>");
  542. MODULE_DESCRIPTION("Marvell PXA27x pinctrl driver");
  543. MODULE_LICENSE("GPL v2");