pinctrl-pxa27x.c 20 KB

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