// SPDX-License-Identifier: GPL-2.0-only
/*
 * Marvell PXA27x family pin control
 *
 * Copyright (C) 2015 Robert Jarzmik
 */
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/pinctrl/pinctrl.h>

#include "pinctrl-pxa2xx.h"

static const struct pxa_desc_pin pxa27x_pins[] = {
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(0)),
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(1)),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(9),
		     PXA_FUNCTION(0, 3, "FFCTS"),
		     PXA_FUNCTION(1, 1, "HZ_CLK"),
		     PXA_FUNCTION(1, 3, "CHOUT<0>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(10),
		     PXA_FUNCTION(0, 1, "FFDCD"),
		     PXA_FUNCTION(0, 3, "USB_P3_5"),
		     PXA_FUNCTION(1, 1, "HZ_CLK"),
		     PXA_FUNCTION(1, 3, "CHOUT<1>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(11),
		     PXA_FUNCTION(0, 1, "EXT_SYNC<0>"),
		     PXA_FUNCTION(0, 2, "SSPRXD2"),
		     PXA_FUNCTION(0, 3, "USB_P3_1"),
		     PXA_FUNCTION(1, 1, "CHOUT<0>"),
		     PXA_FUNCTION(1, 1, "PWM_OUT<2>"),
		     PXA_FUNCTION(1, 3, "48_MHz")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(12),
		     PXA_FUNCTION(0, 1, "EXT_SYNC<1>"),
		     PXA_FUNCTION(0, 2, "CIF_DD<7>"),
		     PXA_FUNCTION(1, 1, "CHOUT<1>"),
		     PXA_FUNCTION(1, 1, "PWM_OUT<3>"),
		     PXA_FUNCTION(1, 3, "48_MHz")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(13),
		     PXA_FUNCTION(0, 1, "CLK_EXT"),
		     PXA_FUNCTION(0, 2, "KP_DKIN<7>"),
		     PXA_FUNCTION(0, 3, "KP_MKIN<7>"),
		     PXA_FUNCTION(1, 1, "SSPTXD2")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(14),
		     PXA_FUNCTION(0, 1, "L_VSYNC"),
		     PXA_FUNCTION(0, 2, "SSPSFRM2"),
		     PXA_FUNCTION(1, 1, "SSPSFRM2"),
		     PXA_FUNCTION(1, 3, "UCLK")),
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(15)),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(16),
		     PXA_FUNCTION(0, 1, "KP_MKIN<5>"),
		     PXA_FUNCTION(1, 2, "PWM_OUT<0>"),
		     PXA_FUNCTION(1, 3, "FFTXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(17),
		     PXA_FUNCTION(0, 1, "KP_MKIN<6>"),
		     PXA_FUNCTION(0, 2, "CIF_DD<6>"),
		     PXA_FUNCTION(1, 2, "PWM_OUT<1>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(18),
		     PXA_FUNCTION(0, 1, "RDY")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(19),
		     PXA_FUNCTION(0, 1, "SSPSCLK2"),
		     PXA_FUNCTION(0, 3, "FFRXD"),
		     PXA_FUNCTION(1, 1, "SSPSCLK2"),
		     PXA_FUNCTION(1, 2, "L_CS"),
		     PXA_FUNCTION(1, 3, "nURST")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(20),
		     PXA_FUNCTION(0, 1, "DREQ<0>"),
		     PXA_FUNCTION(0, 2, "MBREQ"),
		     PXA_FUNCTION(1, 1, "nSDCS<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(21),
		     PXA_FUNCTION(1, 1, "nSDCS<3>"),
		     PXA_FUNCTION(1, 2, "DVAL<0>"),
		     PXA_FUNCTION(1, 3, "MBGNT")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(22),
		     PXA_FUNCTION(0, 1, "SSPEXTCLK2"),
		     PXA_FUNCTION(0, 2, "SSPSCLKEN2"),
		     PXA_FUNCTION(0, 3, "SSPSCLK2"),
		     PXA_FUNCTION(1, 1, "KP_MKOUT<7>"),
		     PXA_FUNCTION(1, 2, "SSPSYSCLK2"),
		     PXA_FUNCTION(1, 3, "SSPSCLK2")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(23),
		     PXA_FUNCTION(0, 2, "SSPSCLK"),
		     PXA_FUNCTION(1, 1, "CIF_MCLK"),
		     PXA_FUNCTION(1, 1, "SSPSCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(24),
		     PXA_FUNCTION(0, 1, "CIF_FV"),
		     PXA_FUNCTION(0, 2, "SSPSFRM"),
		     PXA_FUNCTION(1, 1, "CIF_FV"),
		     PXA_FUNCTION(1, 2, "SSPSFRM")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(25),
		     PXA_FUNCTION(0, 1, "CIF_LV"),
		     PXA_FUNCTION(1, 1, "CIF_LV"),
		     PXA_FUNCTION(1, 2, "SSPTXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(26),
		     PXA_FUNCTION(0, 1, "SSPRXD"),
		     PXA_FUNCTION(0, 2, "CIF_PCLK"),
		     PXA_FUNCTION(0, 3, "FFCTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(27),
		     PXA_FUNCTION(0, 1, "SSPEXTCLK"),
		     PXA_FUNCTION(0, 2, "SSPSCLKEN"),
		     PXA_FUNCTION(0, 3, "CIF_DD<0>"),
		     PXA_FUNCTION(1, 1, "SSPSYSCLK"),
		     PXA_FUNCTION(1, 3, "FFRTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(28),
		     PXA_FUNCTION(0, 1, "AC97_BITCLK"),
		     PXA_FUNCTION(0, 2, "I2S_BITCLK"),
		     PXA_FUNCTION(0, 3, "SSPSFRM"),
		     PXA_FUNCTION(1, 1, "I2S_BITCLK"),
		     PXA_FUNCTION(1, 3, "SSPSFRM")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(29),
		     PXA_FUNCTION(0, 1, "AC97_SDATA_IN_0"),
		     PXA_FUNCTION(0, 2, "I2S_SDATA_IN"),
		     PXA_FUNCTION(0, 3, "SSPSCLK"),
		     PXA_FUNCTION(1, 1, "SSPRXD2"),
		     PXA_FUNCTION(1, 3, "SSPSCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(30),
		     PXA_FUNCTION(1, 1, "I2S_SDATA_OUT"),
		     PXA_FUNCTION(1, 2, "AC97_SDATA_OUT"),
		     PXA_FUNCTION(1, 3, "USB_P3_2")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(31),
		     PXA_FUNCTION(1, 1, "I2S_SYNC"),
		     PXA_FUNCTION(1, 2, "AC97_SYNC"),
		     PXA_FUNCTION(1, 3, "USB_P3_6")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(32),
		     PXA_FUNCTION(1, 1, "MSSCLK"),
		     PXA_FUNCTION(1, 2, "MMCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(33),
		     PXA_FUNCTION(0, 1, "FFRXD"),
		     PXA_FUNCTION(0, 2, "FFDSR"),
		     PXA_FUNCTION(1, 1, "DVAL<1>"),
		     PXA_FUNCTION(1, 2, "nCS<5>"),
		     PXA_FUNCTION(1, 3, "MBGNT")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(34),
		     PXA_FUNCTION(0, 1, "FFRXD"),
		     PXA_FUNCTION(0, 2, "KP_MKIN<3>"),
		     PXA_FUNCTION(0, 3, "SSPSCLK3"),
		     PXA_FUNCTION(1, 1, "USB_P2_2"),
		     PXA_FUNCTION(1, 3, "SSPSCLK3")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(35),
		     PXA_FUNCTION(0, 1, "FFCTS"),
		     PXA_FUNCTION(0, 2, "USB_P2_1"),
		     PXA_FUNCTION(0, 3, "SSPSFRM3"),
		     PXA_FUNCTION(1, 2, "KP_MKOUT<6>"),
		     PXA_FUNCTION(1, 3, "SSPTXD3")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(36),
		     PXA_FUNCTION(0, 1, "FFDCD"),
		     PXA_FUNCTION(0, 2, "SSPSCLK2"),
		     PXA_FUNCTION(0, 3, "KP_MKIN<7>"),
		     PXA_FUNCTION(1, 1, "USB_P2_4"),
		     PXA_FUNCTION(1, 2, "SSPSCLK2")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(37),
		     PXA_FUNCTION(0, 1, "FFDSR"),
		     PXA_FUNCTION(0, 2, "SSPSFRM2"),
		     PXA_FUNCTION(0, 3, "KP_MKIN<3>"),
		     PXA_FUNCTION(1, 1, "USB_P2_8"),
		     PXA_FUNCTION(1, 2, "SSPSFRM2"),
		     PXA_FUNCTION(1, 3, "FFTXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(38),
		     PXA_FUNCTION(0, 1, "FFRI"),
		     PXA_FUNCTION(0, 2, "KP_MKIN<4>"),
		     PXA_FUNCTION(0, 3, "USB_P2_3"),
		     PXA_FUNCTION(1, 1, "SSPTXD3"),
		     PXA_FUNCTION(1, 2, "SSPTXD2"),
		     PXA_FUNCTION(1, 3, "PWM_OUT<0>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(39),
		     PXA_FUNCTION(0, 1, "KP_MKIN<4>"),
		     PXA_FUNCTION(0, 3, "SSPSFRM3"),
		     PXA_FUNCTION(1, 1, "USB_P2_6"),
		     PXA_FUNCTION(1, 2, "FFTXD"),
		     PXA_FUNCTION(1, 3, "SSPSFRM3")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(40),
		     PXA_FUNCTION(0, 1, "SSPRXD2"),
		     PXA_FUNCTION(0, 3, "USB_P2_5"),
		     PXA_FUNCTION(1, 1, "KP_MKOUT<6>"),
		     PXA_FUNCTION(1, 2, "FFDTR"),
		     PXA_FUNCTION(1, 3, "SSPSCLK3")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(41),
		     PXA_FUNCTION(0, 1, "FFRXD"),
		     PXA_FUNCTION(0, 2, "USB_P2_7"),
		     PXA_FUNCTION(0, 3, "SSPRXD3"),
		     PXA_FUNCTION(1, 1, "KP_MKOUT<7>"),
		     PXA_FUNCTION(1, 2, "FFRTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(42),
		     PXA_FUNCTION(0, 1, "BTRXD"),
		     PXA_FUNCTION(0, 2, "ICP_RXD"),
		     PXA_FUNCTION(1, 3, "CIF_MCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(43),
		     PXA_FUNCTION(0, 3, "CIF_FV"),
		     PXA_FUNCTION(1, 1, "ICP_TXD"),
		     PXA_FUNCTION(1, 2, "BTTXD"),
		     PXA_FUNCTION(1, 3, "CIF_FV")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(44),
		     PXA_FUNCTION(0, 1, "BTCTS"),
		     PXA_FUNCTION(0, 3, "CIF_LV"),
		     PXA_FUNCTION(1, 3, "CIF_LV")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(45),
		     PXA_FUNCTION(0, 3, "CIF_PCLK"),
		     PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
		     PXA_FUNCTION(1, 2, "BTRTS"),
		     PXA_FUNCTION(1, 3, "SSPSYSCLK3")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(46),
		     PXA_FUNCTION(0, 1, "ICP_RXD"),
		     PXA_FUNCTION(0, 2, "STD_RXD"),
		     PXA_FUNCTION(1, 2, "PWM_OUT<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(47),
		     PXA_FUNCTION(0, 1, "CIF_DD<0>"),
		     PXA_FUNCTION(1, 1, "STD_TXD"),
		     PXA_FUNCTION(1, 2, "ICP_TXD"),
		     PXA_FUNCTION(1, 3, "PWM_OUT<3>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(48),
		     PXA_FUNCTION(0, 1, "CIF_DD<5>"),
		     PXA_FUNCTION(1, 1, "BB_OB_DAT<1>"),
		     PXA_FUNCTION(1, 2, "nPOE")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(49),
		     PXA_FUNCTION(1, 2, "nPWE")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(50),
		     PXA_FUNCTION(0, 1, "CIF_DD<3>"),
		     PXA_FUNCTION(0, 3, "SSPSCLK2"),
		     PXA_FUNCTION(1, 1, "BB_OB_DAT<2>"),
		     PXA_FUNCTION(1, 2, "nPIOR"),
		     PXA_FUNCTION(1, 3, "SSPSCLK2")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(51),
		     PXA_FUNCTION(0, 1, "CIF_DD<2>"),
		     PXA_FUNCTION(1, 1, "BB_OB_DAT<3>"),
		     PXA_FUNCTION(1, 2, "nPIOW")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(52),
		     PXA_FUNCTION(0, 1, "CIF_DD<4>"),
		     PXA_FUNCTION(0, 2, "SSPSCLK3"),
		     PXA_FUNCTION(1, 1, "BB_OB_CLK"),
		     PXA_FUNCTION(1, 2, "SSPSCLK3")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(53),
		     PXA_FUNCTION(0, 1, "FFRXD"),
		     PXA_FUNCTION(0, 2, "USB_P2_3"),
		     PXA_FUNCTION(1, 1, "BB_OB_STB"),
		     PXA_FUNCTION(1, 2, "CIF_MCLK"),
		     PXA_FUNCTION(1, 3, "SSPSYSCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(54),
		     PXA_FUNCTION(0, 2, "BB_OB_WAIT"),
		     PXA_FUNCTION(0, 3, "CIF_PCLK"),
		     PXA_FUNCTION(1, 2, "nPCE<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(55),
		     PXA_FUNCTION(0, 1, "CIF_DD<1>"),
		     PXA_FUNCTION(0, 2, "BB_IB_DAT<1>"),
		     PXA_FUNCTION(1, 2, "nPREG")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(56),
		     PXA_FUNCTION(0, 1, "nPWAIT"),
		     PXA_FUNCTION(0, 2, "BB_IB_DAT<2>"),
		     PXA_FUNCTION(1, 1, "USB_P3_4")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(57),
		     PXA_FUNCTION(0, 1, "nIOS16"),
		     PXA_FUNCTION(0, 2, "BB_IB_DAT<3>"),
		     PXA_FUNCTION(1, 3, "SSPTXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(58),
		     PXA_FUNCTION(0, 2, "LDD<0>"),
		     PXA_FUNCTION(1, 2, "LDD<0>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(59),
		     PXA_FUNCTION(0, 2, "LDD<1>"),
		     PXA_FUNCTION(1, 2, "LDD<1>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(60),
		     PXA_FUNCTION(0, 2, "LDD<2>"),
		     PXA_FUNCTION(1, 2, "LDD<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(61),
		     PXA_FUNCTION(0, 2, "LDD<3>"),
		     PXA_FUNCTION(1, 2, "LDD<3>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(62),
		     PXA_FUNCTION(0, 2, "LDD<4>"),
		     PXA_FUNCTION(1, 2, "LDD<4>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(63),
		     PXA_FUNCTION(0, 2, "LDD<5>"),
		     PXA_FUNCTION(1, 2, "LDD<5>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(64),
		     PXA_FUNCTION(0, 2, "LDD<6>"),
		     PXA_FUNCTION(1, 2, "LDD<6>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(65),
		     PXA_FUNCTION(0, 2, "LDD<7>"),
		     PXA_FUNCTION(1, 2, "LDD<7>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(66),
		     PXA_FUNCTION(0, 2, "LDD<8>"),
		     PXA_FUNCTION(1, 2, "LDD<8>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(67),
		     PXA_FUNCTION(0, 2, "LDD<9>"),
		     PXA_FUNCTION(1, 2, "LDD<9>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(68),
		     PXA_FUNCTION(0, 2, "LDD<10>"),
		     PXA_FUNCTION(1, 2, "LDD<10>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(69),
		     PXA_FUNCTION(0, 2, "LDD<11>"),
		     PXA_FUNCTION(1, 2, "LDD<11>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(70),
		     PXA_FUNCTION(0, 2, "LDD<12>"),
		     PXA_FUNCTION(1, 2, "LDD<12>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(71),
		     PXA_FUNCTION(0, 2, "LDD<13>"),
		     PXA_FUNCTION(1, 2, "LDD<13>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(72),
		     PXA_FUNCTION(0, 2, "LDD<14>"),
		     PXA_FUNCTION(1, 2, "LDD<14>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(73),
		     PXA_FUNCTION(0, 2, "LDD<15>"),
		     PXA_FUNCTION(1, 2, "LDD<15>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(74),
		     PXA_FUNCTION(1, 2, "L_FCLK_RD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(75),
		     PXA_FUNCTION(1, 2, "L_LCLK_A0")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(76),
		     PXA_FUNCTION(1, 2, "L_PCLK_WR")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(77),
		     PXA_FUNCTION(1, 2, "L_BIAS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(78),
		     PXA_FUNCTION(1, 1, "nPCE<2>"),
		     PXA_FUNCTION(1, 2, "nCS<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(79),
		     PXA_FUNCTION(1, 1, "PSKTSEL"),
		     PXA_FUNCTION(1, 2, "nCS<3>"),
		     PXA_FUNCTION(1, 3, "PWM_OUT<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(80),
		     PXA_FUNCTION(0, 1, "DREQ<1>"),
		     PXA_FUNCTION(0, 2, "MBREQ"),
		     PXA_FUNCTION(1, 2, "nCS<4>"),
		     PXA_FUNCTION(1, 3, "PWM_OUT<3>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(81),
		     PXA_FUNCTION(0, 2, "CIF_DD<0>"),
		     PXA_FUNCTION(1, 1, "SSPTXD3"),
		     PXA_FUNCTION(1, 2, "BB_OB_DAT<0>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(82),
		     PXA_FUNCTION(0, 1, "SSPRXD3"),
		     PXA_FUNCTION(0, 2, "BB_IB_DAT<0>"),
		     PXA_FUNCTION(0, 3, "CIF_DD<5>"),
		     PXA_FUNCTION(1, 3, "FFDTR")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(83),
		     PXA_FUNCTION(0, 1, "SSPSFRM3"),
		     PXA_FUNCTION(0, 2, "BB_IB_CLK"),
		     PXA_FUNCTION(0, 3, "CIF_DD<5>"),
		     PXA_FUNCTION(1, 1, "SSPSFRM3"),
		     PXA_FUNCTION(1, 2, "FFTXD"),
		     PXA_FUNCTION(1, 3, "FFRTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(84),
		     PXA_FUNCTION(0, 1, "SSPCLK3"),
		     PXA_FUNCTION(0, 2, "BB_IB_STB"),
		     PXA_FUNCTION(0, 3, "CIF_FV"),
		     PXA_FUNCTION(1, 1, "SSPCLK3"),
		     PXA_FUNCTION(1, 3, "CIF_FV")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(85),
		     PXA_FUNCTION(0, 1, "FFRXD"),
		     PXA_FUNCTION(0, 2, "DREQ<2>"),
		     PXA_FUNCTION(0, 3, "CIF_LV"),
		     PXA_FUNCTION(1, 1, "nPCE<1>"),
		     PXA_FUNCTION(1, 2, "BB_IB_WAIT"),
		     PXA_FUNCTION(1, 3, "CIF_LV")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(86),
		     PXA_FUNCTION(0, 1, "SSPRXD2"),
		     PXA_FUNCTION(0, 2, "LDD<16>"),
		     PXA_FUNCTION(0, 3, "USB_P3_5"),
		     PXA_FUNCTION(1, 1, "nPCE<1>"),
		     PXA_FUNCTION(1, 2, "LDD<16>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(87),
		     PXA_FUNCTION(0, 1, "nPCE<2>"),
		     PXA_FUNCTION(0, 2, "LDD<17>"),
		     PXA_FUNCTION(0, 3, "USB_P3_1"),
		     PXA_FUNCTION(1, 1, "SSPTXD2"),
		     PXA_FUNCTION(1, 2, "LDD<17>"),
		     PXA_FUNCTION(1, 3, "SSPSFRM2")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(88),
		     PXA_FUNCTION(0, 1, "USBHPWR<1>"),
		     PXA_FUNCTION(0, 2, "SSPRXD2"),
		     PXA_FUNCTION(0, 3, "SSPSFRM2"),
		     PXA_FUNCTION(1, 2, "SSPTXD2"),
		     PXA_FUNCTION(1, 3, "SSPSFRM2")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(89),
		     PXA_FUNCTION(0, 1, "SSPRXD3"),
		     PXA_FUNCTION(0, 3, "FFRI"),
		     PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
		     PXA_FUNCTION(1, 2, "USBHPEN<1>"),
		     PXA_FUNCTION(1, 3, "SSPTXD2")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(90),
		     PXA_FUNCTION(0, 1, "KP_MKIN<5>"),
		     PXA_FUNCTION(0, 3, "USB_P3_5"),
		     PXA_FUNCTION(1, 1, "CIF_DD<4>"),
		     PXA_FUNCTION(1, 2, "nURST")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(91),
		     PXA_FUNCTION(0, 1, "KP_MKIN<6>"),
		     PXA_FUNCTION(0, 3, "USB_P3_1"),
		     PXA_FUNCTION(1, 1, "CIF_DD<5>"),
		     PXA_FUNCTION(1, 2, "UCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(92),
		     PXA_FUNCTION(0, 1, "MMDAT<0>"),
		     PXA_FUNCTION(1, 1, "MMDAT<0>"),
		     PXA_FUNCTION(1, 2, "MSBS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(93),
		     PXA_FUNCTION(0, 1, "KP_DKIN<0>"),
		     PXA_FUNCTION(0, 2, "CIF_DD<6>"),
		     PXA_FUNCTION(1, 1, "AC97_SDATA_OUT")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(94),
		     PXA_FUNCTION(0, 1, "KP_DKIN<1>"),
		     PXA_FUNCTION(0, 2, "CIF_DD<5>"),
		     PXA_FUNCTION(1, 1, "AC97_SYNC")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(95),
		     PXA_FUNCTION(0, 1, "KP_DKIN<2>"),
		     PXA_FUNCTION(0, 2, "CIF_DD<4>"),
		     PXA_FUNCTION(0, 3, "KP_MKIN<6>"),
		     PXA_FUNCTION(1, 1, "AC97_RESET_n")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(96),
		     PXA_FUNCTION(0, 1, "KP_DKIN<3>"),
		     PXA_FUNCTION(0, 2, "MBREQ"),
		     PXA_FUNCTION(0, 3, "FFRXD"),
		     PXA_FUNCTION(1, 2, "DVAL<1>"),
		     PXA_FUNCTION(1, 3, "KP_MKOUT<6>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(97),
		     PXA_FUNCTION(0, 1, "KP_DKIN<4>"),
		     PXA_FUNCTION(0, 2, "DREQ<1>"),
		     PXA_FUNCTION(0, 3, "KP_MKIN<3>"),
		     PXA_FUNCTION(1, 2, "MBGNT")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(98),
		     PXA_FUNCTION(0, 1, "KP_DKIN<5>"),
		     PXA_FUNCTION(0, 2, "CIF_DD<0>"),
		     PXA_FUNCTION(0, 3, "KP_MKIN<4>"),
		     PXA_FUNCTION(1, 1, "AC97_SYSCLK"),
		     PXA_FUNCTION(1, 3, "FFRTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(99),
		     PXA_FUNCTION(0, 1, "KP_DKIN<6>"),
		     PXA_FUNCTION(0, 2, "AC97_SDATA_IN_1"),
		     PXA_FUNCTION(0, 3, "KP_MKIN<5>"),
		     PXA_FUNCTION(1, 3, "FFTXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(100),
		     PXA_FUNCTION(0, 1, "KP_MKIN<0>"),
		     PXA_FUNCTION(0, 2, "DREQ<2>"),
		     PXA_FUNCTION(0, 3, "FFCTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(101),
		     PXA_FUNCTION(0, 1, "KP_MKIN<1>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(102),
		     PXA_FUNCTION(0, 1, "KP_MKIN<2>"),
		     PXA_FUNCTION(0, 3, "FFRXD"),
		     PXA_FUNCTION(1, 1, "nPCE<1>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(103),
		     PXA_FUNCTION(0, 1, "CIF_DD<3>"),
		     PXA_FUNCTION(1, 2, "KP_MKOUT<0>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(104),
		     PXA_FUNCTION(0, 1, "CIF_DD<2>"),
		     PXA_FUNCTION(1, 1, "PSKTSEL"),
		     PXA_FUNCTION(1, 2, "KP_MKOUT<1>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(105),
		     PXA_FUNCTION(0, 1, "CIF_DD<1>"),
		     PXA_FUNCTION(1, 1, "nPCE<2>"),
		     PXA_FUNCTION(1, 2, "KP_MKOUT<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(106),
		     PXA_FUNCTION(0, 1, "CIF_DD<9>"),
		     PXA_FUNCTION(1, 2, "KP_MKOUT<3>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(107),
		     PXA_FUNCTION(0, 1, "CIF_DD<8>"),
		     PXA_FUNCTION(1, 2, "KP_MKOUT<4>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(108),
		     PXA_FUNCTION(0, 1, "CIF_DD<7>"),
		     PXA_FUNCTION(1, 1, "CHOUT<0>"),
		     PXA_FUNCTION(1, 2, "KP_MKOUT<5>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(109),
		     PXA_FUNCTION(0, 1, "MMDAT<1>"),
		     PXA_FUNCTION(0, 2, "MSSDIO"),
		     PXA_FUNCTION(1, 1, "MMDAT<1>"),
		     PXA_FUNCTION(1, 2, "MSSDIO")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(110),
		     PXA_FUNCTION(0, 1, "MMDAT<2>"),
		     PXA_FUNCTION(1, 1, "MMDAT<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(111),
		     PXA_FUNCTION(0, 1, "MMDAT<3>"),
		     PXA_FUNCTION(1, 1, "MMDAT<3>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(112),
		     PXA_FUNCTION(0, 1, "MMCMD"),
		     PXA_FUNCTION(0, 2, "nMSINS"),
		     PXA_FUNCTION(1, 1, "MMCMD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(113),
		     PXA_FUNCTION(0, 3, "USB_P3_3"),
		     PXA_FUNCTION(1, 1, "I2S_SYSCLK"),
		     PXA_FUNCTION(1, 2, "AC97_RESET_n")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(114),
		     PXA_FUNCTION(0, 1, "CIF_DD<1>"),
		     PXA_FUNCTION(1, 1, "UEN"),
		     PXA_FUNCTION(1, 2, "UVS0")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(115),
		     PXA_FUNCTION(0, 1, "DREQ<0>"),
		     PXA_FUNCTION(0, 2, "CIF_DD<3>"),
		     PXA_FUNCTION(0, 3, "MBREQ"),
		     PXA_FUNCTION(1, 1, "UEN"),
		     PXA_FUNCTION(1, 2, "nUVS1"),
		     PXA_FUNCTION(1, 3, "PWM_OUT<1>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(116),
		     PXA_FUNCTION(0, 1, "CIF_DD<2>"),
		     PXA_FUNCTION(0, 2, "AC97_SDATA_IN_0"),
		     PXA_FUNCTION(0, 3, "UDET"),
		     PXA_FUNCTION(1, 1, "DVAL<0>"),
		     PXA_FUNCTION(1, 2, "nUVS2"),
		     PXA_FUNCTION(1, 3, "MBGNT")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(117),
		     PXA_FUNCTION(0, 1, "SCL"),
		     PXA_FUNCTION(1, 1, "SCL")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(118),
		     PXA_FUNCTION(0, 1, "SDA"),
		     PXA_FUNCTION(1, 1, "SDA")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(119),
		     PXA_FUNCTION(0, 1, "USBHPWR<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(120),
		     PXA_FUNCTION(1, 2, "USBHPEN<2>")),
};

static int pxa27x_pinctrl_probe(struct platform_device *pdev)
{
	int i;
	void __iomem *base_af[8];
	void __iomem *base_dir[4];
	void __iomem *base_sleep[4];

	base_af[0] = devm_platform_ioremap_resource(pdev, 0);
	if (IS_ERR(base_af[0]))
		return PTR_ERR(base_af[0]);

	base_dir[0] = devm_platform_ioremap_resource(pdev, 1);
	if (IS_ERR(base_dir[0]))
		return PTR_ERR(base_dir[0]);

	base_dir[3] = devm_platform_ioremap_resource(pdev, 2);
	if (IS_ERR(base_dir[3]))
		return PTR_ERR(base_dir[3]);

	base_sleep[0] = devm_platform_ioremap_resource(pdev, 3);
	if (IS_ERR(base_sleep[0]))
		return PTR_ERR(base_sleep[0]);

	for (i = 0; i < ARRAY_SIZE(base_af); i++)
		base_af[i] = base_af[0] + sizeof(base_af[0]) * i;
	for (i = 0; i < 3; i++)
		base_dir[i] = base_dir[0] + sizeof(base_dir[0]) * i;
	for (i = 0; i < ARRAY_SIZE(base_sleep); i++)
		base_sleep[i] = base_sleep[0] + sizeof(base_af[0]) * i;

	return pxa2xx_pinctrl_init(pdev, pxa27x_pins, ARRAY_SIZE(pxa27x_pins),
				  base_af, base_dir, base_sleep);
}

static const struct of_device_id pxa27x_pinctrl_match[] = {
	{ .compatible = "marvell,pxa27x-pinctrl", },
	{}
};
MODULE_DEVICE_TABLE(of, pxa27x_pinctrl_match);

static struct platform_driver pxa27x_pinctrl_driver = {
	.probe	= pxa27x_pinctrl_probe,
	.driver	= {
		.name		= "pxa27x-pinctrl",
		.of_match_table	= pxa27x_pinctrl_match,
	},
};
module_platform_driver(pxa27x_pinctrl_driver);

MODULE_AUTHOR("Robert Jarzmik <robert.jarzmik@free.fr>");
MODULE_DESCRIPTION("Marvell PXA27x pinctrl driver");
MODULE_LICENSE("GPL v2");
