Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Marvell PXA27x family pin control
0004  *
0005  * Copyright (C) 2015 Robert Jarzmik
0006  */
0007 #include <linux/module.h>
0008 #include <linux/platform_device.h>
0009 #include <linux/of.h>
0010 #include <linux/of_device.h>
0011 #include <linux/pinctrl/pinctrl.h>
0012 
0013 #include "pinctrl-pxa2xx.h"
0014 
0015 static const struct pxa_desc_pin pxa27x_pins[] = {
0016     PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(0)),
0017     PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(1)),
0018     PXA_GPIO_PIN(PXA_PINCTRL_PIN(9),
0019              PXA_FUNCTION(0, 3, "FFCTS"),
0020              PXA_FUNCTION(1, 1, "HZ_CLK"),
0021              PXA_FUNCTION(1, 3, "CHOUT<0>")),
0022     PXA_GPIO_PIN(PXA_PINCTRL_PIN(10),
0023              PXA_FUNCTION(0, 1, "FFDCD"),
0024              PXA_FUNCTION(0, 3, "USB_P3_5"),
0025              PXA_FUNCTION(1, 1, "HZ_CLK"),
0026              PXA_FUNCTION(1, 3, "CHOUT<1>")),
0027     PXA_GPIO_PIN(PXA_PINCTRL_PIN(11),
0028              PXA_FUNCTION(0, 1, "EXT_SYNC<0>"),
0029              PXA_FUNCTION(0, 2, "SSPRXD2"),
0030              PXA_FUNCTION(0, 3, "USB_P3_1"),
0031              PXA_FUNCTION(1, 1, "CHOUT<0>"),
0032              PXA_FUNCTION(1, 1, "PWM_OUT<2>"),
0033              PXA_FUNCTION(1, 3, "48_MHz")),
0034     PXA_GPIO_PIN(PXA_PINCTRL_PIN(12),
0035              PXA_FUNCTION(0, 1, "EXT_SYNC<1>"),
0036              PXA_FUNCTION(0, 2, "CIF_DD<7>"),
0037              PXA_FUNCTION(1, 1, "CHOUT<1>"),
0038              PXA_FUNCTION(1, 1, "PWM_OUT<3>"),
0039              PXA_FUNCTION(1, 3, "48_MHz")),
0040     PXA_GPIO_PIN(PXA_PINCTRL_PIN(13),
0041              PXA_FUNCTION(0, 1, "CLK_EXT"),
0042              PXA_FUNCTION(0, 2, "KP_DKIN<7>"),
0043              PXA_FUNCTION(0, 3, "KP_MKIN<7>"),
0044              PXA_FUNCTION(1, 1, "SSPTXD2")),
0045     PXA_GPIO_PIN(PXA_PINCTRL_PIN(14),
0046              PXA_FUNCTION(0, 1, "L_VSYNC"),
0047              PXA_FUNCTION(0, 2, "SSPSFRM2"),
0048              PXA_FUNCTION(1, 1, "SSPSFRM2"),
0049              PXA_FUNCTION(1, 3, "UCLK")),
0050     PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(15)),
0051     PXA_GPIO_PIN(PXA_PINCTRL_PIN(16),
0052              PXA_FUNCTION(0, 1, "KP_MKIN<5>"),
0053              PXA_FUNCTION(1, 2, "PWM_OUT<0>"),
0054              PXA_FUNCTION(1, 3, "FFTXD")),
0055     PXA_GPIO_PIN(PXA_PINCTRL_PIN(17),
0056              PXA_FUNCTION(0, 1, "KP_MKIN<6>"),
0057              PXA_FUNCTION(0, 2, "CIF_DD<6>"),
0058              PXA_FUNCTION(1, 2, "PWM_OUT<1>")),
0059     PXA_GPIO_PIN(PXA_PINCTRL_PIN(18),
0060              PXA_FUNCTION(0, 1, "RDY")),
0061     PXA_GPIO_PIN(PXA_PINCTRL_PIN(19),
0062              PXA_FUNCTION(0, 1, "SSPSCLK2"),
0063              PXA_FUNCTION(0, 3, "FFRXD"),
0064              PXA_FUNCTION(1, 1, "SSPSCLK2"),
0065              PXA_FUNCTION(1, 2, "L_CS"),
0066              PXA_FUNCTION(1, 3, "nURST")),
0067     PXA_GPIO_PIN(PXA_PINCTRL_PIN(20),
0068              PXA_FUNCTION(0, 1, "DREQ<0>"),
0069              PXA_FUNCTION(0, 2, "MBREQ"),
0070              PXA_FUNCTION(1, 1, "nSDCS<2>")),
0071     PXA_GPIO_PIN(PXA_PINCTRL_PIN(21),
0072              PXA_FUNCTION(1, 1, "nSDCS<3>"),
0073              PXA_FUNCTION(1, 2, "DVAL<0>"),
0074              PXA_FUNCTION(1, 3, "MBGNT")),
0075     PXA_GPIO_PIN(PXA_PINCTRL_PIN(22),
0076              PXA_FUNCTION(0, 1, "SSPEXTCLK2"),
0077              PXA_FUNCTION(0, 2, "SSPSCLKEN2"),
0078              PXA_FUNCTION(0, 3, "SSPSCLK2"),
0079              PXA_FUNCTION(1, 1, "KP_MKOUT<7>"),
0080              PXA_FUNCTION(1, 2, "SSPSYSCLK2"),
0081              PXA_FUNCTION(1, 3, "SSPSCLK2")),
0082     PXA_GPIO_PIN(PXA_PINCTRL_PIN(23),
0083              PXA_FUNCTION(0, 2, "SSPSCLK"),
0084              PXA_FUNCTION(1, 1, "CIF_MCLK"),
0085              PXA_FUNCTION(1, 1, "SSPSCLK")),
0086     PXA_GPIO_PIN(PXA_PINCTRL_PIN(24),
0087              PXA_FUNCTION(0, 1, "CIF_FV"),
0088              PXA_FUNCTION(0, 2, "SSPSFRM"),
0089              PXA_FUNCTION(1, 1, "CIF_FV"),
0090              PXA_FUNCTION(1, 2, "SSPSFRM")),
0091     PXA_GPIO_PIN(PXA_PINCTRL_PIN(25),
0092              PXA_FUNCTION(0, 1, "CIF_LV"),
0093              PXA_FUNCTION(1, 1, "CIF_LV"),
0094              PXA_FUNCTION(1, 2, "SSPTXD")),
0095     PXA_GPIO_PIN(PXA_PINCTRL_PIN(26),
0096              PXA_FUNCTION(0, 1, "SSPRXD"),
0097              PXA_FUNCTION(0, 2, "CIF_PCLK"),
0098              PXA_FUNCTION(0, 3, "FFCTS")),
0099     PXA_GPIO_PIN(PXA_PINCTRL_PIN(27),
0100              PXA_FUNCTION(0, 1, "SSPEXTCLK"),
0101              PXA_FUNCTION(0, 2, "SSPSCLKEN"),
0102              PXA_FUNCTION(0, 3, "CIF_DD<0>"),
0103              PXA_FUNCTION(1, 1, "SSPSYSCLK"),
0104              PXA_FUNCTION(1, 3, "FFRTS")),
0105     PXA_GPIO_PIN(PXA_PINCTRL_PIN(28),
0106              PXA_FUNCTION(0, 1, "AC97_BITCLK"),
0107              PXA_FUNCTION(0, 2, "I2S_BITCLK"),
0108              PXA_FUNCTION(0, 3, "SSPSFRM"),
0109              PXA_FUNCTION(1, 1, "I2S_BITCLK"),
0110              PXA_FUNCTION(1, 3, "SSPSFRM")),
0111     PXA_GPIO_PIN(PXA_PINCTRL_PIN(29),
0112              PXA_FUNCTION(0, 1, "AC97_SDATA_IN_0"),
0113              PXA_FUNCTION(0, 2, "I2S_SDATA_IN"),
0114              PXA_FUNCTION(0, 3, "SSPSCLK"),
0115              PXA_FUNCTION(1, 1, "SSPRXD2"),
0116              PXA_FUNCTION(1, 3, "SSPSCLK")),
0117     PXA_GPIO_PIN(PXA_PINCTRL_PIN(30),
0118              PXA_FUNCTION(1, 1, "I2S_SDATA_OUT"),
0119              PXA_FUNCTION(1, 2, "AC97_SDATA_OUT"),
0120              PXA_FUNCTION(1, 3, "USB_P3_2")),
0121     PXA_GPIO_PIN(PXA_PINCTRL_PIN(31),
0122              PXA_FUNCTION(1, 1, "I2S_SYNC"),
0123              PXA_FUNCTION(1, 2, "AC97_SYNC"),
0124              PXA_FUNCTION(1, 3, "USB_P3_6")),
0125     PXA_GPIO_PIN(PXA_PINCTRL_PIN(32),
0126              PXA_FUNCTION(1, 1, "MSSCLK"),
0127              PXA_FUNCTION(1, 2, "MMCLK")),
0128     PXA_GPIO_PIN(PXA_PINCTRL_PIN(33),
0129              PXA_FUNCTION(0, 1, "FFRXD"),
0130              PXA_FUNCTION(0, 2, "FFDSR"),
0131              PXA_FUNCTION(1, 1, "DVAL<1>"),
0132              PXA_FUNCTION(1, 2, "nCS<5>"),
0133              PXA_FUNCTION(1, 3, "MBGNT")),
0134     PXA_GPIO_PIN(PXA_PINCTRL_PIN(34),
0135              PXA_FUNCTION(0, 1, "FFRXD"),
0136              PXA_FUNCTION(0, 2, "KP_MKIN<3>"),
0137              PXA_FUNCTION(0, 3, "SSPSCLK3"),
0138              PXA_FUNCTION(1, 1, "USB_P2_2"),
0139              PXA_FUNCTION(1, 3, "SSPSCLK3")),
0140     PXA_GPIO_PIN(PXA_PINCTRL_PIN(35),
0141              PXA_FUNCTION(0, 1, "FFCTS"),
0142              PXA_FUNCTION(0, 2, "USB_P2_1"),
0143              PXA_FUNCTION(0, 3, "SSPSFRM3"),
0144              PXA_FUNCTION(1, 2, "KP_MKOUT<6>"),
0145              PXA_FUNCTION(1, 3, "SSPTXD3")),
0146     PXA_GPIO_PIN(PXA_PINCTRL_PIN(36),
0147              PXA_FUNCTION(0, 1, "FFDCD"),
0148              PXA_FUNCTION(0, 2, "SSPSCLK2"),
0149              PXA_FUNCTION(0, 3, "KP_MKIN<7>"),
0150              PXA_FUNCTION(1, 1, "USB_P2_4"),
0151              PXA_FUNCTION(1, 2, "SSPSCLK2")),
0152     PXA_GPIO_PIN(PXA_PINCTRL_PIN(37),
0153              PXA_FUNCTION(0, 1, "FFDSR"),
0154              PXA_FUNCTION(0, 2, "SSPSFRM2"),
0155              PXA_FUNCTION(0, 3, "KP_MKIN<3>"),
0156              PXA_FUNCTION(1, 1, "USB_P2_8"),
0157              PXA_FUNCTION(1, 2, "SSPSFRM2"),
0158              PXA_FUNCTION(1, 3, "FFTXD")),
0159     PXA_GPIO_PIN(PXA_PINCTRL_PIN(38),
0160              PXA_FUNCTION(0, 1, "FFRI"),
0161              PXA_FUNCTION(0, 2, "KP_MKIN<4>"),
0162              PXA_FUNCTION(0, 3, "USB_P2_3"),
0163              PXA_FUNCTION(1, 1, "SSPTXD3"),
0164              PXA_FUNCTION(1, 2, "SSPTXD2"),
0165              PXA_FUNCTION(1, 3, "PWM_OUT<0>")),
0166     PXA_GPIO_PIN(PXA_PINCTRL_PIN(39),
0167              PXA_FUNCTION(0, 1, "KP_MKIN<4>"),
0168              PXA_FUNCTION(0, 3, "SSPSFRM3"),
0169              PXA_FUNCTION(1, 1, "USB_P2_6"),
0170              PXA_FUNCTION(1, 2, "FFTXD"),
0171              PXA_FUNCTION(1, 3, "SSPSFRM3")),
0172     PXA_GPIO_PIN(PXA_PINCTRL_PIN(40),
0173              PXA_FUNCTION(0, 1, "SSPRXD2"),
0174              PXA_FUNCTION(0, 3, "USB_P2_5"),
0175              PXA_FUNCTION(1, 1, "KP_MKOUT<6>"),
0176              PXA_FUNCTION(1, 2, "FFDTR"),
0177              PXA_FUNCTION(1, 3, "SSPSCLK3")),
0178     PXA_GPIO_PIN(PXA_PINCTRL_PIN(41),
0179              PXA_FUNCTION(0, 1, "FFRXD"),
0180              PXA_FUNCTION(0, 2, "USB_P2_7"),
0181              PXA_FUNCTION(0, 3, "SSPRXD3"),
0182              PXA_FUNCTION(1, 1, "KP_MKOUT<7>"),
0183              PXA_FUNCTION(1, 2, "FFRTS")),
0184     PXA_GPIO_PIN(PXA_PINCTRL_PIN(42),
0185              PXA_FUNCTION(0, 1, "BTRXD"),
0186              PXA_FUNCTION(0, 2, "ICP_RXD"),
0187              PXA_FUNCTION(1, 3, "CIF_MCLK")),
0188     PXA_GPIO_PIN(PXA_PINCTRL_PIN(43),
0189              PXA_FUNCTION(0, 3, "CIF_FV"),
0190              PXA_FUNCTION(1, 1, "ICP_TXD"),
0191              PXA_FUNCTION(1, 2, "BTTXD"),
0192              PXA_FUNCTION(1, 3, "CIF_FV")),
0193     PXA_GPIO_PIN(PXA_PINCTRL_PIN(44),
0194              PXA_FUNCTION(0, 1, "BTCTS"),
0195              PXA_FUNCTION(0, 3, "CIF_LV"),
0196              PXA_FUNCTION(1, 3, "CIF_LV")),
0197     PXA_GPIO_PIN(PXA_PINCTRL_PIN(45),
0198              PXA_FUNCTION(0, 3, "CIF_PCLK"),
0199              PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
0200              PXA_FUNCTION(1, 2, "BTRTS"),
0201              PXA_FUNCTION(1, 3, "SSPSYSCLK3")),
0202     PXA_GPIO_PIN(PXA_PINCTRL_PIN(46),
0203              PXA_FUNCTION(0, 1, "ICP_RXD"),
0204              PXA_FUNCTION(0, 2, "STD_RXD"),
0205              PXA_FUNCTION(1, 2, "PWM_OUT<2>")),
0206     PXA_GPIO_PIN(PXA_PINCTRL_PIN(47),
0207              PXA_FUNCTION(0, 1, "CIF_DD<0>"),
0208              PXA_FUNCTION(1, 1, "STD_TXD"),
0209              PXA_FUNCTION(1, 2, "ICP_TXD"),
0210              PXA_FUNCTION(1, 3, "PWM_OUT<3>")),
0211     PXA_GPIO_PIN(PXA_PINCTRL_PIN(48),
0212              PXA_FUNCTION(0, 1, "CIF_DD<5>"),
0213              PXA_FUNCTION(1, 1, "BB_OB_DAT<1>"),
0214              PXA_FUNCTION(1, 2, "nPOE")),
0215     PXA_GPIO_PIN(PXA_PINCTRL_PIN(49),
0216              PXA_FUNCTION(1, 2, "nPWE")),
0217     PXA_GPIO_PIN(PXA_PINCTRL_PIN(50),
0218              PXA_FUNCTION(0, 1, "CIF_DD<3>"),
0219              PXA_FUNCTION(0, 3, "SSPSCLK2"),
0220              PXA_FUNCTION(1, 1, "BB_OB_DAT<2>"),
0221              PXA_FUNCTION(1, 2, "nPIOR"),
0222              PXA_FUNCTION(1, 3, "SSPSCLK2")),
0223     PXA_GPIO_PIN(PXA_PINCTRL_PIN(51),
0224              PXA_FUNCTION(0, 1, "CIF_DD<2>"),
0225              PXA_FUNCTION(1, 1, "BB_OB_DAT<3>"),
0226              PXA_FUNCTION(1, 2, "nPIOW")),
0227     PXA_GPIO_PIN(PXA_PINCTRL_PIN(52),
0228              PXA_FUNCTION(0, 1, "CIF_DD<4>"),
0229              PXA_FUNCTION(0, 2, "SSPSCLK3"),
0230              PXA_FUNCTION(1, 1, "BB_OB_CLK"),
0231              PXA_FUNCTION(1, 2, "SSPSCLK3")),
0232     PXA_GPIO_PIN(PXA_PINCTRL_PIN(53),
0233              PXA_FUNCTION(0, 1, "FFRXD"),
0234              PXA_FUNCTION(0, 2, "USB_P2_3"),
0235              PXA_FUNCTION(1, 1, "BB_OB_STB"),
0236              PXA_FUNCTION(1, 2, "CIF_MCLK"),
0237              PXA_FUNCTION(1, 3, "SSPSYSCLK")),
0238     PXA_GPIO_PIN(PXA_PINCTRL_PIN(54),
0239              PXA_FUNCTION(0, 2, "BB_OB_WAIT"),
0240              PXA_FUNCTION(0, 3, "CIF_PCLK"),
0241              PXA_FUNCTION(1, 2, "nPCE<2>")),
0242     PXA_GPIO_PIN(PXA_PINCTRL_PIN(55),
0243              PXA_FUNCTION(0, 1, "CIF_DD<1>"),
0244              PXA_FUNCTION(0, 2, "BB_IB_DAT<1>"),
0245              PXA_FUNCTION(1, 2, "nPREG")),
0246     PXA_GPIO_PIN(PXA_PINCTRL_PIN(56),
0247              PXA_FUNCTION(0, 1, "nPWAIT"),
0248              PXA_FUNCTION(0, 2, "BB_IB_DAT<2>"),
0249              PXA_FUNCTION(1, 1, "USB_P3_4")),
0250     PXA_GPIO_PIN(PXA_PINCTRL_PIN(57),
0251              PXA_FUNCTION(0, 1, "nIOS16"),
0252              PXA_FUNCTION(0, 2, "BB_IB_DAT<3>"),
0253              PXA_FUNCTION(1, 3, "SSPTXD")),
0254     PXA_GPIO_PIN(PXA_PINCTRL_PIN(58),
0255              PXA_FUNCTION(0, 2, "LDD<0>"),
0256              PXA_FUNCTION(1, 2, "LDD<0>")),
0257     PXA_GPIO_PIN(PXA_PINCTRL_PIN(59),
0258              PXA_FUNCTION(0, 2, "LDD<1>"),
0259              PXA_FUNCTION(1, 2, "LDD<1>")),
0260     PXA_GPIO_PIN(PXA_PINCTRL_PIN(60),
0261              PXA_FUNCTION(0, 2, "LDD<2>"),
0262              PXA_FUNCTION(1, 2, "LDD<2>")),
0263     PXA_GPIO_PIN(PXA_PINCTRL_PIN(61),
0264              PXA_FUNCTION(0, 2, "LDD<3>"),
0265              PXA_FUNCTION(1, 2, "LDD<3>")),
0266     PXA_GPIO_PIN(PXA_PINCTRL_PIN(62),
0267              PXA_FUNCTION(0, 2, "LDD<4>"),
0268              PXA_FUNCTION(1, 2, "LDD<4>")),
0269     PXA_GPIO_PIN(PXA_PINCTRL_PIN(63),
0270              PXA_FUNCTION(0, 2, "LDD<5>"),
0271              PXA_FUNCTION(1, 2, "LDD<5>")),
0272     PXA_GPIO_PIN(PXA_PINCTRL_PIN(64),
0273              PXA_FUNCTION(0, 2, "LDD<6>"),
0274              PXA_FUNCTION(1, 2, "LDD<6>")),
0275     PXA_GPIO_PIN(PXA_PINCTRL_PIN(65),
0276              PXA_FUNCTION(0, 2, "LDD<7>"),
0277              PXA_FUNCTION(1, 2, "LDD<7>")),
0278     PXA_GPIO_PIN(PXA_PINCTRL_PIN(66),
0279              PXA_FUNCTION(0, 2, "LDD<8>"),
0280              PXA_FUNCTION(1, 2, "LDD<8>")),
0281     PXA_GPIO_PIN(PXA_PINCTRL_PIN(67),
0282              PXA_FUNCTION(0, 2, "LDD<9>"),
0283              PXA_FUNCTION(1, 2, "LDD<9>")),
0284     PXA_GPIO_PIN(PXA_PINCTRL_PIN(68),
0285              PXA_FUNCTION(0, 2, "LDD<10>"),
0286              PXA_FUNCTION(1, 2, "LDD<10>")),
0287     PXA_GPIO_PIN(PXA_PINCTRL_PIN(69),
0288              PXA_FUNCTION(0, 2, "LDD<11>"),
0289              PXA_FUNCTION(1, 2, "LDD<11>")),
0290     PXA_GPIO_PIN(PXA_PINCTRL_PIN(70),
0291              PXA_FUNCTION(0, 2, "LDD<12>"),
0292              PXA_FUNCTION(1, 2, "LDD<12>")),
0293     PXA_GPIO_PIN(PXA_PINCTRL_PIN(71),
0294              PXA_FUNCTION(0, 2, "LDD<13>"),
0295              PXA_FUNCTION(1, 2, "LDD<13>")),
0296     PXA_GPIO_PIN(PXA_PINCTRL_PIN(72),
0297              PXA_FUNCTION(0, 2, "LDD<14>"),
0298              PXA_FUNCTION(1, 2, "LDD<14>")),
0299     PXA_GPIO_PIN(PXA_PINCTRL_PIN(73),
0300              PXA_FUNCTION(0, 2, "LDD<15>"),
0301              PXA_FUNCTION(1, 2, "LDD<15>")),
0302     PXA_GPIO_PIN(PXA_PINCTRL_PIN(74),
0303              PXA_FUNCTION(1, 2, "L_FCLK_RD")),
0304     PXA_GPIO_PIN(PXA_PINCTRL_PIN(75),
0305              PXA_FUNCTION(1, 2, "L_LCLK_A0")),
0306     PXA_GPIO_PIN(PXA_PINCTRL_PIN(76),
0307              PXA_FUNCTION(1, 2, "L_PCLK_WR")),
0308     PXA_GPIO_PIN(PXA_PINCTRL_PIN(77),
0309              PXA_FUNCTION(1, 2, "L_BIAS")),
0310     PXA_GPIO_PIN(PXA_PINCTRL_PIN(78),
0311              PXA_FUNCTION(1, 1, "nPCE<2>"),
0312              PXA_FUNCTION(1, 2, "nCS<2>")),
0313     PXA_GPIO_PIN(PXA_PINCTRL_PIN(79),
0314              PXA_FUNCTION(1, 1, "PSKTSEL"),
0315              PXA_FUNCTION(1, 2, "nCS<3>"),
0316              PXA_FUNCTION(1, 3, "PWM_OUT<2>")),
0317     PXA_GPIO_PIN(PXA_PINCTRL_PIN(80),
0318              PXA_FUNCTION(0, 1, "DREQ<1>"),
0319              PXA_FUNCTION(0, 2, "MBREQ"),
0320              PXA_FUNCTION(1, 2, "nCS<4>"),
0321              PXA_FUNCTION(1, 3, "PWM_OUT<3>")),
0322     PXA_GPIO_PIN(PXA_PINCTRL_PIN(81),
0323              PXA_FUNCTION(0, 2, "CIF_DD<0>"),
0324              PXA_FUNCTION(1, 1, "SSPTXD3"),
0325              PXA_FUNCTION(1, 2, "BB_OB_DAT<0>")),
0326     PXA_GPIO_PIN(PXA_PINCTRL_PIN(82),
0327              PXA_FUNCTION(0, 1, "SSPRXD3"),
0328              PXA_FUNCTION(0, 2, "BB_IB_DAT<0>"),
0329              PXA_FUNCTION(0, 3, "CIF_DD<5>"),
0330              PXA_FUNCTION(1, 3, "FFDTR")),
0331     PXA_GPIO_PIN(PXA_PINCTRL_PIN(83),
0332              PXA_FUNCTION(0, 1, "SSPSFRM3"),
0333              PXA_FUNCTION(0, 2, "BB_IB_CLK"),
0334              PXA_FUNCTION(0, 3, "CIF_DD<5>"),
0335              PXA_FUNCTION(1, 1, "SSPSFRM3"),
0336              PXA_FUNCTION(1, 2, "FFTXD"),
0337              PXA_FUNCTION(1, 3, "FFRTS")),
0338     PXA_GPIO_PIN(PXA_PINCTRL_PIN(84),
0339              PXA_FUNCTION(0, 1, "SSPCLK3"),
0340              PXA_FUNCTION(0, 2, "BB_IB_STB"),
0341              PXA_FUNCTION(0, 3, "CIF_FV"),
0342              PXA_FUNCTION(1, 1, "SSPCLK3"),
0343              PXA_FUNCTION(1, 3, "CIF_FV")),
0344     PXA_GPIO_PIN(PXA_PINCTRL_PIN(85),
0345              PXA_FUNCTION(0, 1, "FFRXD"),
0346              PXA_FUNCTION(0, 2, "DREQ<2>"),
0347              PXA_FUNCTION(0, 3, "CIF_LV"),
0348              PXA_FUNCTION(1, 1, "nPCE<1>"),
0349              PXA_FUNCTION(1, 2, "BB_IB_WAIT"),
0350              PXA_FUNCTION(1, 3, "CIF_LV")),
0351     PXA_GPIO_PIN(PXA_PINCTRL_PIN(86),
0352              PXA_FUNCTION(0, 1, "SSPRXD2"),
0353              PXA_FUNCTION(0, 2, "LDD<16>"),
0354              PXA_FUNCTION(0, 3, "USB_P3_5"),
0355              PXA_FUNCTION(1, 1, "nPCE<1>"),
0356              PXA_FUNCTION(1, 2, "LDD<16>")),
0357     PXA_GPIO_PIN(PXA_PINCTRL_PIN(87),
0358              PXA_FUNCTION(0, 1, "nPCE<2>"),
0359              PXA_FUNCTION(0, 2, "LDD<17>"),
0360              PXA_FUNCTION(0, 3, "USB_P3_1"),
0361              PXA_FUNCTION(1, 1, "SSPTXD2"),
0362              PXA_FUNCTION(1, 2, "LDD<17>"),
0363              PXA_FUNCTION(1, 3, "SSPSFRM2")),
0364     PXA_GPIO_PIN(PXA_PINCTRL_PIN(88),
0365              PXA_FUNCTION(0, 1, "USBHPWR<1>"),
0366              PXA_FUNCTION(0, 2, "SSPRXD2"),
0367              PXA_FUNCTION(0, 3, "SSPSFRM2"),
0368              PXA_FUNCTION(1, 2, "SSPTXD2"),
0369              PXA_FUNCTION(1, 3, "SSPSFRM2")),
0370     PXA_GPIO_PIN(PXA_PINCTRL_PIN(89),
0371              PXA_FUNCTION(0, 1, "SSPRXD3"),
0372              PXA_FUNCTION(0, 3, "FFRI"),
0373              PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
0374              PXA_FUNCTION(1, 2, "USBHPEN<1>"),
0375              PXA_FUNCTION(1, 3, "SSPTXD2")),
0376     PXA_GPIO_PIN(PXA_PINCTRL_PIN(90),
0377              PXA_FUNCTION(0, 1, "KP_MKIN<5>"),
0378              PXA_FUNCTION(0, 3, "USB_P3_5"),
0379              PXA_FUNCTION(1, 1, "CIF_DD<4>"),
0380              PXA_FUNCTION(1, 2, "nURST")),
0381     PXA_GPIO_PIN(PXA_PINCTRL_PIN(91),
0382              PXA_FUNCTION(0, 1, "KP_MKIN<6>"),
0383              PXA_FUNCTION(0, 3, "USB_P3_1"),
0384              PXA_FUNCTION(1, 1, "CIF_DD<5>"),
0385              PXA_FUNCTION(1, 2, "UCLK")),
0386     PXA_GPIO_PIN(PXA_PINCTRL_PIN(92),
0387              PXA_FUNCTION(0, 1, "MMDAT<0>"),
0388              PXA_FUNCTION(1, 1, "MMDAT<0>"),
0389              PXA_FUNCTION(1, 2, "MSBS")),
0390     PXA_GPIO_PIN(PXA_PINCTRL_PIN(93),
0391              PXA_FUNCTION(0, 1, "KP_DKIN<0>"),
0392              PXA_FUNCTION(0, 2, "CIF_DD<6>"),
0393              PXA_FUNCTION(1, 1, "AC97_SDATA_OUT")),
0394     PXA_GPIO_PIN(PXA_PINCTRL_PIN(94),
0395              PXA_FUNCTION(0, 1, "KP_DKIN<1>"),
0396              PXA_FUNCTION(0, 2, "CIF_DD<5>"),
0397              PXA_FUNCTION(1, 1, "AC97_SYNC")),
0398     PXA_GPIO_PIN(PXA_PINCTRL_PIN(95),
0399              PXA_FUNCTION(0, 1, "KP_DKIN<2>"),
0400              PXA_FUNCTION(0, 2, "CIF_DD<4>"),
0401              PXA_FUNCTION(0, 3, "KP_MKIN<6>"),
0402              PXA_FUNCTION(1, 1, "AC97_RESET_n")),
0403     PXA_GPIO_PIN(PXA_PINCTRL_PIN(96),
0404              PXA_FUNCTION(0, 1, "KP_DKIN<3>"),
0405              PXA_FUNCTION(0, 2, "MBREQ"),
0406              PXA_FUNCTION(0, 3, "FFRXD"),
0407              PXA_FUNCTION(1, 2, "DVAL<1>"),
0408              PXA_FUNCTION(1, 3, "KP_MKOUT<6>")),
0409     PXA_GPIO_PIN(PXA_PINCTRL_PIN(97),
0410              PXA_FUNCTION(0, 1, "KP_DKIN<4>"),
0411              PXA_FUNCTION(0, 2, "DREQ<1>"),
0412              PXA_FUNCTION(0, 3, "KP_MKIN<3>"),
0413              PXA_FUNCTION(1, 2, "MBGNT")),
0414     PXA_GPIO_PIN(PXA_PINCTRL_PIN(98),
0415              PXA_FUNCTION(0, 1, "KP_DKIN<5>"),
0416              PXA_FUNCTION(0, 2, "CIF_DD<0>"),
0417              PXA_FUNCTION(0, 3, "KP_MKIN<4>"),
0418              PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
0419              PXA_FUNCTION(1, 3, "FFRTS")),
0420     PXA_GPIO_PIN(PXA_PINCTRL_PIN(99),
0421              PXA_FUNCTION(0, 1, "KP_DKIN<6>"),
0422              PXA_FUNCTION(0, 2, "AC97_SDATA_IN_1"),
0423              PXA_FUNCTION(0, 3, "KP_MKIN<5>"),
0424              PXA_FUNCTION(1, 3, "FFTXD")),
0425     PXA_GPIO_PIN(PXA_PINCTRL_PIN(100),
0426              PXA_FUNCTION(0, 1, "KP_MKIN<0>"),
0427              PXA_FUNCTION(0, 2, "DREQ<2>"),
0428              PXA_FUNCTION(0, 3, "FFCTS")),
0429     PXA_GPIO_PIN(PXA_PINCTRL_PIN(101),
0430              PXA_FUNCTION(0, 1, "KP_MKIN<1>")),
0431     PXA_GPIO_PIN(PXA_PINCTRL_PIN(102),
0432              PXA_FUNCTION(0, 1, "KP_MKIN<2>"),
0433              PXA_FUNCTION(0, 3, "FFRXD"),
0434              PXA_FUNCTION(1, 1, "nPCE<1>")),
0435     PXA_GPIO_PIN(PXA_PINCTRL_PIN(103),
0436              PXA_FUNCTION(0, 1, "CIF_DD<3>"),
0437              PXA_FUNCTION(1, 2, "KP_MKOUT<0>")),
0438     PXA_GPIO_PIN(PXA_PINCTRL_PIN(104),
0439              PXA_FUNCTION(0, 1, "CIF_DD<2>"),
0440              PXA_FUNCTION(1, 1, "PSKTSEL"),
0441              PXA_FUNCTION(1, 2, "KP_MKOUT<1>")),
0442     PXA_GPIO_PIN(PXA_PINCTRL_PIN(105),
0443              PXA_FUNCTION(0, 1, "CIF_DD<1>"),
0444              PXA_FUNCTION(1, 1, "nPCE<2>"),
0445              PXA_FUNCTION(1, 2, "KP_MKOUT<2>")),
0446     PXA_GPIO_PIN(PXA_PINCTRL_PIN(106),
0447              PXA_FUNCTION(0, 1, "CIF_DD<9>"),
0448              PXA_FUNCTION(1, 2, "KP_MKOUT<3>")),
0449     PXA_GPIO_PIN(PXA_PINCTRL_PIN(107),
0450              PXA_FUNCTION(0, 1, "CIF_DD<8>"),
0451              PXA_FUNCTION(1, 2, "KP_MKOUT<4>")),
0452     PXA_GPIO_PIN(PXA_PINCTRL_PIN(108),
0453              PXA_FUNCTION(0, 1, "CIF_DD<7>"),
0454              PXA_FUNCTION(1, 1, "CHOUT<0>"),
0455              PXA_FUNCTION(1, 2, "KP_MKOUT<5>")),
0456     PXA_GPIO_PIN(PXA_PINCTRL_PIN(109),
0457              PXA_FUNCTION(0, 1, "MMDAT<1>"),
0458              PXA_FUNCTION(0, 2, "MSSDIO"),
0459              PXA_FUNCTION(1, 1, "MMDAT<1>"),
0460              PXA_FUNCTION(1, 2, "MSSDIO")),
0461     PXA_GPIO_PIN(PXA_PINCTRL_PIN(110),
0462              PXA_FUNCTION(0, 1, "MMDAT<2>"),
0463              PXA_FUNCTION(1, 1, "MMDAT<2>")),
0464     PXA_GPIO_PIN(PXA_PINCTRL_PIN(111),
0465              PXA_FUNCTION(0, 1, "MMDAT<3>"),
0466              PXA_FUNCTION(1, 1, "MMDAT<3>")),
0467     PXA_GPIO_PIN(PXA_PINCTRL_PIN(112),
0468              PXA_FUNCTION(0, 1, "MMCMD"),
0469              PXA_FUNCTION(0, 2, "nMSINS"),
0470              PXA_FUNCTION(1, 1, "MMCMD")),
0471     PXA_GPIO_PIN(PXA_PINCTRL_PIN(113),
0472              PXA_FUNCTION(0, 3, "USB_P3_3"),
0473              PXA_FUNCTION(1, 1, "I2S_SYSCLK"),
0474              PXA_FUNCTION(1, 2, "AC97_RESET_n")),
0475     PXA_GPIO_PIN(PXA_PINCTRL_PIN(114),
0476              PXA_FUNCTION(0, 1, "CIF_DD<1>"),
0477              PXA_FUNCTION(1, 1, "UEN"),
0478              PXA_FUNCTION(1, 2, "UVS0")),
0479     PXA_GPIO_PIN(PXA_PINCTRL_PIN(115),
0480              PXA_FUNCTION(0, 1, "DREQ<0>"),
0481              PXA_FUNCTION(0, 2, "CIF_DD<3>"),
0482              PXA_FUNCTION(0, 3, "MBREQ"),
0483              PXA_FUNCTION(1, 1, "UEN"),
0484              PXA_FUNCTION(1, 2, "nUVS1"),
0485              PXA_FUNCTION(1, 3, "PWM_OUT<1>")),
0486     PXA_GPIO_PIN(PXA_PINCTRL_PIN(116),
0487              PXA_FUNCTION(0, 1, "CIF_DD<2>"),
0488              PXA_FUNCTION(0, 2, "AC97_SDATA_IN_0"),
0489              PXA_FUNCTION(0, 3, "UDET"),
0490              PXA_FUNCTION(1, 1, "DVAL<0>"),
0491              PXA_FUNCTION(1, 2, "nUVS2"),
0492              PXA_FUNCTION(1, 3, "MBGNT")),
0493     PXA_GPIO_PIN(PXA_PINCTRL_PIN(117),
0494              PXA_FUNCTION(0, 1, "SCL"),
0495              PXA_FUNCTION(1, 1, "SCL")),
0496     PXA_GPIO_PIN(PXA_PINCTRL_PIN(118),
0497              PXA_FUNCTION(0, 1, "SDA"),
0498              PXA_FUNCTION(1, 1, "SDA")),
0499     PXA_GPIO_PIN(PXA_PINCTRL_PIN(119),
0500              PXA_FUNCTION(0, 1, "USBHPWR<2>")),
0501     PXA_GPIO_PIN(PXA_PINCTRL_PIN(120),
0502              PXA_FUNCTION(1, 2, "USBHPEN<2>")),
0503 };
0504 
0505 static int pxa27x_pinctrl_probe(struct platform_device *pdev)
0506 {
0507     int i;
0508     void __iomem *base_af[8];
0509     void __iomem *base_dir[4];
0510     void __iomem *base_sleep[4];
0511 
0512     base_af[0] = devm_platform_ioremap_resource(pdev, 0);
0513     if (IS_ERR(base_af[0]))
0514         return PTR_ERR(base_af[0]);
0515 
0516     base_dir[0] = devm_platform_ioremap_resource(pdev, 1);
0517     if (IS_ERR(base_dir[0]))
0518         return PTR_ERR(base_dir[0]);
0519 
0520     base_dir[3] = devm_platform_ioremap_resource(pdev, 2);
0521     if (IS_ERR(base_dir[3]))
0522         return PTR_ERR(base_dir[3]);
0523 
0524     base_sleep[0] = devm_platform_ioremap_resource(pdev, 3);
0525     if (IS_ERR(base_sleep[0]))
0526         return PTR_ERR(base_sleep[0]);
0527 
0528     for (i = 0; i < ARRAY_SIZE(base_af); i++)
0529         base_af[i] = base_af[0] + sizeof(base_af[0]) * i;
0530     for (i = 0; i < 3; i++)
0531         base_dir[i] = base_dir[0] + sizeof(base_dir[0]) * i;
0532     for (i = 0; i < ARRAY_SIZE(base_sleep); i++)
0533         base_sleep[i] = base_sleep[0] + sizeof(base_af[0]) * i;
0534 
0535     return pxa2xx_pinctrl_init(pdev, pxa27x_pins, ARRAY_SIZE(pxa27x_pins),
0536                   base_af, base_dir, base_sleep);
0537 }
0538 
0539 static const struct of_device_id pxa27x_pinctrl_match[] = {
0540     { .compatible = "marvell,pxa27x-pinctrl", },
0541     {}
0542 };
0543 MODULE_DEVICE_TABLE(of, pxa27x_pinctrl_match);
0544 
0545 static struct platform_driver pxa27x_pinctrl_driver = {
0546     .probe  = pxa27x_pinctrl_probe,
0547     .driver = {
0548         .name       = "pxa27x-pinctrl",
0549         .of_match_table = pxa27x_pinctrl_match,
0550     },
0551 };
0552 module_platform_driver(pxa27x_pinctrl_driver);
0553 
0554 MODULE_AUTHOR("Robert Jarzmik <robert.jarzmik@free.fr>");
0555 MODULE_DESCRIPTION("Marvell PXA27x pinctrl driver");
0556 MODULE_LICENSE("GPL v2");