Loading...
1// SPDX-License-Identifier: GPL-2.0+
2//
3// Copyright (C) 2015-2017 Socionext Inc.
4// Author: Masahiro Yamada <yamada.masahiro@socionext.com>
5
6#include <linux/kernel.h>
7#include <linux/init.h>
8#include <linux/mod_devicetable.h>
9#include <linux/pinctrl/pinctrl.h>
10#include <linux/platform_device.h>
11
12#include "pinctrl-uniphier.h"
13
14static const struct pinctrl_pin_desc uniphier_sld8_pins[] = {
15 UNIPHIER_PINCTRL_PIN(0, "PCA00", 0,
16 15, UNIPHIER_PIN_DRV_1BIT,
17 15, UNIPHIER_PIN_PULL_DOWN),
18 UNIPHIER_PINCTRL_PIN(1, "PCA01", 0,
19 16, UNIPHIER_PIN_DRV_1BIT,
20 16, UNIPHIER_PIN_PULL_DOWN),
21 UNIPHIER_PINCTRL_PIN(2, "PCA02", 0,
22 17, UNIPHIER_PIN_DRV_1BIT,
23 17, UNIPHIER_PIN_PULL_DOWN),
24 UNIPHIER_PINCTRL_PIN(3, "PCA03", 0,
25 18, UNIPHIER_PIN_DRV_1BIT,
26 18, UNIPHIER_PIN_PULL_DOWN),
27 UNIPHIER_PINCTRL_PIN(4, "PCA04", 0,
28 19, UNIPHIER_PIN_DRV_1BIT,
29 19, UNIPHIER_PIN_PULL_DOWN),
30 UNIPHIER_PINCTRL_PIN(5, "PCA05", 0,
31 20, UNIPHIER_PIN_DRV_1BIT,
32 20, UNIPHIER_PIN_PULL_DOWN),
33 UNIPHIER_PINCTRL_PIN(6, "PCA06", 0,
34 21, UNIPHIER_PIN_DRV_1BIT,
35 21, UNIPHIER_PIN_PULL_DOWN),
36 UNIPHIER_PINCTRL_PIN(7, "PCA07", 0,
37 22, UNIPHIER_PIN_DRV_1BIT,
38 22, UNIPHIER_PIN_PULL_DOWN),
39 UNIPHIER_PINCTRL_PIN(8, "PCA08", 0,
40 23, UNIPHIER_PIN_DRV_1BIT,
41 23, UNIPHIER_PIN_PULL_DOWN),
42 UNIPHIER_PINCTRL_PIN(9, "PCA09", 0,
43 24, UNIPHIER_PIN_DRV_1BIT,
44 24, UNIPHIER_PIN_PULL_DOWN),
45 UNIPHIER_PINCTRL_PIN(10, "PCA10", 0,
46 25, UNIPHIER_PIN_DRV_1BIT,
47 25, UNIPHIER_PIN_PULL_DOWN),
48 UNIPHIER_PINCTRL_PIN(11, "PCA11", 0,
49 26, UNIPHIER_PIN_DRV_1BIT,
50 26, UNIPHIER_PIN_PULL_DOWN),
51 UNIPHIER_PINCTRL_PIN(12, "PCA12", 0,
52 27, UNIPHIER_PIN_DRV_1BIT,
53 27, UNIPHIER_PIN_PULL_DOWN),
54 UNIPHIER_PINCTRL_PIN(13, "PCA13", 0,
55 28, UNIPHIER_PIN_DRV_1BIT,
56 28, UNIPHIER_PIN_PULL_DOWN),
57 UNIPHIER_PINCTRL_PIN(14, "PCA14", 0,
58 29, UNIPHIER_PIN_DRV_1BIT,
59 29, UNIPHIER_PIN_PULL_DOWN),
60 UNIPHIER_PINCTRL_PIN(15, "XNFRE_GB", UNIPHIER_PIN_IECTRL_NONE,
61 30, UNIPHIER_PIN_DRV_1BIT,
62 30, UNIPHIER_PIN_PULL_UP),
63 UNIPHIER_PINCTRL_PIN(16, "XNFWE_GB", UNIPHIER_PIN_IECTRL_NONE,
64 31, UNIPHIER_PIN_DRV_1BIT,
65 31, UNIPHIER_PIN_PULL_UP),
66 UNIPHIER_PINCTRL_PIN(17, "NFALE_GB", UNIPHIER_PIN_IECTRL_NONE,
67 32, UNIPHIER_PIN_DRV_1BIT,
68 32, UNIPHIER_PIN_PULL_DOWN),
69 UNIPHIER_PINCTRL_PIN(18, "NFCLE_GB", UNIPHIER_PIN_IECTRL_NONE,
70 33, UNIPHIER_PIN_DRV_1BIT,
71 33, UNIPHIER_PIN_PULL_DOWN),
72 UNIPHIER_PINCTRL_PIN(19, "XNFWP_GB", UNIPHIER_PIN_IECTRL_NONE,
73 34, UNIPHIER_PIN_DRV_1BIT,
74 34, UNIPHIER_PIN_PULL_DOWN),
75 UNIPHIER_PINCTRL_PIN(20, "XNFCE0_GB", UNIPHIER_PIN_IECTRL_NONE,
76 35, UNIPHIER_PIN_DRV_1BIT,
77 35, UNIPHIER_PIN_PULL_UP),
78 UNIPHIER_PINCTRL_PIN(21, "NANDRYBY0_GB", UNIPHIER_PIN_IECTRL_NONE,
79 36, UNIPHIER_PIN_DRV_1BIT,
80 36, UNIPHIER_PIN_PULL_UP),
81 UNIPHIER_PINCTRL_PIN(22, "XNFCE1_GB", UNIPHIER_PIN_IECTRL_NONE,
82 0, UNIPHIER_PIN_DRV_2BIT,
83 119, UNIPHIER_PIN_PULL_UP),
84 UNIPHIER_PINCTRL_PIN(23, "NANDRYBY1_GB", UNIPHIER_PIN_IECTRL_NONE,
85 1, UNIPHIER_PIN_DRV_2BIT,
86 120, UNIPHIER_PIN_PULL_UP),
87 UNIPHIER_PINCTRL_PIN(24, "NFD0_GB", UNIPHIER_PIN_IECTRL_NONE,
88 2, UNIPHIER_PIN_DRV_2BIT,
89 121, UNIPHIER_PIN_PULL_UP),
90 UNIPHIER_PINCTRL_PIN(25, "NFD1_GB", UNIPHIER_PIN_IECTRL_NONE,
91 3, UNIPHIER_PIN_DRV_2BIT,
92 122, UNIPHIER_PIN_PULL_UP),
93 UNIPHIER_PINCTRL_PIN(26, "NFD2_GB", UNIPHIER_PIN_IECTRL_NONE,
94 4, UNIPHIER_PIN_DRV_2BIT,
95 123, UNIPHIER_PIN_PULL_UP),
96 UNIPHIER_PINCTRL_PIN(27, "NFD3_GB", UNIPHIER_PIN_IECTRL_NONE,
97 5, UNIPHIER_PIN_DRV_2BIT,
98 124, UNIPHIER_PIN_PULL_UP),
99 UNIPHIER_PINCTRL_PIN(28, "NFD4_GB", UNIPHIER_PIN_IECTRL_NONE,
100 6, UNIPHIER_PIN_DRV_2BIT,
101 125, UNIPHIER_PIN_PULL_UP),
102 UNIPHIER_PINCTRL_PIN(29, "NFD5_GB", UNIPHIER_PIN_IECTRL_NONE,
103 7, UNIPHIER_PIN_DRV_2BIT,
104 126, UNIPHIER_PIN_PULL_UP),
105 UNIPHIER_PINCTRL_PIN(30, "NFD6_GB", UNIPHIER_PIN_IECTRL_NONE,
106 8, UNIPHIER_PIN_DRV_2BIT,
107 127, UNIPHIER_PIN_PULL_UP),
108 UNIPHIER_PINCTRL_PIN(31, "NFD7_GB", UNIPHIER_PIN_IECTRL_NONE,
109 9, UNIPHIER_PIN_DRV_2BIT,
110 128, UNIPHIER_PIN_PULL_UP),
111 UNIPHIER_PINCTRL_PIN(32, "SDCLK", 8,
112 10, UNIPHIER_PIN_DRV_2BIT,
113 -1, UNIPHIER_PIN_PULL_NONE),
114 UNIPHIER_PINCTRL_PIN(33, "SDCMD", 8,
115 11, UNIPHIER_PIN_DRV_2BIT,
116 -1, UNIPHIER_PIN_PULL_NONE),
117 UNIPHIER_PINCTRL_PIN(34, "SDDAT0", 8,
118 12, UNIPHIER_PIN_DRV_2BIT,
119 -1, UNIPHIER_PIN_PULL_NONE),
120 UNIPHIER_PINCTRL_PIN(35, "SDDAT1", 8,
121 13, UNIPHIER_PIN_DRV_2BIT,
122 -1, UNIPHIER_PIN_PULL_NONE),
123 UNIPHIER_PINCTRL_PIN(36, "SDDAT2", 8,
124 14, UNIPHIER_PIN_DRV_2BIT,
125 -1, UNIPHIER_PIN_PULL_NONE),
126 UNIPHIER_PINCTRL_PIN(37, "SDDAT3", 8,
127 15, UNIPHIER_PIN_DRV_2BIT,
128 -1, UNIPHIER_PIN_PULL_NONE),
129 UNIPHIER_PINCTRL_PIN(38, "SDCD", 8,
130 -1, UNIPHIER_PIN_DRV_FIXED4,
131 129, UNIPHIER_PIN_PULL_DOWN),
132 UNIPHIER_PINCTRL_PIN(39, "SDWP", 8,
133 -1, UNIPHIER_PIN_DRV_FIXED4,
134 130, UNIPHIER_PIN_PULL_DOWN),
135 UNIPHIER_PINCTRL_PIN(40, "SDVOLC", 9,
136 -1, UNIPHIER_PIN_DRV_FIXED4,
137 131, UNIPHIER_PIN_PULL_DOWN),
138 UNIPHIER_PINCTRL_PIN(41, "USB0VBUS", 0,
139 37, UNIPHIER_PIN_DRV_1BIT,
140 37, UNIPHIER_PIN_PULL_DOWN),
141 UNIPHIER_PINCTRL_PIN(42, "USB0OD", 0,
142 38, UNIPHIER_PIN_DRV_1BIT,
143 38, UNIPHIER_PIN_PULL_DOWN),
144 UNIPHIER_PINCTRL_PIN(43, "USB1VBUS", 0,
145 39, UNIPHIER_PIN_DRV_1BIT,
146 39, UNIPHIER_PIN_PULL_DOWN),
147 UNIPHIER_PINCTRL_PIN(44, "USB1OD", 0,
148 40, UNIPHIER_PIN_DRV_1BIT,
149 40, UNIPHIER_PIN_PULL_DOWN),
150 UNIPHIER_PINCTRL_PIN(45, "PCRESET", 0,
151 41, UNIPHIER_PIN_DRV_1BIT,
152 41, UNIPHIER_PIN_PULL_DOWN),
153 UNIPHIER_PINCTRL_PIN(46, "PCREG", 0,
154 42, UNIPHIER_PIN_DRV_1BIT,
155 42, UNIPHIER_PIN_PULL_DOWN),
156 UNIPHIER_PINCTRL_PIN(47, "PCCE2", 0,
157 43, UNIPHIER_PIN_DRV_1BIT,
158 43, UNIPHIER_PIN_PULL_DOWN),
159 UNIPHIER_PINCTRL_PIN(48, "PCVS1", 0,
160 44, UNIPHIER_PIN_DRV_1BIT,
161 44, UNIPHIER_PIN_PULL_DOWN),
162 UNIPHIER_PINCTRL_PIN(49, "PCCD2", 0,
163 45, UNIPHIER_PIN_DRV_1BIT,
164 45, UNIPHIER_PIN_PULL_DOWN),
165 UNIPHIER_PINCTRL_PIN(50, "PCCD1", 0,
166 46, UNIPHIER_PIN_DRV_1BIT,
167 46, UNIPHIER_PIN_PULL_DOWN),
168 UNIPHIER_PINCTRL_PIN(51, "PCREADY", 0,
169 47, UNIPHIER_PIN_DRV_1BIT,
170 47, UNIPHIER_PIN_PULL_DOWN),
171 UNIPHIER_PINCTRL_PIN(52, "PCDOE", 0,
172 48, UNIPHIER_PIN_DRV_1BIT,
173 48, UNIPHIER_PIN_PULL_DOWN),
174 UNIPHIER_PINCTRL_PIN(53, "PCCE1", 0,
175 49, UNIPHIER_PIN_DRV_1BIT,
176 49, UNIPHIER_PIN_PULL_DOWN),
177 UNIPHIER_PINCTRL_PIN(54, "PCWE", 0,
178 50, UNIPHIER_PIN_DRV_1BIT,
179 50, UNIPHIER_PIN_PULL_DOWN),
180 UNIPHIER_PINCTRL_PIN(55, "PCOE", 0,
181 51, UNIPHIER_PIN_DRV_1BIT,
182 51, UNIPHIER_PIN_PULL_DOWN),
183 UNIPHIER_PINCTRL_PIN(56, "PCWAIT", 0,
184 52, UNIPHIER_PIN_DRV_1BIT,
185 52, UNIPHIER_PIN_PULL_DOWN),
186 UNIPHIER_PINCTRL_PIN(57, "PCIOWR", 0,
187 53, UNIPHIER_PIN_DRV_1BIT,
188 53, UNIPHIER_PIN_PULL_DOWN),
189 UNIPHIER_PINCTRL_PIN(58, "PCIORD", 0,
190 54, UNIPHIER_PIN_DRV_1BIT,
191 54, UNIPHIER_PIN_PULL_DOWN),
192 UNIPHIER_PINCTRL_PIN(59, "HS0DIN0", 0,
193 55, UNIPHIER_PIN_DRV_1BIT,
194 55, UNIPHIER_PIN_PULL_DOWN),
195 UNIPHIER_PINCTRL_PIN(60, "HS0DIN1", 0,
196 56, UNIPHIER_PIN_DRV_1BIT,
197 56, UNIPHIER_PIN_PULL_DOWN),
198 UNIPHIER_PINCTRL_PIN(61, "HS0DIN2", 0,
199 57, UNIPHIER_PIN_DRV_1BIT,
200 57, UNIPHIER_PIN_PULL_DOWN),
201 UNIPHIER_PINCTRL_PIN(62, "HS0DIN3", 0,
202 58, UNIPHIER_PIN_DRV_1BIT,
203 58, UNIPHIER_PIN_PULL_DOWN),
204 UNIPHIER_PINCTRL_PIN(63, "HS0DIN4", 0,
205 59, UNIPHIER_PIN_DRV_1BIT,
206 59, UNIPHIER_PIN_PULL_DOWN),
207 UNIPHIER_PINCTRL_PIN(64, "HS0DIN5", 0,
208 60, UNIPHIER_PIN_DRV_1BIT,
209 60, UNIPHIER_PIN_PULL_DOWN),
210 UNIPHIER_PINCTRL_PIN(65, "HS0DIN6", 0,
211 61, UNIPHIER_PIN_DRV_1BIT,
212 61, UNIPHIER_PIN_PULL_DOWN),
213 UNIPHIER_PINCTRL_PIN(66, "HS0DIN7", 0,
214 62, UNIPHIER_PIN_DRV_1BIT,
215 62, UNIPHIER_PIN_PULL_DOWN),
216 UNIPHIER_PINCTRL_PIN(67, "HS0BCLKIN", 0,
217 63, UNIPHIER_PIN_DRV_1BIT,
218 63, UNIPHIER_PIN_PULL_DOWN),
219 UNIPHIER_PINCTRL_PIN(68, "HS0VALIN", 0,
220 64, UNIPHIER_PIN_DRV_1BIT,
221 64, UNIPHIER_PIN_PULL_DOWN),
222 UNIPHIER_PINCTRL_PIN(69, "HS0SYNCIN", 0,
223 65, UNIPHIER_PIN_DRV_1BIT,
224 65, UNIPHIER_PIN_PULL_DOWN),
225 UNIPHIER_PINCTRL_PIN(70, "HSDOUT0", 0,
226 66, UNIPHIER_PIN_DRV_1BIT,
227 66, UNIPHIER_PIN_PULL_DOWN),
228 UNIPHIER_PINCTRL_PIN(71, "HSDOUT1", 0,
229 67, UNIPHIER_PIN_DRV_1BIT,
230 67, UNIPHIER_PIN_PULL_DOWN),
231 UNIPHIER_PINCTRL_PIN(72, "HSDOUT2", 0,
232 68, UNIPHIER_PIN_DRV_1BIT,
233 68, UNIPHIER_PIN_PULL_DOWN),
234 UNIPHIER_PINCTRL_PIN(73, "HSDOUT3", 0,
235 69, UNIPHIER_PIN_DRV_1BIT,
236 69, UNIPHIER_PIN_PULL_DOWN),
237 UNIPHIER_PINCTRL_PIN(74, "HSDOUT4", 0,
238 70, UNIPHIER_PIN_DRV_1BIT,
239 70, UNIPHIER_PIN_PULL_DOWN),
240 UNIPHIER_PINCTRL_PIN(75, "HSDOUT5", 0,
241 71, UNIPHIER_PIN_DRV_1BIT,
242 71, UNIPHIER_PIN_PULL_DOWN),
243 UNIPHIER_PINCTRL_PIN(76, "HSDOUT6", 0,
244 72, UNIPHIER_PIN_DRV_1BIT,
245 72, UNIPHIER_PIN_PULL_DOWN),
246 UNIPHIER_PINCTRL_PIN(77, "HSDOUT7", 0,
247 73, UNIPHIER_PIN_DRV_1BIT,
248 73, UNIPHIER_PIN_PULL_DOWN),
249 UNIPHIER_PINCTRL_PIN(78, "HSBCLKOUT", 0,
250 74, UNIPHIER_PIN_DRV_1BIT,
251 74, UNIPHIER_PIN_PULL_DOWN),
252 UNIPHIER_PINCTRL_PIN(79, "HSVALOUT", 0,
253 75, UNIPHIER_PIN_DRV_1BIT,
254 75, UNIPHIER_PIN_PULL_DOWN),
255 UNIPHIER_PINCTRL_PIN(80, "HSSYNCOUT", 0,
256 76, UNIPHIER_PIN_DRV_1BIT,
257 76, UNIPHIER_PIN_PULL_DOWN),
258 UNIPHIER_PINCTRL_PIN(81, "HS1DIN0", 0,
259 77, UNIPHIER_PIN_DRV_1BIT,
260 77, UNIPHIER_PIN_PULL_DOWN),
261 UNIPHIER_PINCTRL_PIN(82, "HS1DIN1", 0,
262 78, UNIPHIER_PIN_DRV_1BIT,
263 78, UNIPHIER_PIN_PULL_DOWN),
264 UNIPHIER_PINCTRL_PIN(83, "HS1DIN2", 0,
265 79, UNIPHIER_PIN_DRV_1BIT,
266 79, UNIPHIER_PIN_PULL_DOWN),
267 UNIPHIER_PINCTRL_PIN(84, "HS1DIN3", 0,
268 80, UNIPHIER_PIN_DRV_1BIT,
269 80, UNIPHIER_PIN_PULL_DOWN),
270 UNIPHIER_PINCTRL_PIN(85, "HS1DIN4", 0,
271 81, UNIPHIER_PIN_DRV_1BIT,
272 81, UNIPHIER_PIN_PULL_DOWN),
273 UNIPHIER_PINCTRL_PIN(86, "HS1DIN5", 0,
274 82, UNIPHIER_PIN_DRV_1BIT,
275 82, UNIPHIER_PIN_PULL_DOWN),
276 UNIPHIER_PINCTRL_PIN(87, "HS1DIN6", 0,
277 83, UNIPHIER_PIN_DRV_1BIT,
278 83, UNIPHIER_PIN_PULL_DOWN),
279 UNIPHIER_PINCTRL_PIN(88, "HS1DIN7", 0,
280 84, UNIPHIER_PIN_DRV_1BIT,
281 84, UNIPHIER_PIN_PULL_DOWN),
282 UNIPHIER_PINCTRL_PIN(89, "HS1BCLKIN", 0,
283 85, UNIPHIER_PIN_DRV_1BIT,
284 85, UNIPHIER_PIN_PULL_DOWN),
285 UNIPHIER_PINCTRL_PIN(90, "HS1VALIN", 0,
286 86, UNIPHIER_PIN_DRV_1BIT,
287 86, UNIPHIER_PIN_PULL_DOWN),
288 UNIPHIER_PINCTRL_PIN(91, "HS1SYNCIN", 0,
289 87, UNIPHIER_PIN_DRV_1BIT,
290 87, UNIPHIER_PIN_PULL_DOWN),
291 UNIPHIER_PINCTRL_PIN(92, "AGCI", 3,
292 -1, UNIPHIER_PIN_DRV_FIXED4,
293 132, UNIPHIER_PIN_PULL_DOWN),
294 UNIPHIER_PINCTRL_PIN(93, "AGCR", 4,
295 -1, UNIPHIER_PIN_DRV_FIXED4,
296 133, UNIPHIER_PIN_PULL_DOWN),
297 UNIPHIER_PINCTRL_PIN(94, "AGCBS", 5,
298 -1, UNIPHIER_PIN_DRV_FIXED4,
299 134, UNIPHIER_PIN_PULL_DOWN),
300 UNIPHIER_PINCTRL_PIN(95, "IECOUT", 0,
301 88, UNIPHIER_PIN_DRV_1BIT,
302 88, UNIPHIER_PIN_PULL_DOWN),
303 UNIPHIER_PINCTRL_PIN(96, "ASMCK", 0,
304 89, UNIPHIER_PIN_DRV_1BIT,
305 89, UNIPHIER_PIN_PULL_DOWN),
306 UNIPHIER_PINCTRL_PIN(97, "ABCKO", UNIPHIER_PIN_IECTRL_NONE,
307 90, UNIPHIER_PIN_DRV_1BIT,
308 90, UNIPHIER_PIN_PULL_DOWN),
309 UNIPHIER_PINCTRL_PIN(98, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE,
310 91, UNIPHIER_PIN_DRV_1BIT,
311 91, UNIPHIER_PIN_PULL_DOWN),
312 UNIPHIER_PINCTRL_PIN(99, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE,
313 92, UNIPHIER_PIN_DRV_1BIT,
314 92, UNIPHIER_PIN_PULL_DOWN),
315 UNIPHIER_PINCTRL_PIN(100, "ASDOUT1", UNIPHIER_PIN_IECTRL_NONE,
316 93, UNIPHIER_PIN_DRV_1BIT,
317 93, UNIPHIER_PIN_PULL_UP),
318 UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0,
319 94, UNIPHIER_PIN_DRV_1BIT,
320 94, UNIPHIER_PIN_PULL_DOWN),
321 UNIPHIER_PINCTRL_PIN(102, "SDA0", 10,
322 -1, UNIPHIER_PIN_DRV_FIXED4,
323 -1, UNIPHIER_PIN_PULL_NONE),
324 UNIPHIER_PINCTRL_PIN(103, "SCL0", 10,
325 -1, UNIPHIER_PIN_DRV_FIXED4,
326 -1, UNIPHIER_PIN_PULL_NONE),
327 UNIPHIER_PINCTRL_PIN(104, "SDA1", 11,
328 -1, UNIPHIER_PIN_DRV_FIXED4,
329 -1, UNIPHIER_PIN_PULL_NONE),
330 UNIPHIER_PINCTRL_PIN(105, "SCL1", 11,
331 -1, UNIPHIER_PIN_DRV_FIXED4,
332 -1, UNIPHIER_PIN_PULL_NONE),
333 UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", 12,
334 -1, UNIPHIER_PIN_DRV_FIXED4,
335 -1, UNIPHIER_PIN_PULL_NONE),
336 UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", 12,
337 -1, UNIPHIER_PIN_DRV_FIXED4,
338 -1, UNIPHIER_PIN_PULL_NONE),
339 UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", 13,
340 -1, UNIPHIER_PIN_DRV_FIXED4,
341 -1, UNIPHIER_PIN_PULL_NONE),
342 UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", 13,
343 -1, UNIPHIER_PIN_DRV_FIXED4,
344 -1, UNIPHIER_PIN_PULL_NONE),
345 UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE,
346 95, UNIPHIER_PIN_DRV_1BIT,
347 95, UNIPHIER_PIN_PULL_UP),
348 UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE,
349 96, UNIPHIER_PIN_DRV_1BIT,
350 96, UNIPHIER_PIN_PULL_UP),
351 UNIPHIER_PINCTRL_PIN(112, "SBO1", 0,
352 97, UNIPHIER_PIN_DRV_1BIT,
353 97, UNIPHIER_PIN_PULL_UP),
354 UNIPHIER_PINCTRL_PIN(113, "SBI1", 0,
355 98, UNIPHIER_PIN_DRV_1BIT,
356 98, UNIPHIER_PIN_PULL_UP),
357 UNIPHIER_PINCTRL_PIN(114, "TXD1", 0,
358 99, UNIPHIER_PIN_DRV_1BIT,
359 99, UNIPHIER_PIN_PULL_UP),
360 UNIPHIER_PINCTRL_PIN(115, "RXD1", 0,
361 100, UNIPHIER_PIN_DRV_1BIT,
362 100, UNIPHIER_PIN_PULL_UP),
363 UNIPHIER_PINCTRL_PIN(116, "HIN", 1,
364 -1, UNIPHIER_PIN_DRV_FIXED5,
365 -1, UNIPHIER_PIN_PULL_NONE),
366 UNIPHIER_PINCTRL_PIN(117, "VIN", 2,
367 -1, UNIPHIER_PIN_DRV_FIXED5,
368 -1, UNIPHIER_PIN_PULL_NONE),
369 UNIPHIER_PINCTRL_PIN(118, "TCON0", 0,
370 101, UNIPHIER_PIN_DRV_1BIT,
371 101, UNIPHIER_PIN_PULL_DOWN),
372 UNIPHIER_PINCTRL_PIN(119, "TCON1", 0,
373 102, UNIPHIER_PIN_DRV_1BIT,
374 102, UNIPHIER_PIN_PULL_DOWN),
375 UNIPHIER_PINCTRL_PIN(120, "TCON2", 0,
376 103, UNIPHIER_PIN_DRV_1BIT,
377 103, UNIPHIER_PIN_PULL_DOWN),
378 UNIPHIER_PINCTRL_PIN(121, "TCON3", 0,
379 104, UNIPHIER_PIN_DRV_1BIT,
380 104, UNIPHIER_PIN_PULL_DOWN),
381 UNIPHIER_PINCTRL_PIN(122, "TCON4", 0,
382 105, UNIPHIER_PIN_DRV_1BIT,
383 105, UNIPHIER_PIN_PULL_DOWN),
384 UNIPHIER_PINCTRL_PIN(123, "TCON5", 0,
385 106, UNIPHIER_PIN_DRV_1BIT,
386 106, UNIPHIER_PIN_PULL_DOWN),
387 UNIPHIER_PINCTRL_PIN(124, "TCON6", 0,
388 107, UNIPHIER_PIN_DRV_1BIT,
389 107, UNIPHIER_PIN_PULL_DOWN),
390 UNIPHIER_PINCTRL_PIN(125, "TCON7", 0,
391 108, UNIPHIER_PIN_DRV_1BIT,
392 108, UNIPHIER_PIN_PULL_DOWN),
393 UNIPHIER_PINCTRL_PIN(126, "TCON8", 0,
394 109, UNIPHIER_PIN_DRV_1BIT,
395 109, UNIPHIER_PIN_PULL_DOWN),
396 UNIPHIER_PINCTRL_PIN(127, "PWMA", 0,
397 110, UNIPHIER_PIN_DRV_1BIT,
398 110, UNIPHIER_PIN_PULL_DOWN),
399 UNIPHIER_PINCTRL_PIN(128, "XIRQ0", 0,
400 111, UNIPHIER_PIN_DRV_1BIT,
401 111, UNIPHIER_PIN_PULL_DOWN),
402 UNIPHIER_PINCTRL_PIN(129, "XIRQ1", 0,
403 112, UNIPHIER_PIN_DRV_1BIT,
404 112, UNIPHIER_PIN_PULL_DOWN),
405 UNIPHIER_PINCTRL_PIN(130, "XIRQ2", 0,
406 113, UNIPHIER_PIN_DRV_1BIT,
407 113, UNIPHIER_PIN_PULL_DOWN),
408 UNIPHIER_PINCTRL_PIN(131, "XIRQ3", 0,
409 114, UNIPHIER_PIN_DRV_1BIT,
410 114, UNIPHIER_PIN_PULL_DOWN),
411 UNIPHIER_PINCTRL_PIN(132, "XIRQ4", 0,
412 115, UNIPHIER_PIN_DRV_1BIT,
413 115, UNIPHIER_PIN_PULL_DOWN),
414 UNIPHIER_PINCTRL_PIN(133, "XIRQ5", 0,
415 116, UNIPHIER_PIN_DRV_1BIT,
416 116, UNIPHIER_PIN_PULL_DOWN),
417 UNIPHIER_PINCTRL_PIN(134, "XIRQ6", 0,
418 117, UNIPHIER_PIN_DRV_1BIT,
419 117, UNIPHIER_PIN_PULL_DOWN),
420 UNIPHIER_PINCTRL_PIN(135, "XIRQ7", 0,
421 118, UNIPHIER_PIN_DRV_1BIT,
422 118, UNIPHIER_PIN_PULL_DOWN),
423 /* dedicated pins */
424 UNIPHIER_PINCTRL_PIN(136, "ED0", -1,
425 0, UNIPHIER_PIN_DRV_1BIT,
426 0, UNIPHIER_PIN_PULL_DOWN),
427 UNIPHIER_PINCTRL_PIN(137, "ED1", -1,
428 1, UNIPHIER_PIN_DRV_1BIT,
429 1, UNIPHIER_PIN_PULL_DOWN),
430 UNIPHIER_PINCTRL_PIN(138, "ED2", -1,
431 2, UNIPHIER_PIN_DRV_1BIT,
432 2, UNIPHIER_PIN_PULL_DOWN),
433 UNIPHIER_PINCTRL_PIN(139, "ED3", -1,
434 3, UNIPHIER_PIN_DRV_1BIT,
435 3, UNIPHIER_PIN_PULL_DOWN),
436 UNIPHIER_PINCTRL_PIN(140, "ED4", -1,
437 4, UNIPHIER_PIN_DRV_1BIT,
438 4, UNIPHIER_PIN_PULL_DOWN),
439 UNIPHIER_PINCTRL_PIN(141, "ED5", -1,
440 5, UNIPHIER_PIN_DRV_1BIT,
441 5, UNIPHIER_PIN_PULL_DOWN),
442 UNIPHIER_PINCTRL_PIN(142, "ED6", -1,
443 6, UNIPHIER_PIN_DRV_1BIT,
444 6, UNIPHIER_PIN_PULL_DOWN),
445 UNIPHIER_PINCTRL_PIN(143, "ED7", -1,
446 7, UNIPHIER_PIN_DRV_1BIT,
447 7, UNIPHIER_PIN_PULL_DOWN),
448 UNIPHIER_PINCTRL_PIN(144, "XERWE0", -1,
449 8, UNIPHIER_PIN_DRV_1BIT,
450 8, UNIPHIER_PIN_PULL_UP),
451 UNIPHIER_PINCTRL_PIN(145, "XERWE1", -1,
452 9, UNIPHIER_PIN_DRV_1BIT,
453 9, UNIPHIER_PIN_PULL_UP),
454 UNIPHIER_PINCTRL_PIN(146, "ERXW", -1,
455 10, UNIPHIER_PIN_DRV_1BIT,
456 10, UNIPHIER_PIN_PULL_UP),
457 UNIPHIER_PINCTRL_PIN(147, "ES0", -1,
458 11, UNIPHIER_PIN_DRV_1BIT,
459 11, UNIPHIER_PIN_PULL_UP),
460 UNIPHIER_PINCTRL_PIN(148, "ES1", -1,
461 12, UNIPHIER_PIN_DRV_1BIT,
462 12, UNIPHIER_PIN_PULL_UP),
463 UNIPHIER_PINCTRL_PIN(149, "ES2", -1,
464 13, UNIPHIER_PIN_DRV_1BIT,
465 13, UNIPHIER_PIN_PULL_UP),
466 UNIPHIER_PINCTRL_PIN(150, "XECS1", -1,
467 14, UNIPHIER_PIN_DRV_1BIT,
468 14, UNIPHIER_PIN_PULL_DOWN),
469};
470
471static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27};
472static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1};
473static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31};
474static const int emmc_dat8_muxvals[] = {1, 1, 1, 1};
475static const unsigned ether_mii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14,
476 61, 63, 64, 65, 66, 67, 68};
477static const int ether_mii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
478 13, 13, 27, 27, 27, 27, 27, 27, 27};
479static const unsigned ether_rmii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13,
480 14};
481static const int ether_rmii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13,
482 13, 13, 13};
483static const unsigned i2c0_pins[] = {102, 103};
484static const int i2c0_muxvals[] = {0, 0};
485static const unsigned i2c1_pins[] = {104, 105};
486static const int i2c1_muxvals[] = {0, 0};
487static const unsigned i2c2_pins[] = {108, 109};
488static const int i2c2_muxvals[] = {2, 2};
489static const unsigned i2c3_pins[] = {108, 109};
490static const int i2c3_muxvals[] = {3, 3};
491static const unsigned nand_pins[] = {15, 16, 17, 18, 19, 20, 21, 24, 25, 26,
492 27, 28, 29, 30, 31};
493static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
494static const unsigned nand_cs1_pins[] = {22, 23};
495static const int nand_cs1_muxvals[] = {0, 0};
496static const unsigned sd_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40};
497static const int sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
498static const unsigned spi0_pins[] = {118, 119, 120, 121};
499static const int spi0_muxvals[] = {3, 3, 3, 3};
500static const unsigned system_bus_pins[] = {136, 137, 138, 139, 140, 141, 142,
501 143, 144, 145, 146, 147, 148, 149};
502static const int system_bus_muxvals[] = {-1, -1, -1, -1, -1, -1, -1, -1, -1,
503 -1, -1, -1, -1, -1};
504static const unsigned system_bus_cs1_pins[] = {150};
505static const int system_bus_cs1_muxvals[] = {-1};
506static const unsigned system_bus_cs2_pins[] = {10};
507static const int system_bus_cs2_muxvals[] = {1};
508static const unsigned system_bus_cs3_pins[] = {11};
509static const int system_bus_cs3_muxvals[] = {1};
510static const unsigned system_bus_cs4_pins[] = {12};
511static const int system_bus_cs4_muxvals[] = {1};
512static const unsigned system_bus_cs5_pins[] = {13};
513static const int system_bus_cs5_muxvals[] = {1};
514static const unsigned uart0_pins[] = {70, 71};
515static const int uart0_muxvals[] = {3, 3};
516static const unsigned uart0_ctsrts_pins[] = {72, 74};
517static const int uart0_ctsrts_muxvals[] = {3, 3};
518static const unsigned uart0_modem_pins[] = {73};
519static const int uart0_modem_muxvals[] = {3};
520static const unsigned uart1_pins[] = {114, 115};
521static const int uart1_muxvals[] = {0, 0};
522static const unsigned uart2_pins[] = {112, 113};
523static const int uart2_muxvals[] = {1, 1};
524static const unsigned uart3_pins[] = {110, 111};
525static const int uart3_muxvals[] = {1, 1};
526static const unsigned usb0_pins[] = {41, 42};
527static const int usb0_muxvals[] = {0, 0};
528static const unsigned usb1_pins[] = {43, 44};
529static const int usb1_muxvals[] = {0, 0};
530static const unsigned usb2_pins[] = {114, 115};
531static const int usb2_muxvals[] = {1, 1};
532static const unsigned int gpio_range0_pins[] = {
533 0, 1, 2, 3, 4, 5, 6, 7, /* PORT0x */
534 8, 9, 10, 11, 12, 13, 14, 15, /* PORT1x */
535 32, 33, 34, 35, 36, 37, 38, 39, /* PORT2x */
536 59, 60, 61, 62, 63, 64, 65, 66, /* PORT3x */
537 95, 96, 97, 98, 99, 100, 101, 57, /* PORT4x */
538 70, 71, 72, 73, 74, 75, 76, 77, /* PORT5x */
539 81, 83, 84, 85, 86, 89, 90, 91, /* PORT6x */
540 118, 119, 120, 121, 122, 53, 54, 55, /* PORT7x */
541 41, 42, 43, 44, 79, 80, 18, 19, /* PORT8x */
542 110, 111, 112, 113, 114, 115, 16, 17, /* PORT9x */
543 40, 67, 68, 69, 78, 92, 93, 94, /* PORT10x */
544 48, 49, 46, 45, 123, 124, 125, 126, /* PORT11x */
545 47, 127, 20, 56, 22, /* PORT120-124 */
546};
547static const unsigned int gpio_range1_pins[] = {
548 116, 117, /* PORT130-131 */
549};
550static const unsigned int gpio_range2_pins[] = {
551 102, 103, 104, 105, 106, 107, 108, 109, /* PORT14x */
552 128, 129, 130, 131, 132, 133, 134, 135, /* XIRQ0-7 */
553 82, 87, 88, 50, 51, 23, 52, 58, /* XIRQ8-12, PORT165, XIRQ14-15 */
554};
555
556static const struct uniphier_pinctrl_group uniphier_sld8_groups[] = {
557 UNIPHIER_PINCTRL_GROUP(emmc),
558 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
559 UNIPHIER_PINCTRL_GROUP(ether_mii),
560 UNIPHIER_PINCTRL_GROUP(ether_rmii),
561 UNIPHIER_PINCTRL_GROUP(i2c0),
562 UNIPHIER_PINCTRL_GROUP(i2c1),
563 UNIPHIER_PINCTRL_GROUP(i2c2),
564 UNIPHIER_PINCTRL_GROUP(i2c3),
565 UNIPHIER_PINCTRL_GROUP(nand),
566 UNIPHIER_PINCTRL_GROUP(nand_cs1),
567 UNIPHIER_PINCTRL_GROUP(sd),
568 UNIPHIER_PINCTRL_GROUP(spi0),
569 UNIPHIER_PINCTRL_GROUP(system_bus),
570 UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
571 UNIPHIER_PINCTRL_GROUP(system_bus_cs2),
572 UNIPHIER_PINCTRL_GROUP(system_bus_cs3),
573 UNIPHIER_PINCTRL_GROUP(system_bus_cs4),
574 UNIPHIER_PINCTRL_GROUP(system_bus_cs5),
575 UNIPHIER_PINCTRL_GROUP(uart0),
576 UNIPHIER_PINCTRL_GROUP(uart0_ctsrts),
577 UNIPHIER_PINCTRL_GROUP(uart0_modem),
578 UNIPHIER_PINCTRL_GROUP(uart1),
579 UNIPHIER_PINCTRL_GROUP(uart2),
580 UNIPHIER_PINCTRL_GROUP(uart3),
581 UNIPHIER_PINCTRL_GROUP(usb0),
582 UNIPHIER_PINCTRL_GROUP(usb1),
583 UNIPHIER_PINCTRL_GROUP(usb2),
584 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range0),
585 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range1),
586 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2),
587};
588
589static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
590static const char * const ether_mii_groups[] = {"ether_mii"};
591static const char * const ether_rmii_groups[] = {"ether_rmii"};
592static const char * const i2c0_groups[] = {"i2c0"};
593static const char * const i2c1_groups[] = {"i2c1"};
594static const char * const i2c2_groups[] = {"i2c2"};
595static const char * const i2c3_groups[] = {"i2c3"};
596static const char * const nand_groups[] = {"nand", "nand_cs1"};
597static const char * const sd_groups[] = {"sd"};
598static const char * const spi0_groups[] = {"spi0"};
599static const char * const system_bus_groups[] = {"system_bus",
600 "system_bus_cs1",
601 "system_bus_cs2",
602 "system_bus_cs3",
603 "system_bus_cs4",
604 "system_bus_cs5"};
605static const char * const uart0_groups[] = {"uart0", "uart0_ctsrts",
606 "uart0_modem"};
607static const char * const uart1_groups[] = {"uart1"};
608static const char * const uart2_groups[] = {"uart2"};
609static const char * const uart3_groups[] = {"uart3"};
610static const char * const usb0_groups[] = {"usb0"};
611static const char * const usb1_groups[] = {"usb1"};
612static const char * const usb2_groups[] = {"usb2"};
613
614static const struct uniphier_pinmux_function uniphier_sld8_functions[] = {
615 UNIPHIER_PINMUX_FUNCTION(emmc),
616 UNIPHIER_PINMUX_FUNCTION(ether_mii),
617 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
618 UNIPHIER_PINMUX_FUNCTION(i2c0),
619 UNIPHIER_PINMUX_FUNCTION(i2c1),
620 UNIPHIER_PINMUX_FUNCTION(i2c2),
621 UNIPHIER_PINMUX_FUNCTION(i2c3),
622 UNIPHIER_PINMUX_FUNCTION(nand),
623 UNIPHIER_PINMUX_FUNCTION(sd),
624 UNIPHIER_PINMUX_FUNCTION(spi0),
625 UNIPHIER_PINMUX_FUNCTION(system_bus),
626 UNIPHIER_PINMUX_FUNCTION(uart0),
627 UNIPHIER_PINMUX_FUNCTION(uart1),
628 UNIPHIER_PINMUX_FUNCTION(uart2),
629 UNIPHIER_PINMUX_FUNCTION(uart3),
630 UNIPHIER_PINMUX_FUNCTION(usb0),
631 UNIPHIER_PINMUX_FUNCTION(usb1),
632 UNIPHIER_PINMUX_FUNCTION(usb2),
633};
634
635static int uniphier_sld8_get_gpio_muxval(unsigned int pin,
636 unsigned int gpio_offset)
637{
638 switch (gpio_offset) {
639 case 120 ... 127: /* XIRQ0-XIRQ7 */
640 return 0;
641 case 128 ... 132: /* XIRQ8-12 */
642 case 134 ... 135: /* XIRQ14-15 */
643 return 14;
644 default:
645 return 15;
646 }
647}
648
649static const struct uniphier_pinctrl_socdata uniphier_sld8_pindata = {
650 .pins = uniphier_sld8_pins,
651 .npins = ARRAY_SIZE(uniphier_sld8_pins),
652 .groups = uniphier_sld8_groups,
653 .groups_count = ARRAY_SIZE(uniphier_sld8_groups),
654 .functions = uniphier_sld8_functions,
655 .functions_count = ARRAY_SIZE(uniphier_sld8_functions),
656 .get_gpio_muxval = uniphier_sld8_get_gpio_muxval,
657 .caps = 0,
658};
659
660static int uniphier_sld8_pinctrl_probe(struct platform_device *pdev)
661{
662 return uniphier_pinctrl_probe(pdev, &uniphier_sld8_pindata);
663}
664
665static const struct of_device_id uniphier_sld8_pinctrl_match[] = {
666 { .compatible = "socionext,uniphier-sld8-pinctrl" },
667 { /* sentinel */ }
668};
669
670static struct platform_driver uniphier_sld8_pinctrl_driver = {
671 .probe = uniphier_sld8_pinctrl_probe,
672 .driver = {
673 .name = "uniphier-sld8-pinctrl",
674 .of_match_table = uniphier_sld8_pinctrl_match,
675 .pm = &uniphier_pinctrl_pm_ops,
676 },
677};
678builtin_platform_driver(uniphier_sld8_pinctrl_driver);
1/*
2 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#include <linux/kernel.h>
16#include <linux/module.h>
17#include <linux/pinctrl/pinctrl.h>
18#include <linux/platform_device.h>
19
20#include "pinctrl-uniphier.h"
21
22static const struct pinctrl_pin_desc uniphier_sld8_pins[] = {
23 UNIPHIER_PINCTRL_PIN(0, "PCA00", 0,
24 15, UNIPHIER_PIN_DRV_1BIT,
25 15, UNIPHIER_PIN_PULL_DOWN),
26 UNIPHIER_PINCTRL_PIN(1, "PCA01", 0,
27 16, UNIPHIER_PIN_DRV_1BIT,
28 16, UNIPHIER_PIN_PULL_DOWN),
29 UNIPHIER_PINCTRL_PIN(2, "PCA02", 0,
30 17, UNIPHIER_PIN_DRV_1BIT,
31 17, UNIPHIER_PIN_PULL_DOWN),
32 UNIPHIER_PINCTRL_PIN(3, "PCA03", 0,
33 18, UNIPHIER_PIN_DRV_1BIT,
34 18, UNIPHIER_PIN_PULL_DOWN),
35 UNIPHIER_PINCTRL_PIN(4, "PCA04", 0,
36 19, UNIPHIER_PIN_DRV_1BIT,
37 19, UNIPHIER_PIN_PULL_DOWN),
38 UNIPHIER_PINCTRL_PIN(5, "PCA05", 0,
39 20, UNIPHIER_PIN_DRV_1BIT,
40 20, UNIPHIER_PIN_PULL_DOWN),
41 UNIPHIER_PINCTRL_PIN(6, "PCA06", 0,
42 21, UNIPHIER_PIN_DRV_1BIT,
43 21, UNIPHIER_PIN_PULL_DOWN),
44 UNIPHIER_PINCTRL_PIN(7, "PCA07", 0,
45 22, UNIPHIER_PIN_DRV_1BIT,
46 22, UNIPHIER_PIN_PULL_DOWN),
47 UNIPHIER_PINCTRL_PIN(8, "PCA08", 0,
48 23, UNIPHIER_PIN_DRV_1BIT,
49 23, UNIPHIER_PIN_PULL_DOWN),
50 UNIPHIER_PINCTRL_PIN(9, "PCA09", 0,
51 24, UNIPHIER_PIN_DRV_1BIT,
52 24, UNIPHIER_PIN_PULL_DOWN),
53 UNIPHIER_PINCTRL_PIN(10, "PCA10", 0,
54 25, UNIPHIER_PIN_DRV_1BIT,
55 25, UNIPHIER_PIN_PULL_DOWN),
56 UNIPHIER_PINCTRL_PIN(11, "PCA11", 0,
57 26, UNIPHIER_PIN_DRV_1BIT,
58 26, UNIPHIER_PIN_PULL_DOWN),
59 UNIPHIER_PINCTRL_PIN(12, "PCA12", 0,
60 27, UNIPHIER_PIN_DRV_1BIT,
61 27, UNIPHIER_PIN_PULL_DOWN),
62 UNIPHIER_PINCTRL_PIN(13, "PCA13", 0,
63 28, UNIPHIER_PIN_DRV_1BIT,
64 28, UNIPHIER_PIN_PULL_DOWN),
65 UNIPHIER_PINCTRL_PIN(14, "PCA14", 0,
66 29, UNIPHIER_PIN_DRV_1BIT,
67 29, UNIPHIER_PIN_PULL_DOWN),
68 UNIPHIER_PINCTRL_PIN(15, "XNFRE_GB", UNIPHIER_PIN_IECTRL_NONE,
69 30, UNIPHIER_PIN_DRV_1BIT,
70 30, UNIPHIER_PIN_PULL_UP),
71 UNIPHIER_PINCTRL_PIN(16, "XNFWE_GB", UNIPHIER_PIN_IECTRL_NONE,
72 31, UNIPHIER_PIN_DRV_1BIT,
73 31, UNIPHIER_PIN_PULL_UP),
74 UNIPHIER_PINCTRL_PIN(17, "NFALE_GB", UNIPHIER_PIN_IECTRL_NONE,
75 32, UNIPHIER_PIN_DRV_1BIT,
76 32, UNIPHIER_PIN_PULL_DOWN),
77 UNIPHIER_PINCTRL_PIN(18, "NFCLE_GB", UNIPHIER_PIN_IECTRL_NONE,
78 33, UNIPHIER_PIN_DRV_1BIT,
79 33, UNIPHIER_PIN_PULL_DOWN),
80 UNIPHIER_PINCTRL_PIN(19, "XNFWP_GB", UNIPHIER_PIN_IECTRL_NONE,
81 34, UNIPHIER_PIN_DRV_1BIT,
82 34, UNIPHIER_PIN_PULL_DOWN),
83 UNIPHIER_PINCTRL_PIN(20, "XNFCE0_GB", UNIPHIER_PIN_IECTRL_NONE,
84 35, UNIPHIER_PIN_DRV_1BIT,
85 35, UNIPHIER_PIN_PULL_UP),
86 UNIPHIER_PINCTRL_PIN(21, "NANDRYBY0_GB", UNIPHIER_PIN_IECTRL_NONE,
87 36, UNIPHIER_PIN_DRV_1BIT,
88 36, UNIPHIER_PIN_PULL_UP),
89 UNIPHIER_PINCTRL_PIN(22, "XNFCE1_GB", UNIPHIER_PIN_IECTRL_NONE,
90 0, UNIPHIER_PIN_DRV_2BIT,
91 119, UNIPHIER_PIN_PULL_UP),
92 UNIPHIER_PINCTRL_PIN(23, "NANDRYBY1_GB", UNIPHIER_PIN_IECTRL_NONE,
93 1, UNIPHIER_PIN_DRV_2BIT,
94 120, UNIPHIER_PIN_PULL_UP),
95 UNIPHIER_PINCTRL_PIN(24, "NFD0_GB", UNIPHIER_PIN_IECTRL_NONE,
96 2, UNIPHIER_PIN_DRV_2BIT,
97 121, UNIPHIER_PIN_PULL_UP),
98 UNIPHIER_PINCTRL_PIN(25, "NFD1_GB", UNIPHIER_PIN_IECTRL_NONE,
99 3, UNIPHIER_PIN_DRV_2BIT,
100 122, UNIPHIER_PIN_PULL_UP),
101 UNIPHIER_PINCTRL_PIN(26, "NFD2_GB", UNIPHIER_PIN_IECTRL_NONE,
102 4, UNIPHIER_PIN_DRV_2BIT,
103 123, UNIPHIER_PIN_PULL_UP),
104 UNIPHIER_PINCTRL_PIN(27, "NFD3_GB", UNIPHIER_PIN_IECTRL_NONE,
105 5, UNIPHIER_PIN_DRV_2BIT,
106 124, UNIPHIER_PIN_PULL_UP),
107 UNIPHIER_PINCTRL_PIN(28, "NFD4_GB", UNIPHIER_PIN_IECTRL_NONE,
108 6, UNIPHIER_PIN_DRV_2BIT,
109 125, UNIPHIER_PIN_PULL_UP),
110 UNIPHIER_PINCTRL_PIN(29, "NFD5_GB", UNIPHIER_PIN_IECTRL_NONE,
111 7, UNIPHIER_PIN_DRV_2BIT,
112 126, UNIPHIER_PIN_PULL_UP),
113 UNIPHIER_PINCTRL_PIN(30, "NFD6_GB", UNIPHIER_PIN_IECTRL_NONE,
114 8, UNIPHIER_PIN_DRV_2BIT,
115 127, UNIPHIER_PIN_PULL_UP),
116 UNIPHIER_PINCTRL_PIN(31, "NFD7_GB", UNIPHIER_PIN_IECTRL_NONE,
117 9, UNIPHIER_PIN_DRV_2BIT,
118 128, UNIPHIER_PIN_PULL_UP),
119 UNIPHIER_PINCTRL_PIN(32, "SDCLK", 8,
120 10, UNIPHIER_PIN_DRV_2BIT,
121 -1, UNIPHIER_PIN_PULL_NONE),
122 UNIPHIER_PINCTRL_PIN(33, "SDCMD", 8,
123 11, UNIPHIER_PIN_DRV_2BIT,
124 -1, UNIPHIER_PIN_PULL_NONE),
125 UNIPHIER_PINCTRL_PIN(34, "SDDAT0", 8,
126 12, UNIPHIER_PIN_DRV_2BIT,
127 -1, UNIPHIER_PIN_PULL_NONE),
128 UNIPHIER_PINCTRL_PIN(35, "SDDAT1", 8,
129 13, UNIPHIER_PIN_DRV_2BIT,
130 -1, UNIPHIER_PIN_PULL_NONE),
131 UNIPHIER_PINCTRL_PIN(36, "SDDAT2", 8,
132 14, UNIPHIER_PIN_DRV_2BIT,
133 -1, UNIPHIER_PIN_PULL_NONE),
134 UNIPHIER_PINCTRL_PIN(37, "SDDAT3", 8,
135 15, UNIPHIER_PIN_DRV_2BIT,
136 -1, UNIPHIER_PIN_PULL_NONE),
137 UNIPHIER_PINCTRL_PIN(38, "SDCD", 8,
138 -1, UNIPHIER_PIN_DRV_FIXED4,
139 129, UNIPHIER_PIN_PULL_DOWN),
140 UNIPHIER_PINCTRL_PIN(39, "SDWP", 8,
141 -1, UNIPHIER_PIN_DRV_FIXED4,
142 130, UNIPHIER_PIN_PULL_DOWN),
143 UNIPHIER_PINCTRL_PIN(40, "SDVOLC", 9,
144 -1, UNIPHIER_PIN_DRV_FIXED4,
145 131, UNIPHIER_PIN_PULL_DOWN),
146 UNIPHIER_PINCTRL_PIN(41, "USB0VBUS", 0,
147 37, UNIPHIER_PIN_DRV_1BIT,
148 37, UNIPHIER_PIN_PULL_DOWN),
149 UNIPHIER_PINCTRL_PIN(42, "USB0OD", 0,
150 38, UNIPHIER_PIN_DRV_1BIT,
151 38, UNIPHIER_PIN_PULL_DOWN),
152 UNIPHIER_PINCTRL_PIN(43, "USB1VBUS", 0,
153 39, UNIPHIER_PIN_DRV_1BIT,
154 39, UNIPHIER_PIN_PULL_DOWN),
155 UNIPHIER_PINCTRL_PIN(44, "USB1OD", 0,
156 40, UNIPHIER_PIN_DRV_1BIT,
157 40, UNIPHIER_PIN_PULL_DOWN),
158 UNIPHIER_PINCTRL_PIN(45, "PCRESET", 0,
159 41, UNIPHIER_PIN_DRV_1BIT,
160 41, UNIPHIER_PIN_PULL_DOWN),
161 UNIPHIER_PINCTRL_PIN(46, "PCREG", 0,
162 42, UNIPHIER_PIN_DRV_1BIT,
163 42, UNIPHIER_PIN_PULL_DOWN),
164 UNIPHIER_PINCTRL_PIN(47, "PCCE2", 0,
165 43, UNIPHIER_PIN_DRV_1BIT,
166 43, UNIPHIER_PIN_PULL_DOWN),
167 UNIPHIER_PINCTRL_PIN(48, "PCVS1", 0,
168 44, UNIPHIER_PIN_DRV_1BIT,
169 44, UNIPHIER_PIN_PULL_DOWN),
170 UNIPHIER_PINCTRL_PIN(49, "PCCD2", 0,
171 45, UNIPHIER_PIN_DRV_1BIT,
172 45, UNIPHIER_PIN_PULL_DOWN),
173 UNIPHIER_PINCTRL_PIN(50, "PCCD1", 0,
174 46, UNIPHIER_PIN_DRV_1BIT,
175 46, UNIPHIER_PIN_PULL_DOWN),
176 UNIPHIER_PINCTRL_PIN(51, "PCREADY", 0,
177 47, UNIPHIER_PIN_DRV_1BIT,
178 47, UNIPHIER_PIN_PULL_DOWN),
179 UNIPHIER_PINCTRL_PIN(52, "PCDOE", 0,
180 48, UNIPHIER_PIN_DRV_1BIT,
181 48, UNIPHIER_PIN_PULL_DOWN),
182 UNIPHIER_PINCTRL_PIN(53, "PCCE1", 0,
183 49, UNIPHIER_PIN_DRV_1BIT,
184 49, UNIPHIER_PIN_PULL_DOWN),
185 UNIPHIER_PINCTRL_PIN(54, "PCWE", 0,
186 50, UNIPHIER_PIN_DRV_1BIT,
187 50, UNIPHIER_PIN_PULL_DOWN),
188 UNIPHIER_PINCTRL_PIN(55, "PCOE", 0,
189 51, UNIPHIER_PIN_DRV_1BIT,
190 51, UNIPHIER_PIN_PULL_DOWN),
191 UNIPHIER_PINCTRL_PIN(56, "PCWAIT", 0,
192 52, UNIPHIER_PIN_DRV_1BIT,
193 52, UNIPHIER_PIN_PULL_DOWN),
194 UNIPHIER_PINCTRL_PIN(57, "PCIOWR", 0,
195 53, UNIPHIER_PIN_DRV_1BIT,
196 53, UNIPHIER_PIN_PULL_DOWN),
197 UNIPHIER_PINCTRL_PIN(58, "PCIORD", 0,
198 54, UNIPHIER_PIN_DRV_1BIT,
199 54, UNIPHIER_PIN_PULL_DOWN),
200 UNIPHIER_PINCTRL_PIN(59, "HS0DIN0", 0,
201 55, UNIPHIER_PIN_DRV_1BIT,
202 55, UNIPHIER_PIN_PULL_DOWN),
203 UNIPHIER_PINCTRL_PIN(60, "HS0DIN1", 0,
204 56, UNIPHIER_PIN_DRV_1BIT,
205 56, UNIPHIER_PIN_PULL_DOWN),
206 UNIPHIER_PINCTRL_PIN(61, "HS0DIN2", 0,
207 57, UNIPHIER_PIN_DRV_1BIT,
208 57, UNIPHIER_PIN_PULL_DOWN),
209 UNIPHIER_PINCTRL_PIN(62, "HS0DIN3", 0,
210 58, UNIPHIER_PIN_DRV_1BIT,
211 58, UNIPHIER_PIN_PULL_DOWN),
212 UNIPHIER_PINCTRL_PIN(63, "HS0DIN4", 0,
213 59, UNIPHIER_PIN_DRV_1BIT,
214 59, UNIPHIER_PIN_PULL_DOWN),
215 UNIPHIER_PINCTRL_PIN(64, "HS0DIN5", 0,
216 60, UNIPHIER_PIN_DRV_1BIT,
217 60, UNIPHIER_PIN_PULL_DOWN),
218 UNIPHIER_PINCTRL_PIN(65, "HS0DIN6", 0,
219 61, UNIPHIER_PIN_DRV_1BIT,
220 61, UNIPHIER_PIN_PULL_DOWN),
221 UNIPHIER_PINCTRL_PIN(66, "HS0DIN7", 0,
222 62, UNIPHIER_PIN_DRV_1BIT,
223 62, UNIPHIER_PIN_PULL_DOWN),
224 UNIPHIER_PINCTRL_PIN(67, "HS0BCLKIN", 0,
225 63, UNIPHIER_PIN_DRV_1BIT,
226 63, UNIPHIER_PIN_PULL_DOWN),
227 UNIPHIER_PINCTRL_PIN(68, "HS0VALIN", 0,
228 64, UNIPHIER_PIN_DRV_1BIT,
229 64, UNIPHIER_PIN_PULL_DOWN),
230 UNIPHIER_PINCTRL_PIN(69, "HS0SYNCIN", 0,
231 65, UNIPHIER_PIN_DRV_1BIT,
232 65, UNIPHIER_PIN_PULL_DOWN),
233 UNIPHIER_PINCTRL_PIN(70, "HSDOUT0", 0,
234 66, UNIPHIER_PIN_DRV_1BIT,
235 66, UNIPHIER_PIN_PULL_DOWN),
236 UNIPHIER_PINCTRL_PIN(71, "HSDOUT1", 0,
237 67, UNIPHIER_PIN_DRV_1BIT,
238 67, UNIPHIER_PIN_PULL_DOWN),
239 UNIPHIER_PINCTRL_PIN(72, "HSDOUT2", 0,
240 68, UNIPHIER_PIN_DRV_1BIT,
241 68, UNIPHIER_PIN_PULL_DOWN),
242 UNIPHIER_PINCTRL_PIN(73, "HSDOUT3", 0,
243 69, UNIPHIER_PIN_DRV_1BIT,
244 69, UNIPHIER_PIN_PULL_DOWN),
245 UNIPHIER_PINCTRL_PIN(74, "HSDOUT4", 0,
246 70, UNIPHIER_PIN_DRV_1BIT,
247 70, UNIPHIER_PIN_PULL_DOWN),
248 UNIPHIER_PINCTRL_PIN(75, "HSDOUT5", 0,
249 71, UNIPHIER_PIN_DRV_1BIT,
250 71, UNIPHIER_PIN_PULL_DOWN),
251 UNIPHIER_PINCTRL_PIN(76, "HSDOUT6", 0,
252 72, UNIPHIER_PIN_DRV_1BIT,
253 72, UNIPHIER_PIN_PULL_DOWN),
254 UNIPHIER_PINCTRL_PIN(77, "HSDOUT7", 0,
255 73, UNIPHIER_PIN_DRV_1BIT,
256 73, UNIPHIER_PIN_PULL_DOWN),
257 UNIPHIER_PINCTRL_PIN(78, "HSBCLKOUT", 0,
258 74, UNIPHIER_PIN_DRV_1BIT,
259 74, UNIPHIER_PIN_PULL_DOWN),
260 UNIPHIER_PINCTRL_PIN(79, "HSVALOUT", 0,
261 75, UNIPHIER_PIN_DRV_1BIT,
262 75, UNIPHIER_PIN_PULL_DOWN),
263 UNIPHIER_PINCTRL_PIN(80, "HSSYNCOUT", 0,
264 76, UNIPHIER_PIN_DRV_1BIT,
265 76, UNIPHIER_PIN_PULL_DOWN),
266 UNIPHIER_PINCTRL_PIN(81, "HS1DIN0", 0,
267 77, UNIPHIER_PIN_DRV_1BIT,
268 77, UNIPHIER_PIN_PULL_DOWN),
269 UNIPHIER_PINCTRL_PIN(82, "HS1DIN1", 0,
270 78, UNIPHIER_PIN_DRV_1BIT,
271 78, UNIPHIER_PIN_PULL_DOWN),
272 UNIPHIER_PINCTRL_PIN(83, "HS1DIN2", 0,
273 79, UNIPHIER_PIN_DRV_1BIT,
274 79, UNIPHIER_PIN_PULL_DOWN),
275 UNIPHIER_PINCTRL_PIN(84, "HS1DIN3", 0,
276 80, UNIPHIER_PIN_DRV_1BIT,
277 80, UNIPHIER_PIN_PULL_DOWN),
278 UNIPHIER_PINCTRL_PIN(85, "HS1DIN4", 0,
279 81, UNIPHIER_PIN_DRV_1BIT,
280 81, UNIPHIER_PIN_PULL_DOWN),
281 UNIPHIER_PINCTRL_PIN(86, "HS1DIN5", 0,
282 82, UNIPHIER_PIN_DRV_1BIT,
283 82, UNIPHIER_PIN_PULL_DOWN),
284 UNIPHIER_PINCTRL_PIN(87, "HS1DIN6", 0,
285 83, UNIPHIER_PIN_DRV_1BIT,
286 83, UNIPHIER_PIN_PULL_DOWN),
287 UNIPHIER_PINCTRL_PIN(88, "HS1DIN7", 0,
288 84, UNIPHIER_PIN_DRV_1BIT,
289 84, UNIPHIER_PIN_PULL_DOWN),
290 UNIPHIER_PINCTRL_PIN(89, "HS1BCLKIN", 0,
291 85, UNIPHIER_PIN_DRV_1BIT,
292 85, UNIPHIER_PIN_PULL_DOWN),
293 UNIPHIER_PINCTRL_PIN(90, "HS1VALIN", 0,
294 86, UNIPHIER_PIN_DRV_1BIT,
295 86, UNIPHIER_PIN_PULL_DOWN),
296 UNIPHIER_PINCTRL_PIN(91, "HS1SYNCIN", 0,
297 87, UNIPHIER_PIN_DRV_1BIT,
298 87, UNIPHIER_PIN_PULL_DOWN),
299 UNIPHIER_PINCTRL_PIN(92, "AGCI", 3,
300 -1, UNIPHIER_PIN_DRV_FIXED4,
301 132, UNIPHIER_PIN_PULL_DOWN),
302 UNIPHIER_PINCTRL_PIN(93, "AGCR", 4,
303 -1, UNIPHIER_PIN_DRV_FIXED4,
304 133, UNIPHIER_PIN_PULL_DOWN),
305 UNIPHIER_PINCTRL_PIN(94, "AGCBS", 5,
306 -1, UNIPHIER_PIN_DRV_FIXED4,
307 134, UNIPHIER_PIN_PULL_DOWN),
308 UNIPHIER_PINCTRL_PIN(95, "IECOUT", 0,
309 88, UNIPHIER_PIN_DRV_1BIT,
310 88, UNIPHIER_PIN_PULL_DOWN),
311 UNIPHIER_PINCTRL_PIN(96, "ASMCK", 0,
312 89, UNIPHIER_PIN_DRV_1BIT,
313 89, UNIPHIER_PIN_PULL_DOWN),
314 UNIPHIER_PINCTRL_PIN(97, "ABCKO", UNIPHIER_PIN_IECTRL_NONE,
315 90, UNIPHIER_PIN_DRV_1BIT,
316 90, UNIPHIER_PIN_PULL_DOWN),
317 UNIPHIER_PINCTRL_PIN(98, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE,
318 91, UNIPHIER_PIN_DRV_1BIT,
319 91, UNIPHIER_PIN_PULL_DOWN),
320 UNIPHIER_PINCTRL_PIN(99, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE,
321 92, UNIPHIER_PIN_DRV_1BIT,
322 92, UNIPHIER_PIN_PULL_DOWN),
323 UNIPHIER_PINCTRL_PIN(100, "ASDOUT1", UNIPHIER_PIN_IECTRL_NONE,
324 93, UNIPHIER_PIN_DRV_1BIT,
325 93, UNIPHIER_PIN_PULL_UP),
326 UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0,
327 94, UNIPHIER_PIN_DRV_1BIT,
328 94, UNIPHIER_PIN_PULL_DOWN),
329 UNIPHIER_PINCTRL_PIN(102, "SDA0", 10,
330 -1, UNIPHIER_PIN_DRV_FIXED4,
331 -1, UNIPHIER_PIN_PULL_NONE),
332 UNIPHIER_PINCTRL_PIN(103, "SCL0", 10,
333 -1, UNIPHIER_PIN_DRV_FIXED4,
334 -1, UNIPHIER_PIN_PULL_NONE),
335 UNIPHIER_PINCTRL_PIN(104, "SDA1", 11,
336 -1, UNIPHIER_PIN_DRV_FIXED4,
337 -1, UNIPHIER_PIN_PULL_NONE),
338 UNIPHIER_PINCTRL_PIN(105, "SCL1", 11,
339 -1, UNIPHIER_PIN_DRV_FIXED4,
340 -1, UNIPHIER_PIN_PULL_NONE),
341 UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", 12,
342 -1, UNIPHIER_PIN_DRV_FIXED4,
343 -1, UNIPHIER_PIN_PULL_NONE),
344 UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", 12,
345 -1, UNIPHIER_PIN_DRV_FIXED4,
346 -1, UNIPHIER_PIN_PULL_NONE),
347 UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", 13,
348 -1, UNIPHIER_PIN_DRV_FIXED4,
349 -1, UNIPHIER_PIN_PULL_NONE),
350 UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", 13,
351 -1, UNIPHIER_PIN_DRV_FIXED4,
352 -1, UNIPHIER_PIN_PULL_NONE),
353 UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE,
354 95, UNIPHIER_PIN_DRV_1BIT,
355 95, UNIPHIER_PIN_PULL_UP),
356 UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE,
357 96, UNIPHIER_PIN_DRV_1BIT,
358 96, UNIPHIER_PIN_PULL_UP),
359 UNIPHIER_PINCTRL_PIN(112, "SBO1", 0,
360 97, UNIPHIER_PIN_DRV_1BIT,
361 97, UNIPHIER_PIN_PULL_UP),
362 UNIPHIER_PINCTRL_PIN(113, "SBI1", 0,
363 98, UNIPHIER_PIN_DRV_1BIT,
364 98, UNIPHIER_PIN_PULL_UP),
365 UNIPHIER_PINCTRL_PIN(114, "TXD1", 0,
366 99, UNIPHIER_PIN_DRV_1BIT,
367 99, UNIPHIER_PIN_PULL_UP),
368 UNIPHIER_PINCTRL_PIN(115, "RXD1", 0,
369 100, UNIPHIER_PIN_DRV_1BIT,
370 100, UNIPHIER_PIN_PULL_UP),
371 UNIPHIER_PINCTRL_PIN(116, "HIN", 1,
372 -1, UNIPHIER_PIN_DRV_FIXED5,
373 -1, UNIPHIER_PIN_PULL_NONE),
374 UNIPHIER_PINCTRL_PIN(117, "VIN", 2,
375 -1, UNIPHIER_PIN_DRV_FIXED5,
376 -1, UNIPHIER_PIN_PULL_NONE),
377 UNIPHIER_PINCTRL_PIN(118, "TCON0", 0,
378 101, UNIPHIER_PIN_DRV_1BIT,
379 101, UNIPHIER_PIN_PULL_DOWN),
380 UNIPHIER_PINCTRL_PIN(119, "TCON1", 0,
381 102, UNIPHIER_PIN_DRV_1BIT,
382 102, UNIPHIER_PIN_PULL_DOWN),
383 UNIPHIER_PINCTRL_PIN(120, "TCON2", 0,
384 103, UNIPHIER_PIN_DRV_1BIT,
385 103, UNIPHIER_PIN_PULL_DOWN),
386 UNIPHIER_PINCTRL_PIN(121, "TCON3", 0,
387 104, UNIPHIER_PIN_DRV_1BIT,
388 104, UNIPHIER_PIN_PULL_DOWN),
389 UNIPHIER_PINCTRL_PIN(122, "TCON4", 0,
390 105, UNIPHIER_PIN_DRV_1BIT,
391 105, UNIPHIER_PIN_PULL_DOWN),
392 UNIPHIER_PINCTRL_PIN(123, "TCON5", 0,
393 106, UNIPHIER_PIN_DRV_1BIT,
394 106, UNIPHIER_PIN_PULL_DOWN),
395 UNIPHIER_PINCTRL_PIN(124, "TCON6", 0,
396 107, UNIPHIER_PIN_DRV_1BIT,
397 107, UNIPHIER_PIN_PULL_DOWN),
398 UNIPHIER_PINCTRL_PIN(125, "TCON7", 0,
399 108, UNIPHIER_PIN_DRV_1BIT,
400 108, UNIPHIER_PIN_PULL_DOWN),
401 UNIPHIER_PINCTRL_PIN(126, "TCON8", 0,
402 109, UNIPHIER_PIN_DRV_1BIT,
403 109, UNIPHIER_PIN_PULL_DOWN),
404 UNIPHIER_PINCTRL_PIN(127, "PWMA", 0,
405 110, UNIPHIER_PIN_DRV_1BIT,
406 110, UNIPHIER_PIN_PULL_DOWN),
407 UNIPHIER_PINCTRL_PIN(128, "XIRQ0", 0,
408 111, UNIPHIER_PIN_DRV_1BIT,
409 111, UNIPHIER_PIN_PULL_DOWN),
410 UNIPHIER_PINCTRL_PIN(129, "XIRQ1", 0,
411 112, UNIPHIER_PIN_DRV_1BIT,
412 112, UNIPHIER_PIN_PULL_DOWN),
413 UNIPHIER_PINCTRL_PIN(130, "XIRQ2", 0,
414 113, UNIPHIER_PIN_DRV_1BIT,
415 113, UNIPHIER_PIN_PULL_DOWN),
416 UNIPHIER_PINCTRL_PIN(131, "XIRQ3", 0,
417 114, UNIPHIER_PIN_DRV_1BIT,
418 114, UNIPHIER_PIN_PULL_DOWN),
419 UNIPHIER_PINCTRL_PIN(132, "XIRQ4", 0,
420 115, UNIPHIER_PIN_DRV_1BIT,
421 115, UNIPHIER_PIN_PULL_DOWN),
422 UNIPHIER_PINCTRL_PIN(133, "XIRQ5", 0,
423 116, UNIPHIER_PIN_DRV_1BIT,
424 116, UNIPHIER_PIN_PULL_DOWN),
425 UNIPHIER_PINCTRL_PIN(134, "XIRQ6", 0,
426 117, UNIPHIER_PIN_DRV_1BIT,
427 117, UNIPHIER_PIN_PULL_DOWN),
428 UNIPHIER_PINCTRL_PIN(135, "XIRQ7", 0,
429 118, UNIPHIER_PIN_DRV_1BIT,
430 118, UNIPHIER_PIN_PULL_DOWN),
431 /* dedicated pins */
432 UNIPHIER_PINCTRL_PIN(136, "ED0", -1,
433 0, UNIPHIER_PIN_DRV_1BIT,
434 0, UNIPHIER_PIN_PULL_DOWN),
435 UNIPHIER_PINCTRL_PIN(137, "ED1", -1,
436 1, UNIPHIER_PIN_DRV_1BIT,
437 1, UNIPHIER_PIN_PULL_DOWN),
438 UNIPHIER_PINCTRL_PIN(138, "ED2", -1,
439 2, UNIPHIER_PIN_DRV_1BIT,
440 2, UNIPHIER_PIN_PULL_DOWN),
441 UNIPHIER_PINCTRL_PIN(139, "ED3", -1,
442 3, UNIPHIER_PIN_DRV_1BIT,
443 3, UNIPHIER_PIN_PULL_DOWN),
444 UNIPHIER_PINCTRL_PIN(140, "ED4", -1,
445 4, UNIPHIER_PIN_DRV_1BIT,
446 4, UNIPHIER_PIN_PULL_DOWN),
447 UNIPHIER_PINCTRL_PIN(141, "ED5", -1,
448 5, UNIPHIER_PIN_DRV_1BIT,
449 5, UNIPHIER_PIN_PULL_DOWN),
450 UNIPHIER_PINCTRL_PIN(142, "ED6", -1,
451 6, UNIPHIER_PIN_DRV_1BIT,
452 6, UNIPHIER_PIN_PULL_DOWN),
453 UNIPHIER_PINCTRL_PIN(143, "ED7", -1,
454 7, UNIPHIER_PIN_DRV_1BIT,
455 7, UNIPHIER_PIN_PULL_DOWN),
456 UNIPHIER_PINCTRL_PIN(144, "XERWE0", -1,
457 8, UNIPHIER_PIN_DRV_1BIT,
458 8, UNIPHIER_PIN_PULL_UP),
459 UNIPHIER_PINCTRL_PIN(145, "XERWE1", -1,
460 9, UNIPHIER_PIN_DRV_1BIT,
461 9, UNIPHIER_PIN_PULL_UP),
462 UNIPHIER_PINCTRL_PIN(146, "ERXW", -1,
463 10, UNIPHIER_PIN_DRV_1BIT,
464 10, UNIPHIER_PIN_PULL_UP),
465 UNIPHIER_PINCTRL_PIN(147, "ES0", -1,
466 11, UNIPHIER_PIN_DRV_1BIT,
467 11, UNIPHIER_PIN_PULL_UP),
468 UNIPHIER_PINCTRL_PIN(148, "ES1", -1,
469 12, UNIPHIER_PIN_DRV_1BIT,
470 12, UNIPHIER_PIN_PULL_UP),
471 UNIPHIER_PINCTRL_PIN(149, "ES2", -1,
472 13, UNIPHIER_PIN_DRV_1BIT,
473 13, UNIPHIER_PIN_PULL_UP),
474 UNIPHIER_PINCTRL_PIN(150, "XECS1", -1,
475 14, UNIPHIER_PIN_DRV_1BIT,
476 14, UNIPHIER_PIN_PULL_DOWN),
477};
478
479static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27};
480static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1};
481static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31};
482static const int emmc_dat8_muxvals[] = {1, 1, 1, 1};
483static const unsigned ether_mii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14,
484 61, 63, 64, 65, 66, 67, 68};
485static const int ether_mii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
486 13, 13, 27, 27, 27, 27, 27, 27, 27};
487static const unsigned ether_rmii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13,
488 14};
489static const int ether_rmii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13,
490 13, 13, 13};
491static const unsigned i2c0_pins[] = {102, 103};
492static const int i2c0_muxvals[] = {0, 0};
493static const unsigned i2c1_pins[] = {104, 105};
494static const int i2c1_muxvals[] = {0, 0};
495static const unsigned i2c2_pins[] = {108, 109};
496static const int i2c2_muxvals[] = {2, 2};
497static const unsigned i2c3_pins[] = {108, 109};
498static const int i2c3_muxvals[] = {3, 3};
499static const unsigned nand_pins[] = {15, 16, 17, 18, 19, 20, 21, 24, 25, 26,
500 27, 28, 29, 30, 31};
501static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
502static const unsigned nand_cs1_pins[] = {22, 23};
503static const int nand_cs1_muxvals[] = {0, 0};
504static const unsigned sd_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40};
505static const int sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
506static const unsigned system_bus_pins[] = {136, 137, 138, 139, 140, 141, 142,
507 143, 144, 145, 146, 147, 148, 149};
508static const int system_bus_muxvals[] = {-1, -1, -1, -1, -1, -1, -1, -1, -1,
509 -1, -1, -1, -1, -1};
510static const unsigned system_bus_cs1_pins[] = {150};
511static const int system_bus_cs1_muxvals[] = {-1};
512static const unsigned system_bus_cs2_pins[] = {10};
513static const int system_bus_cs2_muxvals[] = {1};
514static const unsigned system_bus_cs3_pins[] = {11};
515static const int system_bus_cs3_muxvals[] = {1};
516static const unsigned system_bus_cs4_pins[] = {12};
517static const int system_bus_cs4_muxvals[] = {1};
518static const unsigned system_bus_cs5_pins[] = {13};
519static const int system_bus_cs5_muxvals[] = {1};
520static const unsigned uart0_pins[] = {70, 71};
521static const int uart0_muxvals[] = {3, 3};
522static const unsigned uart1_pins[] = {114, 115};
523static const int uart1_muxvals[] = {0, 0};
524static const unsigned uart2_pins[] = {112, 113};
525static const int uart2_muxvals[] = {1, 1};
526static const unsigned uart3_pins[] = {110, 111};
527static const int uart3_muxvals[] = {1, 1};
528static const unsigned usb0_pins[] = {41, 42};
529static const int usb0_muxvals[] = {0, 0};
530static const unsigned usb1_pins[] = {43, 44};
531static const int usb1_muxvals[] = {0, 0};
532static const unsigned usb2_pins[] = {114, 115};
533static const int usb2_muxvals[] = {1, 1};
534static const unsigned port_range0_pins[] = {
535 0, 1, 2, 3, 4, 5, 6, 7, /* PORT0x */
536 8, 9, 10, 11, 12, 13, 14, 15, /* PORT1x */
537 32, 33, 34, 35, 36, 37, 38, 39, /* PORT2x */
538 59, 60, 61, 62, 63, 64, 65, 66, /* PORT3x */
539 95, 96, 97, 98, 99, 100, 101, 57, /* PORT4x */
540 70, 71, 72, 73, 74, 75, 76, 77, /* PORT5x */
541 81, 83, 84, 85, 86, 89, 90, 91, /* PORT6x */
542 118, 119, 120, 121, 122, 53, 54, 55, /* PORT7x */
543 41, 42, 43, 44, 79, 80, 18, 19, /* PORT8x */
544 110, 111, 112, 113, 114, 115, 16, 17, /* PORT9x */
545 40, 67, 68, 69, 78, 92, 93, 94, /* PORT10x */
546 48, 49, 46, 45, 123, 124, 125, 126, /* PORT11x */
547 47, 127, 20, 56, 22, /* PORT120-124 */
548};
549static const int port_range0_muxvals[] = {
550 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
551 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
552 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
553 15, 15, 15, 15, 15, 15, 15, 15, /* PORT3x */
554 15, 15, 15, 15, 15, 15, 15, 15, /* PORT4x */
555 15, 15, 15, 15, 15, 15, 15, 15, /* PORT5x */
556 15, 15, 15, 15, 15, 15, 15, 15, /* PORT6x */
557 15, 15, 15, 15, 15, 15, 15, 15, /* PORT7x */
558 15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */
559 15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */
560 15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */
561 15, 15, 15, 15, 15, 15, 15, 15, /* PORT11x */
562 15, 15, 15, 15, 15, /* PORT120-124 */
563};
564static const unsigned port_range1_pins[] = {
565 116, 117, /* PORT130-131 */
566};
567static const int port_range1_muxvals[] = {
568 15, 15, /* PORT130-131 */
569};
570static const unsigned port_range2_pins[] = {
571 102, 103, 104, 105, 106, 107, 108, 109, /* PORT14x */
572};
573static const int port_range2_muxvals[] = {
574 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */
575};
576static const unsigned port_range3_pins[] = {
577 23, /* PORT166 */
578};
579static const int port_range3_muxvals[] = {
580 15, /* PORT166 */
581};
582static const unsigned xirq_range0_pins[] = {
583 128, 129, 130, 131, 132, 133, 134, 135, /* XIRQ0-7 */
584 82, 87, 88, 50, 51, /* XIRQ8-12 */
585};
586static const int xirq_range0_muxvals[] = {
587 0, 0, 0, 0, 0, 0, 0, 0, /* XIRQ0-7 */
588 14, 14, 14, 14, 14, /* XIRQ8-12 */
589};
590static const unsigned xirq_range1_pins[] = {
591 52, 58, /* XIRQ14-15 */
592};
593static const int xirq_range1_muxvals[] = {
594 14, 14, /* XIRQ14-15 */
595};
596
597static const struct uniphier_pinctrl_group uniphier_sld8_groups[] = {
598 UNIPHIER_PINCTRL_GROUP(emmc),
599 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
600 UNIPHIER_PINCTRL_GROUP(ether_mii),
601 UNIPHIER_PINCTRL_GROUP(ether_rmii),
602 UNIPHIER_PINCTRL_GROUP(i2c0),
603 UNIPHIER_PINCTRL_GROUP(i2c1),
604 UNIPHIER_PINCTRL_GROUP(i2c2),
605 UNIPHIER_PINCTRL_GROUP(i2c3),
606 UNIPHIER_PINCTRL_GROUP(nand),
607 UNIPHIER_PINCTRL_GROUP(nand_cs1),
608 UNIPHIER_PINCTRL_GROUP(sd),
609 UNIPHIER_PINCTRL_GROUP(system_bus),
610 UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
611 UNIPHIER_PINCTRL_GROUP(system_bus_cs2),
612 UNIPHIER_PINCTRL_GROUP(system_bus_cs3),
613 UNIPHIER_PINCTRL_GROUP(system_bus_cs4),
614 UNIPHIER_PINCTRL_GROUP(system_bus_cs5),
615 UNIPHIER_PINCTRL_GROUP(uart0),
616 UNIPHIER_PINCTRL_GROUP(uart1),
617 UNIPHIER_PINCTRL_GROUP(uart2),
618 UNIPHIER_PINCTRL_GROUP(uart3),
619 UNIPHIER_PINCTRL_GROUP(usb0),
620 UNIPHIER_PINCTRL_GROUP(usb1),
621 UNIPHIER_PINCTRL_GROUP(usb2),
622 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range0),
623 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range1),
624 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range2),
625 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range3),
626 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_range0),
627 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_range1),
628 UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range0, 0),
629 UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range0, 1),
630 UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range0, 2),
631 UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range0, 3),
632 UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range0, 4),
633 UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range0, 5),
634 UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range0, 6),
635 UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range0, 7),
636 UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range0, 8),
637 UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range0, 9),
638 UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range0, 10),
639 UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range0, 11),
640 UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range0, 12),
641 UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range0, 13),
642 UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range0, 14),
643 UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range0, 15),
644 UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range0, 16),
645 UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range0, 17),
646 UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range0, 18),
647 UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range0, 19),
648 UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range0, 20),
649 UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range0, 21),
650 UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range0, 22),
651 UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range0, 23),
652 UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range0, 24),
653 UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range0, 25),
654 UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range0, 26),
655 UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range0, 27),
656 UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range0, 28),
657 UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range0, 29),
658 UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range0, 30),
659 UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range0, 31),
660 UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range0, 32),
661 UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range0, 33),
662 UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range0, 34),
663 UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range0, 35),
664 UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range0, 36),
665 UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range0, 37),
666 UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range0, 38),
667 UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range0, 39),
668 UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range0, 40),
669 UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range0, 41),
670 UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range0, 42),
671 UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range0, 43),
672 UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range0, 44),
673 UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range0, 45),
674 UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range0, 46),
675 UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range0, 47),
676 UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range0, 48),
677 UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range0, 49),
678 UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range0, 50),
679 UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range0, 51),
680 UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range0, 52),
681 UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range0, 53),
682 UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range0, 54),
683 UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range0, 55),
684 UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range0, 56),
685 UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range0, 57),
686 UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range0, 58),
687 UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range0, 59),
688 UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range0, 60),
689 UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range0, 61),
690 UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range0, 62),
691 UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range0, 63),
692 UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range0, 64),
693 UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range0, 65),
694 UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range0, 66),
695 UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range0, 67),
696 UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range0, 68),
697 UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range0, 69),
698 UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range0, 70),
699 UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range0, 71),
700 UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range0, 72),
701 UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range0, 73),
702 UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range0, 74),
703 UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range0, 75),
704 UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range0, 76),
705 UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range0, 77),
706 UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range0, 78),
707 UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range0, 79),
708 UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range0, 80),
709 UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range0, 81),
710 UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range0, 82),
711 UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range0, 83),
712 UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range0, 84),
713 UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range0, 85),
714 UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range0, 86),
715 UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range0, 87),
716 UNIPHIER_PINCTRL_GROUP_SINGLE(port110, port_range0, 88),
717 UNIPHIER_PINCTRL_GROUP_SINGLE(port111, port_range0, 89),
718 UNIPHIER_PINCTRL_GROUP_SINGLE(port112, port_range0, 90),
719 UNIPHIER_PINCTRL_GROUP_SINGLE(port113, port_range0, 91),
720 UNIPHIER_PINCTRL_GROUP_SINGLE(port114, port_range0, 92),
721 UNIPHIER_PINCTRL_GROUP_SINGLE(port115, port_range0, 93),
722 UNIPHIER_PINCTRL_GROUP_SINGLE(port116, port_range0, 94),
723 UNIPHIER_PINCTRL_GROUP_SINGLE(port117, port_range0, 95),
724 UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range0, 96),
725 UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range0, 97),
726 UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range0, 98),
727 UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range0, 99),
728 UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range0, 100),
729 UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range1, 0),
730 UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range1, 1),
731 UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range2, 0),
732 UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range2, 1),
733 UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range2, 2),
734 UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range2, 3),
735 UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range2, 4),
736 UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range2, 5),
737 UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range2, 6),
738 UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range2, 7),
739 UNIPHIER_PINCTRL_GROUP_SINGLE(port166, port_range3, 0),
740 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq_range0, 0),
741 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq_range0, 1),
742 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq_range0, 2),
743 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3, xirq_range0, 3),
744 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4, xirq_range0, 4),
745 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5, xirq_range0, 5),
746 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6, xirq_range0, 6),
747 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7, xirq_range0, 7),
748 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8, xirq_range0, 8),
749 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9, xirq_range0, 9),
750 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10, xirq_range0, 10),
751 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11, xirq_range0, 11),
752 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq12, xirq_range0, 12),
753 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14, xirq_range1, 0),
754 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq15, xirq_range1, 1),
755};
756
757static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
758static const char * const ether_mii_groups[] = {"ether_mii"};
759static const char * const ether_rmii_groups[] = {"ether_rmii"};
760static const char * const i2c0_groups[] = {"i2c0"};
761static const char * const i2c1_groups[] = {"i2c1"};
762static const char * const i2c2_groups[] = {"i2c2"};
763static const char * const i2c3_groups[] = {"i2c3"};
764static const char * const nand_groups[] = {"nand", "nand_cs1"};
765static const char * const sd_groups[] = {"sd"};
766static const char * const system_bus_groups[] = {"system_bus",
767 "system_bus_cs1",
768 "system_bus_cs2",
769 "system_bus_cs3",
770 "system_bus_cs4",
771 "system_bus_cs5"};
772static const char * const uart0_groups[] = {"uart0"};
773static const char * const uart1_groups[] = {"uart1"};
774static const char * const uart2_groups[] = {"uart2"};
775static const char * const uart3_groups[] = {"uart3"};
776static const char * const usb0_groups[] = {"usb0"};
777static const char * const usb1_groups[] = {"usb1"};
778static const char * const usb2_groups[] = {"usb2"};
779static const char * const port_groups[] = {
780 "port00", "port01", "port02", "port03",
781 "port04", "port05", "port06", "port07",
782 "port10", "port11", "port12", "port13",
783 "port14", "port15", "port16", "port17",
784 "port20", "port21", "port22", "port23",
785 "port24", "port25", "port26", "port27",
786 "port30", "port31", "port32", "port33",
787 "port34", "port35", "port36", "port37",
788 "port40", "port41", "port42", "port43",
789 "port44", "port45", "port46", "port47",
790 "port50", "port51", "port52", "port53",
791 "port54", "port55", "port56", "port57",
792 "port60", "port61", "port62", "port63",
793 "port64", "port65", "port66", "port67",
794 "port70", "port71", "port72", "port73",
795 "port74", "port75", "port76", "port77",
796 "port80", "port81", "port82", "port83",
797 "port84", "port85", "port86", "port87",
798 "port90", "port91", "port92", "port93",
799 "port94", "port95", "port96", "port97",
800 "port100", "port101", "port102", "port103",
801 "port104", "port105", "port106", "port107",
802 "port110", "port111", "port112", "port113",
803 "port114", "port115", "port116", "port117",
804 "port120", "port121", "port122", "port123",
805 "port124", "port125", "port126", "port127",
806 "port130", "port131", "port132", "port133",
807 "port134", "port135", "port136", "port137",
808 "port140", "port141", "port142", "port143",
809 "port144", "port145", "port146", "port147",
810 /* port150-164 missing */
811 /* none */ "port165",
812};
813static const char * const xirq_groups[] = {
814 "xirq0", "xirq1", "xirq2", "xirq3",
815 "xirq4", "xirq5", "xirq6", "xirq7",
816 "xirq8", "xirq9", "xirq10", "xirq11",
817 "xirq12", /* none*/ "xirq14", "xirq15",
818};
819
820static const struct uniphier_pinmux_function uniphier_sld8_functions[] = {
821 UNIPHIER_PINMUX_FUNCTION(emmc),
822 UNIPHIER_PINMUX_FUNCTION(ether_mii),
823 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
824 UNIPHIER_PINMUX_FUNCTION(i2c0),
825 UNIPHIER_PINMUX_FUNCTION(i2c1),
826 UNIPHIER_PINMUX_FUNCTION(i2c2),
827 UNIPHIER_PINMUX_FUNCTION(i2c3),
828 UNIPHIER_PINMUX_FUNCTION(nand),
829 UNIPHIER_PINMUX_FUNCTION(sd),
830 UNIPHIER_PINMUX_FUNCTION(system_bus),
831 UNIPHIER_PINMUX_FUNCTION(uart0),
832 UNIPHIER_PINMUX_FUNCTION(uart1),
833 UNIPHIER_PINMUX_FUNCTION(uart2),
834 UNIPHIER_PINMUX_FUNCTION(uart3),
835 UNIPHIER_PINMUX_FUNCTION(usb0),
836 UNIPHIER_PINMUX_FUNCTION(usb1),
837 UNIPHIER_PINMUX_FUNCTION(usb2),
838 UNIPHIER_PINMUX_FUNCTION(port),
839 UNIPHIER_PINMUX_FUNCTION(xirq),
840};
841
842static struct uniphier_pinctrl_socdata uniphier_sld8_pindata = {
843 .pins = uniphier_sld8_pins,
844 .npins = ARRAY_SIZE(uniphier_sld8_pins),
845 .groups = uniphier_sld8_groups,
846 .groups_count = ARRAY_SIZE(uniphier_sld8_groups),
847 .functions = uniphier_sld8_functions,
848 .functions_count = ARRAY_SIZE(uniphier_sld8_functions),
849 .caps = 0,
850};
851
852static int uniphier_sld8_pinctrl_probe(struct platform_device *pdev)
853{
854 return uniphier_pinctrl_probe(pdev, &uniphier_sld8_pindata);
855}
856
857static const struct of_device_id uniphier_sld8_pinctrl_match[] = {
858 { .compatible = "socionext,uniphier-sld8-pinctrl" },
859 { .compatible = "socionext,ph1-sld8-pinctrl" },
860 { /* sentinel */ }
861};
862MODULE_DEVICE_TABLE(of, uniphier_sld8_pinctrl_match);
863
864static struct platform_driver uniphier_sld8_pinctrl_driver = {
865 .probe = uniphier_sld8_pinctrl_probe,
866 .driver = {
867 .name = "uniphier-sld8-pinctrl",
868 .of_match_table = uniphier_sld8_pinctrl_match,
869 },
870};
871module_platform_driver(uniphier_sld8_pinctrl_driver);
872
873MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>");
874MODULE_DESCRIPTION("UniPhier PH1-sLD8 pinctrl driver");
875MODULE_LICENSE("GPL");