cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pinctrl-pxa27x.c (20454B)


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