brintos

brintos / linux-shallow public Read only

0
0
Text · 19.9 KiB · b3acbaf Raw
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