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