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