]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi...
[mirror_ubuntu-artful-kernel.git] / drivers / pinctrl / uniphier / pinctrl-uniphier-ld20.c
CommitLineData
336306ee 1/*
2afd450d 2 * Copyright (C) 2016-2017 Socionext Inc.
336306ee
MY
3 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#include <linux/kernel.h>
2afd450d 17#include <linux/init.h>
336306ee
MY
18#include <linux/pinctrl/pinctrl.h>
19#include <linux/platform_device.h>
20
21#include "pinctrl-uniphier.h"
22
23static const struct pinctrl_pin_desc uniphier_ld20_pins[] = {
24 UNIPHIER_PINCTRL_PIN(0, "XECS1", 0,
25 0, UNIPHIER_PIN_DRV_3BIT,
26 0, UNIPHIER_PIN_PULL_UP),
27 UNIPHIER_PINCTRL_PIN(1, "ERXW", 1,
28 1, UNIPHIER_PIN_DRV_3BIT,
29 1, UNIPHIER_PIN_PULL_UP),
30 UNIPHIER_PINCTRL_PIN(2, "XERWE1", 2,
31 2, UNIPHIER_PIN_DRV_3BIT,
32 2, UNIPHIER_PIN_PULL_UP),
33 UNIPHIER_PINCTRL_PIN(3, "XNFWP", 3,
34 3, UNIPHIER_PIN_DRV_3BIT,
35 3, UNIPHIER_PIN_PULL_DOWN),
36 UNIPHIER_PINCTRL_PIN(4, "XNFCE0", 4,
37 4, UNIPHIER_PIN_DRV_3BIT,
38 4, UNIPHIER_PIN_PULL_UP),
39 UNIPHIER_PINCTRL_PIN(5, "NFRYBY0", 5,
40 5, UNIPHIER_PIN_DRV_3BIT,
41 5, UNIPHIER_PIN_PULL_UP),
42 UNIPHIER_PINCTRL_PIN(6, "XNFRE", 6,
43 6, UNIPHIER_PIN_DRV_3BIT,
44 6, UNIPHIER_PIN_PULL_UP),
45 UNIPHIER_PINCTRL_PIN(7, "XNFWE", 7,
46 7, UNIPHIER_PIN_DRV_3BIT,
47 7, UNIPHIER_PIN_PULL_UP),
48 UNIPHIER_PINCTRL_PIN(8, "NFALE", 8,
49 8, UNIPHIER_PIN_DRV_3BIT,
50 8, UNIPHIER_PIN_PULL_UP),
51 UNIPHIER_PINCTRL_PIN(9, "NFCLE", 9,
52 9, UNIPHIER_PIN_DRV_3BIT,
53 9, UNIPHIER_PIN_PULL_UP),
54 UNIPHIER_PINCTRL_PIN(10, "NFD0", 10,
55 10, UNIPHIER_PIN_DRV_3BIT,
56 10, UNIPHIER_PIN_PULL_UP),
57 UNIPHIER_PINCTRL_PIN(11, "NFD1", 11,
58 11, UNIPHIER_PIN_DRV_3BIT,
59 11, UNIPHIER_PIN_PULL_UP),
60 UNIPHIER_PINCTRL_PIN(12, "NFD2", 12,
61 12, UNIPHIER_PIN_DRV_3BIT,
62 12, UNIPHIER_PIN_PULL_UP),
63 UNIPHIER_PINCTRL_PIN(13, "NFD3", 13,
64 13, UNIPHIER_PIN_DRV_3BIT,
65 13, UNIPHIER_PIN_PULL_UP),
66 UNIPHIER_PINCTRL_PIN(14, "NFD4", 14,
67 14, UNIPHIER_PIN_DRV_3BIT,
68 14, UNIPHIER_PIN_PULL_UP),
69 UNIPHIER_PINCTRL_PIN(15, "NFD5", 15,
70 15, UNIPHIER_PIN_DRV_3BIT,
71 15, UNIPHIER_PIN_PULL_UP),
72 UNIPHIER_PINCTRL_PIN(16, "NFD6", 16,
73 16, UNIPHIER_PIN_DRV_3BIT,
74 16, UNIPHIER_PIN_PULL_UP),
75 UNIPHIER_PINCTRL_PIN(17, "NFD7", 17,
76 17, UNIPHIER_PIN_DRV_3BIT,
77 17, UNIPHIER_PIN_PULL_UP),
78 UNIPHIER_PINCTRL_PIN(18, "XERST", 18,
79 0, UNIPHIER_PIN_DRV_2BIT,
80 18, UNIPHIER_PIN_PULL_UP),
81 UNIPHIER_PINCTRL_PIN(19, "MMCCLK", 19,
82 1, UNIPHIER_PIN_DRV_2BIT,
83 19, UNIPHIER_PIN_PULL_UP),
84 UNIPHIER_PINCTRL_PIN(20, "MMCCMD", 20,
85 2, UNIPHIER_PIN_DRV_2BIT,
86 20, UNIPHIER_PIN_PULL_UP),
87 UNIPHIER_PINCTRL_PIN(21, "MMCDS", 21,
88 3, UNIPHIER_PIN_DRV_2BIT,
89 21, UNIPHIER_PIN_PULL_UP),
90 UNIPHIER_PINCTRL_PIN(22, "MMCDAT0", 22,
91 4, UNIPHIER_PIN_DRV_2BIT,
92 22, UNIPHIER_PIN_PULL_UP),
93 UNIPHIER_PINCTRL_PIN(23, "MMCDAT1", 23,
94 5, UNIPHIER_PIN_DRV_2BIT,
95 23, UNIPHIER_PIN_PULL_UP),
96 UNIPHIER_PINCTRL_PIN(24, "MMCDAT2", 24,
97 6, UNIPHIER_PIN_DRV_2BIT,
98 24, UNIPHIER_PIN_PULL_UP),
99 UNIPHIER_PINCTRL_PIN(25, "MMCDAT3", 25,
100 7, UNIPHIER_PIN_DRV_2BIT,
101 25, UNIPHIER_PIN_PULL_UP),
102 UNIPHIER_PINCTRL_PIN(26, "MMCDAT4", 26,
103 8, UNIPHIER_PIN_DRV_2BIT,
104 26, UNIPHIER_PIN_PULL_UP),
105 UNIPHIER_PINCTRL_PIN(27, "MMCDAT5", 27,
106 9, UNIPHIER_PIN_DRV_2BIT,
107 27, UNIPHIER_PIN_PULL_UP),
108 UNIPHIER_PINCTRL_PIN(28, "MMCDAT6", 28,
109 10, UNIPHIER_PIN_DRV_2BIT,
110 28, UNIPHIER_PIN_PULL_UP),
111 UNIPHIER_PINCTRL_PIN(29, "MMCDAT7", 29,
112 11, UNIPHIER_PIN_DRV_2BIT,
113 29, UNIPHIER_PIN_PULL_UP),
114 UNIPHIER_PINCTRL_PIN(30, "MDC", 30,
115 18, UNIPHIER_PIN_DRV_3BIT,
116 30, UNIPHIER_PIN_PULL_DOWN),
117 UNIPHIER_PINCTRL_PIN(31, "MDIO", 31,
118 19, UNIPHIER_PIN_DRV_3BIT,
119 31, UNIPHIER_PIN_PULL_DOWN),
120 UNIPHIER_PINCTRL_PIN(32, "MDIO_INTL", 32,
121 20, UNIPHIER_PIN_DRV_3BIT,
122 32, UNIPHIER_PIN_PULL_DOWN),
123 UNIPHIER_PINCTRL_PIN(33, "PHYRSTL", 33,
124 21, UNIPHIER_PIN_DRV_3BIT,
125 33, UNIPHIER_PIN_PULL_DOWN),
126 UNIPHIER_PINCTRL_PIN(34, "RGMII_RXCLK", 34,
127 22, UNIPHIER_PIN_DRV_3BIT,
128 34, UNIPHIER_PIN_PULL_DOWN),
129 UNIPHIER_PINCTRL_PIN(35, "RGMII_RXD0", 35,
130 23, UNIPHIER_PIN_DRV_3BIT,
131 35, UNIPHIER_PIN_PULL_DOWN),
132 UNIPHIER_PINCTRL_PIN(36, "RGMII_RXD1", 36,
133 24, UNIPHIER_PIN_DRV_3BIT,
134 36, UNIPHIER_PIN_PULL_DOWN),
135 UNIPHIER_PINCTRL_PIN(37, "RGMII_RXD2", 37,
136 25, UNIPHIER_PIN_DRV_3BIT,
137 37, UNIPHIER_PIN_PULL_DOWN),
138 UNIPHIER_PINCTRL_PIN(38, "RGMII_RXD3", 38,
139 26, UNIPHIER_PIN_DRV_3BIT,
140 38, UNIPHIER_PIN_PULL_DOWN),
141 UNIPHIER_PINCTRL_PIN(39, "RGMII_RXCTL", 39,
142 27, UNIPHIER_PIN_DRV_3BIT,
143 39, UNIPHIER_PIN_PULL_DOWN),
144 UNIPHIER_PINCTRL_PIN(40, "RGMII_TXCLK", 40,
145 28, UNIPHIER_PIN_DRV_3BIT,
146 40, UNIPHIER_PIN_PULL_DOWN),
147 UNIPHIER_PINCTRL_PIN(41, "RGMII_TXD0", 41,
148 29, UNIPHIER_PIN_DRV_3BIT,
149 41, UNIPHIER_PIN_PULL_DOWN),
150 UNIPHIER_PINCTRL_PIN(42, "RGMII_TXD1", 42,
151 30, UNIPHIER_PIN_DRV_3BIT,
152 42, UNIPHIER_PIN_PULL_DOWN),
153 UNIPHIER_PINCTRL_PIN(43, "RGMII_TXD2", 43,
154 31, UNIPHIER_PIN_DRV_3BIT,
155 43, UNIPHIER_PIN_PULL_DOWN),
156 UNIPHIER_PINCTRL_PIN(44, "RGMII_TXD3", 44,
157 32, UNIPHIER_PIN_DRV_3BIT,
158 44, UNIPHIER_PIN_PULL_DOWN),
159 UNIPHIER_PINCTRL_PIN(45, "RGMII_TXCTL", 45,
160 33, UNIPHIER_PIN_DRV_3BIT,
161 45, UNIPHIER_PIN_PULL_DOWN),
162 UNIPHIER_PINCTRL_PIN(46, "USB0VBUS", 46,
163 34, UNIPHIER_PIN_DRV_3BIT,
164 46, UNIPHIER_PIN_PULL_DOWN),
165 UNIPHIER_PINCTRL_PIN(47, "USB0OD", 47,
166 35, UNIPHIER_PIN_DRV_3BIT,
167 47, UNIPHIER_PIN_PULL_UP),
168 UNIPHIER_PINCTRL_PIN(48, "USB1VBUS", 48,
169 36, UNIPHIER_PIN_DRV_3BIT,
170 48, UNIPHIER_PIN_PULL_DOWN),
171 UNIPHIER_PINCTRL_PIN(49, "USB1OD", 49,
172 37, UNIPHIER_PIN_DRV_3BIT,
173 49, UNIPHIER_PIN_PULL_UP),
174 UNIPHIER_PINCTRL_PIN(50, "USB2VBUS", 50,
175 38, UNIPHIER_PIN_DRV_3BIT,
176 50, UNIPHIER_PIN_PULL_DOWN),
177 UNIPHIER_PINCTRL_PIN(51, "USB2OD", 51,
178 39, UNIPHIER_PIN_DRV_3BIT,
179 51, UNIPHIER_PIN_PULL_UP),
180 UNIPHIER_PINCTRL_PIN(52, "USB3VBUS", 52,
181 40, UNIPHIER_PIN_DRV_3BIT,
182 52, UNIPHIER_PIN_PULL_DOWN),
183 UNIPHIER_PINCTRL_PIN(53, "USB3OD", 53,
184 41, UNIPHIER_PIN_DRV_3BIT,
185 53, UNIPHIER_PIN_PULL_UP),
186 UNIPHIER_PINCTRL_PIN(54, "TXD0", 54,
187 42, UNIPHIER_PIN_DRV_3BIT,
188 54, UNIPHIER_PIN_PULL_UP),
189 UNIPHIER_PINCTRL_PIN(55, "RXD0", 55,
190 43, UNIPHIER_PIN_DRV_3BIT,
191 55, UNIPHIER_PIN_PULL_UP),
192 UNIPHIER_PINCTRL_PIN(56, "SPISYNC0", 56,
193 44, UNIPHIER_PIN_DRV_3BIT,
194 56, UNIPHIER_PIN_PULL_DOWN),
195 UNIPHIER_PINCTRL_PIN(57, "SPISCLK0", 57,
196 45, UNIPHIER_PIN_DRV_3BIT,
197 57, UNIPHIER_PIN_PULL_DOWN),
198 UNIPHIER_PINCTRL_PIN(58, "SPITXD0", 58,
199 46, UNIPHIER_PIN_DRV_3BIT,
200 58, UNIPHIER_PIN_PULL_DOWN),
201 UNIPHIER_PINCTRL_PIN(59, "SPIRXD0", 59,
202 47, UNIPHIER_PIN_DRV_3BIT,
203 59, UNIPHIER_PIN_PULL_DOWN),
204 UNIPHIER_PINCTRL_PIN(60, "AGCI", 60,
205 48, UNIPHIER_PIN_DRV_3BIT,
206 60, UNIPHIER_PIN_PULL_DOWN),
207 UNIPHIER_PINCTRL_PIN(61, "DMDSDA0", 61,
208 -1, UNIPHIER_PIN_DRV_FIXED4,
209 -1, UNIPHIER_PIN_PULL_NONE),
210 UNIPHIER_PINCTRL_PIN(62, "DMDSCL0", 62,
211 -1, UNIPHIER_PIN_DRV_FIXED4,
212 -1, UNIPHIER_PIN_PULL_NONE),
213 UNIPHIER_PINCTRL_PIN(63, "SDA0", 63,
214 -1, UNIPHIER_PIN_DRV_FIXED4,
215 -1, UNIPHIER_PIN_PULL_NONE),
216 UNIPHIER_PINCTRL_PIN(64, "SCL0", 64,
217 -1, UNIPHIER_PIN_DRV_FIXED4,
218 -1, UNIPHIER_PIN_PULL_NONE),
219 UNIPHIER_PINCTRL_PIN(65, "SDA1", 65,
220 -1, UNIPHIER_PIN_DRV_FIXED4,
221 -1, UNIPHIER_PIN_PULL_NONE),
222 UNIPHIER_PINCTRL_PIN(66, "SCL1", 66,
223 -1, UNIPHIER_PIN_DRV_FIXED4,
224 -1, UNIPHIER_PIN_PULL_NONE),
225 UNIPHIER_PINCTRL_PIN(67, "HIN", 67,
226 -1, UNIPHIER_PIN_DRV_FIXED4,
227 -1, UNIPHIER_PIN_PULL_NONE),
228 UNIPHIER_PINCTRL_PIN(68, "VIN", 68,
229 -1, UNIPHIER_PIN_DRV_FIXED4,
230 -1, UNIPHIER_PIN_PULL_NONE),
231 UNIPHIER_PINCTRL_PIN(69, "PCA00", 69,
232 49, UNIPHIER_PIN_DRV_3BIT,
233 69, UNIPHIER_PIN_PULL_DOWN),
234 UNIPHIER_PINCTRL_PIN(70, "PCA01", 70,
235 50, UNIPHIER_PIN_DRV_3BIT,
236 70, UNIPHIER_PIN_PULL_DOWN),
237 UNIPHIER_PINCTRL_PIN(71, "PCA02", 71,
238 51, UNIPHIER_PIN_DRV_3BIT,
239 71, UNIPHIER_PIN_PULL_DOWN),
240 UNIPHIER_PINCTRL_PIN(72, "PCA03", 72,
241 52, UNIPHIER_PIN_DRV_3BIT,
242 72, UNIPHIER_PIN_PULL_DOWN),
243 UNIPHIER_PINCTRL_PIN(73, "PCA04", 73,
244 53, UNIPHIER_PIN_DRV_3BIT,
245 73, UNIPHIER_PIN_PULL_DOWN),
246 UNIPHIER_PINCTRL_PIN(74, "PCA05", 74,
247 54, UNIPHIER_PIN_DRV_3BIT,
248 74, UNIPHIER_PIN_PULL_DOWN),
249 UNIPHIER_PINCTRL_PIN(75, "PCA06", 75,
250 55, UNIPHIER_PIN_DRV_3BIT,
251 75, UNIPHIER_PIN_PULL_DOWN),
252 UNIPHIER_PINCTRL_PIN(76, "PCA07", 76,
253 56, UNIPHIER_PIN_DRV_3BIT,
254 76, UNIPHIER_PIN_PULL_DOWN),
255 UNIPHIER_PINCTRL_PIN(77, "PCA08", 77,
256 57, UNIPHIER_PIN_DRV_3BIT,
257 77, UNIPHIER_PIN_PULL_DOWN),
258 UNIPHIER_PINCTRL_PIN(78, "PCA09", 78,
259 58, UNIPHIER_PIN_DRV_3BIT,
260 78, UNIPHIER_PIN_PULL_DOWN),
261 UNIPHIER_PINCTRL_PIN(79, "PCA10", 79,
262 59, UNIPHIER_PIN_DRV_3BIT,
263 79, UNIPHIER_PIN_PULL_DOWN),
264 UNIPHIER_PINCTRL_PIN(80, "PCA11", 80,
265 60, UNIPHIER_PIN_DRV_3BIT,
266 80, UNIPHIER_PIN_PULL_DOWN),
267 UNIPHIER_PINCTRL_PIN(81, "PCA12", 81,
268 61, UNIPHIER_PIN_DRV_3BIT,
269 81, UNIPHIER_PIN_PULL_DOWN),
270 UNIPHIER_PINCTRL_PIN(82, "PCA13", 82,
271 62, UNIPHIER_PIN_DRV_3BIT,
272 82, UNIPHIER_PIN_PULL_DOWN),
273 UNIPHIER_PINCTRL_PIN(83, "PCA14", 83,
274 63, UNIPHIER_PIN_DRV_3BIT,
275 83, UNIPHIER_PIN_PULL_DOWN),
276 UNIPHIER_PINCTRL_PIN(84, "PC0READY", 84,
277 0, UNIPHIER_PIN_DRV_1BIT,
278 84, UNIPHIER_PIN_PULL_DOWN),
279 UNIPHIER_PINCTRL_PIN(85, "PC0CD1", 85,
280 1, UNIPHIER_PIN_DRV_1BIT,
281 85, UNIPHIER_PIN_PULL_DOWN),
282 UNIPHIER_PINCTRL_PIN(86, "PC0CD2", 86,
283 2, UNIPHIER_PIN_DRV_1BIT,
284 86, UNIPHIER_PIN_PULL_DOWN),
285 UNIPHIER_PINCTRL_PIN(87, "PC0WAIT", 87,
286 3, UNIPHIER_PIN_DRV_1BIT,
287 87, UNIPHIER_PIN_PULL_DOWN),
288 UNIPHIER_PINCTRL_PIN(88, "PC0RESET", 88,
289 4, UNIPHIER_PIN_DRV_1BIT,
290 88, UNIPHIER_PIN_PULL_DOWN),
291 UNIPHIER_PINCTRL_PIN(89, "PC0CE1", 89,
292 5, UNIPHIER_PIN_DRV_1BIT,
293 89, UNIPHIER_PIN_PULL_DOWN),
294 UNIPHIER_PINCTRL_PIN(90, "PC0WE", 90,
295 6, UNIPHIER_PIN_DRV_1BIT,
296 90, UNIPHIER_PIN_PULL_DOWN),
297 UNIPHIER_PINCTRL_PIN(91, "PC0OE", 91,
298 7, UNIPHIER_PIN_DRV_1BIT,
299 91, UNIPHIER_PIN_PULL_DOWN),
300 UNIPHIER_PINCTRL_PIN(92, "PC0IOWR", 92,
301 8, UNIPHIER_PIN_DRV_1BIT,
302 92, UNIPHIER_PIN_PULL_DOWN),
303 UNIPHIER_PINCTRL_PIN(93, "PC0IORD", 93,
304 9, UNIPHIER_PIN_DRV_1BIT,
305 93, UNIPHIER_PIN_PULL_DOWN),
306 UNIPHIER_PINCTRL_PIN(94, "PCD00", 94,
307 10, UNIPHIER_PIN_DRV_1BIT,
308 94, UNIPHIER_PIN_PULL_DOWN),
309 UNIPHIER_PINCTRL_PIN(95, "PCD01", 95,
310 11, UNIPHIER_PIN_DRV_1BIT,
311 95, UNIPHIER_PIN_PULL_DOWN),
312 UNIPHIER_PINCTRL_PIN(96, "PCD02", 96,
313 12, UNIPHIER_PIN_DRV_1BIT,
314 96, UNIPHIER_PIN_PULL_DOWN),
315 UNIPHIER_PINCTRL_PIN(97, "PCD03", 97,
316 13, UNIPHIER_PIN_DRV_1BIT,
317 97, UNIPHIER_PIN_PULL_DOWN),
318 UNIPHIER_PINCTRL_PIN(98, "PCD04", 98,
319 14, UNIPHIER_PIN_DRV_1BIT,
320 98, UNIPHIER_PIN_PULL_DOWN),
321 UNIPHIER_PINCTRL_PIN(99, "PCD05", 99,
322 15, UNIPHIER_PIN_DRV_1BIT,
323 99, UNIPHIER_PIN_PULL_DOWN),
324 UNIPHIER_PINCTRL_PIN(100, "PCD06", 100,
325 16, UNIPHIER_PIN_DRV_1BIT,
326 100, UNIPHIER_PIN_PULL_DOWN),
327 UNIPHIER_PINCTRL_PIN(101, "PCD07", 101,
328 17, UNIPHIER_PIN_DRV_1BIT,
329 101, UNIPHIER_PIN_PULL_DOWN),
330 UNIPHIER_PINCTRL_PIN(102, "HS0BCLKIN", 102,
331 18, UNIPHIER_PIN_DRV_1BIT,
332 102, UNIPHIER_PIN_PULL_DOWN),
333 UNIPHIER_PINCTRL_PIN(103, "HS0SYNCIN", 103,
334 19, UNIPHIER_PIN_DRV_1BIT,
335 103, UNIPHIER_PIN_PULL_DOWN),
336 UNIPHIER_PINCTRL_PIN(104, "HS0VALIN", 104,
337 20, UNIPHIER_PIN_DRV_1BIT,
338 104, UNIPHIER_PIN_PULL_DOWN),
339 UNIPHIER_PINCTRL_PIN(105, "HS0DIN0", 105,
340 21, UNIPHIER_PIN_DRV_1BIT,
341 105, UNIPHIER_PIN_PULL_DOWN),
342 UNIPHIER_PINCTRL_PIN(106, "HS0DIN1", 106,
343 22, UNIPHIER_PIN_DRV_1BIT,
344 106, UNIPHIER_PIN_PULL_DOWN),
345 UNIPHIER_PINCTRL_PIN(107, "HS0DIN2", 107,
346 23, UNIPHIER_PIN_DRV_1BIT,
347 107, UNIPHIER_PIN_PULL_DOWN),
348 UNIPHIER_PINCTRL_PIN(108, "HS0DIN3", 108,
349 24, UNIPHIER_PIN_DRV_1BIT,
350 108, UNIPHIER_PIN_PULL_DOWN),
351 UNIPHIER_PINCTRL_PIN(109, "HS0DIN4", 109,
352 25, UNIPHIER_PIN_DRV_1BIT,
353 109, UNIPHIER_PIN_PULL_DOWN),
354 UNIPHIER_PINCTRL_PIN(110, "HS0DIN5", 110,
355 26, UNIPHIER_PIN_DRV_1BIT,
356 110, UNIPHIER_PIN_PULL_DOWN),
357 UNIPHIER_PINCTRL_PIN(111, "HS0DIN6", 111,
358 27, UNIPHIER_PIN_DRV_1BIT,
359 111, UNIPHIER_PIN_PULL_DOWN),
360 UNIPHIER_PINCTRL_PIN(112, "HS0DIN7", 112,
361 28, UNIPHIER_PIN_DRV_1BIT,
362 112, UNIPHIER_PIN_PULL_DOWN),
363 UNIPHIER_PINCTRL_PIN(113, "HS0BCLKOUT", 113,
364 64, UNIPHIER_PIN_DRV_3BIT,
365 113, UNIPHIER_PIN_PULL_DOWN),
366 UNIPHIER_PINCTRL_PIN(114, "HS0SYNCOUT", 114,
367 65, UNIPHIER_PIN_DRV_3BIT,
368 114, UNIPHIER_PIN_PULL_DOWN),
369 UNIPHIER_PINCTRL_PIN(115, "HS0VALOUT", 115,
370 66, UNIPHIER_PIN_DRV_3BIT,
371 115, UNIPHIER_PIN_PULL_DOWN),
372 UNIPHIER_PINCTRL_PIN(116, "HS0DOUT0", 116,
373 67, UNIPHIER_PIN_DRV_3BIT,
374 116, UNIPHIER_PIN_PULL_DOWN),
375 UNIPHIER_PINCTRL_PIN(117, "HS0DOUT1", 117,
376 68, UNIPHIER_PIN_DRV_3BIT,
377 117, UNIPHIER_PIN_PULL_DOWN),
378 UNIPHIER_PINCTRL_PIN(118, "HS0DOUT2", 118,
379 69, UNIPHIER_PIN_DRV_3BIT,
380 118, UNIPHIER_PIN_PULL_DOWN),
381 UNIPHIER_PINCTRL_PIN(119, "HS0DOUT3", 119,
382 70, UNIPHIER_PIN_DRV_3BIT,
383 119, UNIPHIER_PIN_PULL_DOWN),
384 UNIPHIER_PINCTRL_PIN(120, "HS0DOUT4", 120,
385 71, UNIPHIER_PIN_DRV_3BIT,
386 120, UNIPHIER_PIN_PULL_DOWN),
387 UNIPHIER_PINCTRL_PIN(121, "HS0DOUT5", 121,
388 72, UNIPHIER_PIN_DRV_3BIT,
389 121, UNIPHIER_PIN_PULL_DOWN),
390 UNIPHIER_PINCTRL_PIN(122, "HS0DOUT6", 122,
391 73, UNIPHIER_PIN_DRV_3BIT,
392 122, UNIPHIER_PIN_PULL_DOWN),
393 UNIPHIER_PINCTRL_PIN(123, "HS0DOUT7", 123,
394 74, UNIPHIER_PIN_DRV_3BIT,
395 123, UNIPHIER_PIN_PULL_DOWN),
396 UNIPHIER_PINCTRL_PIN(124, "HS1BCLKIN", 124,
397 75, UNIPHIER_PIN_DRV_3BIT,
398 124, UNIPHIER_PIN_PULL_DOWN),
399 UNIPHIER_PINCTRL_PIN(125, "HS1SYNCIN", 125,
400 76, UNIPHIER_PIN_DRV_3BIT,
401 125, UNIPHIER_PIN_PULL_DOWN),
402 UNIPHIER_PINCTRL_PIN(126, "HS1VALIN", 126,
403 77, UNIPHIER_PIN_DRV_3BIT,
404 126, UNIPHIER_PIN_PULL_DOWN),
405 UNIPHIER_PINCTRL_PIN(127, "HS1DIN0", 127,
406 78, UNIPHIER_PIN_DRV_3BIT,
407 127, UNIPHIER_PIN_PULL_DOWN),
408 UNIPHIER_PINCTRL_PIN(128, "HS1DIN1", 128,
409 79, UNIPHIER_PIN_DRV_3BIT,
410 128, UNIPHIER_PIN_PULL_DOWN),
411 UNIPHIER_PINCTRL_PIN(129, "HS1DIN2", 129,
412 80, UNIPHIER_PIN_DRV_3BIT,
413 129, UNIPHIER_PIN_PULL_DOWN),
414 UNIPHIER_PINCTRL_PIN(130, "HS1DIN3", 130,
415 81, UNIPHIER_PIN_DRV_3BIT,
416 130, UNIPHIER_PIN_PULL_DOWN),
417 UNIPHIER_PINCTRL_PIN(131, "HS1DIN4", 131,
418 82, UNIPHIER_PIN_DRV_3BIT,
419 131, UNIPHIER_PIN_PULL_DOWN),
420 UNIPHIER_PINCTRL_PIN(132, "HS1DIN5", 132,
421 83, UNIPHIER_PIN_DRV_3BIT,
422 132, UNIPHIER_PIN_PULL_DOWN),
423 UNIPHIER_PINCTRL_PIN(133, "HS1DIN6", 133,
424 84, UNIPHIER_PIN_DRV_3BIT,
425 133, UNIPHIER_PIN_PULL_DOWN),
426 UNIPHIER_PINCTRL_PIN(134, "HS1DIN7", 134,
427 85, UNIPHIER_PIN_DRV_3BIT,
428 134, UNIPHIER_PIN_PULL_DOWN),
429 UNIPHIER_PINCTRL_PIN(135, "AO1IEC", 135,
430 86, UNIPHIER_PIN_DRV_3BIT,
431 135, UNIPHIER_PIN_PULL_DOWN),
432 UNIPHIER_PINCTRL_PIN(136, "AO1ARC", 136,
433 87, UNIPHIER_PIN_DRV_3BIT,
434 136, UNIPHIER_PIN_PULL_DOWN),
435 UNIPHIER_PINCTRL_PIN(137, "AO1DACCK", 137,
436 88, UNIPHIER_PIN_DRV_3BIT,
437 137, UNIPHIER_PIN_PULL_DOWN),
438 UNIPHIER_PINCTRL_PIN(138, "AO1BCK", 138,
439 89, UNIPHIER_PIN_DRV_3BIT,
440 138, UNIPHIER_PIN_PULL_DOWN),
441 UNIPHIER_PINCTRL_PIN(139, "AO1LRCK", 139,
442 90, UNIPHIER_PIN_DRV_3BIT,
443 139, UNIPHIER_PIN_PULL_DOWN),
444 UNIPHIER_PINCTRL_PIN(140, "AO1D0", 140,
445 91, UNIPHIER_PIN_DRV_3BIT,
446 140, UNIPHIER_PIN_PULL_DOWN),
447 UNIPHIER_PINCTRL_PIN(141, "AO1D1", 141,
448 92, UNIPHIER_PIN_DRV_3BIT,
449 141, UNIPHIER_PIN_PULL_DOWN),
450 UNIPHIER_PINCTRL_PIN(142, "AO1D2", 142,
451 93, UNIPHIER_PIN_DRV_3BIT,
452 142, UNIPHIER_PIN_PULL_DOWN),
453 UNIPHIER_PINCTRL_PIN(143, "HTPDN0", 143,
454 94, UNIPHIER_PIN_DRV_3BIT,
455 143, UNIPHIER_PIN_PULL_DOWN),
456 UNIPHIER_PINCTRL_PIN(144, "LOCKN0", 144,
457 95, UNIPHIER_PIN_DRV_3BIT,
458 144, UNIPHIER_PIN_PULL_DOWN),
459 UNIPHIER_PINCTRL_PIN(145, "HTPDN1", 145,
460 96, UNIPHIER_PIN_DRV_3BIT,
461 145, UNIPHIER_PIN_PULL_DOWN),
462 UNIPHIER_PINCTRL_PIN(146, "LOCKN1", 146,
463 97, UNIPHIER_PIN_DRV_3BIT,
464 146, UNIPHIER_PIN_PULL_DOWN),
465 UNIPHIER_PINCTRL_PIN(147, "PWMA", 147,
466 98, UNIPHIER_PIN_DRV_3BIT,
467 147, UNIPHIER_PIN_PULL_DOWN),
468 UNIPHIER_PINCTRL_PIN(148, "LR_GOUT", 148,
469 99, UNIPHIER_PIN_DRV_3BIT,
470 148, UNIPHIER_PIN_PULL_DOWN),
471 UNIPHIER_PINCTRL_PIN(149, "XIRQ0", 149,
472 100, UNIPHIER_PIN_DRV_3BIT,
473 149, UNIPHIER_PIN_PULL_DOWN),
474 UNIPHIER_PINCTRL_PIN(150, "XIRQ1", 150,
475 101, UNIPHIER_PIN_DRV_3BIT,
476 150, UNIPHIER_PIN_PULL_DOWN),
477 UNIPHIER_PINCTRL_PIN(151, "XIRQ2", 151,
478 102, UNIPHIER_PIN_DRV_3BIT,
479 151, UNIPHIER_PIN_PULL_DOWN),
480 UNIPHIER_PINCTRL_PIN(152, "XIRQ3", 152,
481 103, UNIPHIER_PIN_DRV_3BIT,
482 152, UNIPHIER_PIN_PULL_DOWN),
483 UNIPHIER_PINCTRL_PIN(153, "XIRQ4", 153,
484 104, UNIPHIER_PIN_DRV_3BIT,
485 153, UNIPHIER_PIN_PULL_DOWN),
486 UNIPHIER_PINCTRL_PIN(154, "XIRQ5", 154,
487 105, UNIPHIER_PIN_DRV_3BIT,
488 154, UNIPHIER_PIN_PULL_DOWN),
489 UNIPHIER_PINCTRL_PIN(155, "XIRQ6", 155,
490 106, UNIPHIER_PIN_DRV_3BIT,
491 155, UNIPHIER_PIN_PULL_DOWN),
492 UNIPHIER_PINCTRL_PIN(156, "XIRQ7", 156,
493 107, UNIPHIER_PIN_DRV_3BIT,
494 156, UNIPHIER_PIN_PULL_DOWN),
495 UNIPHIER_PINCTRL_PIN(157, "XIRQ8", 157,
496 108, UNIPHIER_PIN_DRV_3BIT,
497 157, UNIPHIER_PIN_PULL_DOWN),
498 UNIPHIER_PINCTRL_PIN(158, "XIRQ9", 158,
499 109, UNIPHIER_PIN_DRV_3BIT,
500 158, UNIPHIER_PIN_PULL_DOWN),
501 UNIPHIER_PINCTRL_PIN(159, "XIRQ10", 159,
502 110, UNIPHIER_PIN_DRV_3BIT,
503 159, UNIPHIER_PIN_PULL_DOWN),
504 UNIPHIER_PINCTRL_PIN(160, "XIRQ11", 160,
505 111, UNIPHIER_PIN_DRV_3BIT,
506 160, UNIPHIER_PIN_PULL_DOWN),
507 UNIPHIER_PINCTRL_PIN(161, "XIRQ13", 161,
508 112, UNIPHIER_PIN_DRV_3BIT,
509 161, UNIPHIER_PIN_PULL_DOWN),
510 UNIPHIER_PINCTRL_PIN(162, "XIRQ14", 162,
511 113, UNIPHIER_PIN_DRV_3BIT,
512 162, UNIPHIER_PIN_PULL_DOWN),
513 UNIPHIER_PINCTRL_PIN(163, "XIRQ16", 163,
514 114, UNIPHIER_PIN_DRV_3BIT,
515 163, UNIPHIER_PIN_PULL_DOWN),
516 UNIPHIER_PINCTRL_PIN(164, "XIRQ17", 164,
517 115, UNIPHIER_PIN_DRV_3BIT,
518 164, UNIPHIER_PIN_PULL_DOWN),
519 UNIPHIER_PINCTRL_PIN(165, "XIRQ18", 165,
520 116, UNIPHIER_PIN_DRV_3BIT,
521 165, UNIPHIER_PIN_PULL_DOWN),
522 UNIPHIER_PINCTRL_PIN(166, "XIRQ19", 166,
523 117, UNIPHIER_PIN_DRV_3BIT,
524 166, UNIPHIER_PIN_PULL_DOWN),
525 UNIPHIER_PINCTRL_PIN(167, "XIRQ20", 167,
526 118, UNIPHIER_PIN_DRV_3BIT,
527 167, UNIPHIER_PIN_PULL_DOWN),
528 UNIPHIER_PINCTRL_PIN(168, "PORT00", 168,
529 119, UNIPHIER_PIN_DRV_3BIT,
530 168, UNIPHIER_PIN_PULL_DOWN),
531 UNIPHIER_PINCTRL_PIN(169, "PORT01", 169,
532 120, UNIPHIER_PIN_DRV_3BIT,
533 169, UNIPHIER_PIN_PULL_DOWN),
534 UNIPHIER_PINCTRL_PIN(170, "PORT02", 170,
535 121, UNIPHIER_PIN_DRV_3BIT,
536 170, UNIPHIER_PIN_PULL_DOWN),
537 UNIPHIER_PINCTRL_PIN(171, "PORT03", 171,
538 122, UNIPHIER_PIN_DRV_3BIT,
539 171, UNIPHIER_PIN_PULL_DOWN),
540 UNIPHIER_PINCTRL_PIN(172, "PORT04", 172,
541 123, UNIPHIER_PIN_DRV_3BIT,
542 172, UNIPHIER_PIN_PULL_DOWN),
543 UNIPHIER_PINCTRL_PIN(173, "CK27FO", 173,
544 124, UNIPHIER_PIN_DRV_3BIT,
545 173, UNIPHIER_PIN_PULL_DOWN),
546 UNIPHIER_PINCTRL_PIN(174, "PHSYNCO", 174,
547 125, UNIPHIER_PIN_DRV_3BIT,
548 174, UNIPHIER_PIN_PULL_DOWN),
549 UNIPHIER_PINCTRL_PIN(175, "PVSYNCO", 175,
550 126, UNIPHIER_PIN_DRV_3BIT,
551 175, UNIPHIER_PIN_PULL_DOWN),
552};
553
554static const unsigned emmc_pins[] = {18, 19, 20, 21, 22, 23, 24, 25};
555static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0};
556static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29};
557static const int emmc_dat8_muxvals[] = {0, 0, 0, 0};
1e359ab1
MY
558static const unsigned ether_rgmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 38,
559 39, 40, 41, 42, 43, 44, 45};
560static const int ether_rgmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
561 0, 0, 0, 0};
562static const unsigned ether_rmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 39,
563 41, 42, 45};
df1539c2 564static const int ether_rmii_muxvals[] = {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1};
336306ee
MY
565static const unsigned i2c0_pins[] = {63, 64};
566static const int i2c0_muxvals[] = {0, 0};
567static const unsigned i2c1_pins[] = {65, 66};
568static const int i2c1_muxvals[] = {0, 0};
569static const unsigned i2c3_pins[] = {67, 68};
570static const int i2c3_muxvals[] = {1, 1};
571static const unsigned i2c4_pins[] = {61, 62};
572static const int i2c4_muxvals[] = {1, 1};
573static const unsigned nand_pins[] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
574 15, 16, 17};
9467f568 575static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
336306ee
MY
576static const unsigned sd_pins[] = {10, 11, 12, 13, 14, 15, 16, 17};
577static const int sd_muxvals[] = {3, 3, 3, 3, 3, 3, 3, 3}; /* No SDVOLC */
578static const unsigned system_bus_pins[] = {1, 2, 6, 7, 8, 9, 10, 11, 12, 13,
579 14, 15, 16, 17};
580static const int system_bus_muxvals[] = {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
581 2};
582static const unsigned system_bus_cs1_pins[] = {0};
583static const int system_bus_cs1_muxvals[] = {0};
584static const unsigned uart0_pins[] = {54, 55};
585static const int uart0_muxvals[] = {0, 0};
586static const unsigned uart1_pins[] = {58, 59};
587static const int uart1_muxvals[] = {1, 1};
588static const unsigned uart2_pins[] = {90, 91};
589static const int uart2_muxvals[] = {1, 1};
590static const unsigned uart3_pins[] = {94, 95};
591static const int uart3_muxvals[] = {1, 1};
592static const unsigned usb0_pins[] = {46, 47};
593static const int usb0_muxvals[] = {0, 0};
594static const unsigned usb1_pins[] = {48, 49};
595static const int usb1_muxvals[] = {0, 0};
596static const unsigned usb2_pins[] = {50, 51};
597static const int usb2_muxvals[] = {0, 0};
598static const unsigned usb3_pins[] = {52, 53};
599static const int usb3_muxvals[] = {0, 0};
1bd303dc 600static const unsigned port_range0_pins[] = {
336306ee
MY
601 168, 169, 170, 171, 172, 173, 174, 175, /* PORT0x */
602 0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */
603 8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */
604 16, 17, 18, 30, 31, 32, 33, 34, /* PORT3x */
605 35, 36, 37, 38, 39, 40, 41, 42, /* PORT4x */
606 43, 44, 45, 46, 47, 48, 49, 50, /* PORT5x */
607 51, 52, 53, 54, 55, 56, 57, 58, /* PORT6x */
608 59, 60, 69, 70, 71, 72, 73, 74, /* PORT7x */
609 75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */
610 83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */
611 91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */
336306ee 612};
1bd303dc 613static const int port_range0_muxvals[] = {
336306ee
MY
614 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
615 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
616 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
617 15, 15, 15, 15, 15, 15, 15, 15, /* PORT3x */
618 15, 15, 15, 15, 15, 15, 15, 15, /* PORT4x */
619 15, 15, 15, 15, 15, 15, 15, 15, /* PORT5x */
620 15, 15, 15, 15, 15, 15, 15, 15, /* PORT6x */
621 15, 15, 15, 15, 15, 15, 15, 15, /* PORT7x */
622 15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */
623 15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */
624 15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */
1bd303dc
MY
625};
626static const unsigned port_range1_pins[] = {
627 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
628 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
629 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
630};
631static const int port_range1_muxvals[] = {
336306ee
MY
632 15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */
633 15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */
634 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */
1bd303dc
MY
635};
636static const unsigned port_range2_pins[] = {
637 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
638};
639static const int port_range2_muxvals[] = {
336306ee 640 15, 15, 15, 15, 15, 15, 15, 15, /* PORT18x */
1bd303dc
MY
641};
642static const unsigned port_range3_pins[] = {
643 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
644 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
645 139, 140, 141, 142, 143, 144, 145, 146, /* PORT22x */
646 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
647 155, 156, 157, 158, 159, 160, 161, 162, /* PORT24x */
648 163, 164, 165, 166, 167, /* PORT250-254 */
649};
650static const int port_range3_muxvals[] = {
336306ee
MY
651 15, 15, 15, 15, 15, 15, 15, 15, /* PORT20x */
652 15, 15, 15, 15, 15, 15, 15, 15, /* PORT21x */
653 15, 15, 15, 15, 15, 15, 15, 15, /* PORT22x */
654 15, 15, 15, 15, 15, 15, 15, 15, /* PORT23x */
655 15, 15, 15, 15, 15, 15, 15, 15, /* PORT24x */
1bd303dc 656 15, 15, 15, 15, 15, /* PORT250-254 */
336306ee
MY
657};
658static const unsigned xirq_pins[] = {
659 149, 150, 151, 152, 153, 154, 155, 156, /* XIRQ0-7 */
660 157, 158, 159, 160, 85, 161, 162, 84, /* XIRQ8-15 */
661 163, 164, 165, 166, 167, 146, 52, 53, /* XIRQ16-23 */
662};
663static const int xirq_muxvals[] = {
664 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */
665 14, 14, 14, 14, 13, 14, 14, 13, /* XIRQ8-15 */
666 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */
667};
668static const unsigned xirq_alternatives_pins[] = {
669 94, 95, 96, 97, 98, 99, 100, 101, /* XIRQ0-7 */
670 102, 103, 104, 105, 106, 107, /* XIRQ8-11,13,14 */
671 108, 109, 110, 111, 112, 147, 141, 142, /* XIRQ16-23 */
672};
673static const int xirq_alternatives_muxvals[] = {
674 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */
675 14, 14, 14, 14, 14, 14, /* XIRQ8-11,13,14 */
676 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */
677};
678
679static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = {
680 UNIPHIER_PINCTRL_GROUP(emmc),
681 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
1e359ab1
MY
682 UNIPHIER_PINCTRL_GROUP(ether_rgmii),
683 UNIPHIER_PINCTRL_GROUP(ether_rmii),
336306ee
MY
684 UNIPHIER_PINCTRL_GROUP(i2c0),
685 UNIPHIER_PINCTRL_GROUP(i2c1),
686 UNIPHIER_PINCTRL_GROUP(i2c3),
687 UNIPHIER_PINCTRL_GROUP(i2c4),
688 UNIPHIER_PINCTRL_GROUP(nand),
689 UNIPHIER_PINCTRL_GROUP(sd),
690 UNIPHIER_PINCTRL_GROUP(system_bus),
691 UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
692 UNIPHIER_PINCTRL_GROUP(uart0),
693 UNIPHIER_PINCTRL_GROUP(uart1),
694 UNIPHIER_PINCTRL_GROUP(uart2),
695 UNIPHIER_PINCTRL_GROUP(uart3),
696 UNIPHIER_PINCTRL_GROUP(usb0),
697 UNIPHIER_PINCTRL_GROUP(usb1),
698 UNIPHIER_PINCTRL_GROUP(usb2),
699 UNIPHIER_PINCTRL_GROUP(usb3),
1bd303dc
MY
700 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range0),
701 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range1),
702 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range2),
703 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range3),
336306ee
MY
704 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq),
705 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_alternatives),
1bd303dc
MY
706 UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range0, 0),
707 UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range0, 1),
708 UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range0, 2),
709 UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range0, 3),
710 UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range0, 4),
711 UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range0, 5),
712 UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range0, 6),
713 UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range0, 7),
714 UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range0, 8),
715 UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range0, 9),
716 UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range0, 10),
717 UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range0, 11),
718 UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range0, 12),
719 UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range0, 13),
720 UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range0, 14),
721 UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range0, 15),
722 UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range0, 16),
723 UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range0, 17),
724 UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range0, 18),
725 UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range0, 19),
726 UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range0, 20),
727 UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range0, 21),
728 UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range0, 22),
729 UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range0, 23),
730 UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range0, 24),
731 UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range0, 25),
732 UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range0, 26),
733 UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range0, 27),
734 UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range0, 28),
735 UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range0, 29),
736 UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range0, 30),
737 UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range0, 31),
738 UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range0, 32),
739 UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range0, 33),
740 UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range0, 34),
741 UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range0, 35),
742 UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range0, 36),
743 UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range0, 37),
744 UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range0, 38),
745 UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range0, 39),
746 UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range0, 40),
747 UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range0, 41),
748 UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range0, 42),
749 UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range0, 43),
750 UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range0, 44),
751 UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range0, 45),
752 UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range0, 46),
753 UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range0, 47),
754 UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range0, 48),
755 UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range0, 49),
756 UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range0, 50),
757 UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range0, 51),
758 UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range0, 52),
759 UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range0, 53),
760 UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range0, 54),
761 UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range0, 55),
762 UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range0, 56),
763 UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range0, 57),
764 UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range0, 58),
765 UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range0, 59),
766 UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range0, 60),
767 UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range0, 61),
768 UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range0, 62),
769 UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range0, 63),
770 UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range0, 64),
771 UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range0, 65),
772 UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range0, 66),
773 UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range0, 67),
774 UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range0, 68),
775 UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range0, 69),
776 UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range0, 70),
777 UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range0, 71),
778 UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range0, 72),
779 UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range0, 73),
780 UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range0, 74),
781 UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range0, 75),
782 UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range0, 76),
783 UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range0, 77),
784 UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range0, 78),
785 UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range0, 79),
786 UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range0, 80),
787 UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range0, 81),
788 UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range0, 82),
789 UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range0, 83),
790 UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range0, 84),
791 UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range0, 85),
792 UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range0, 86),
793 UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range0, 87),
794 UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range1, 0),
795 UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range1, 1),
796 UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range1, 2),
797 UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range1, 3),
798 UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range1, 4),
799 UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range1, 5),
800 UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range1, 6),
801 UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range1, 7),
802 UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range1, 8),
803 UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range1, 9),
804 UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range1, 10),
805 UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range1, 11),
806 UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range1, 12),
807 UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range1, 13),
808 UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range1, 14),
809 UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range1, 15),
810 UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range1, 16),
811 UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range1, 17),
812 UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range1, 18),
813 UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range1, 19),
814 UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range1, 20),
815 UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range1, 21),
816 UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range1, 22),
817 UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range1, 23),
818 UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range2, 0),
819 UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range2, 1),
820 UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range2, 2),
821 UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range2, 3),
822 UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range2, 4),
823 UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range2, 5),
824 UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range2, 6),
825 UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range2, 7),
826 UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range3, 0),
827 UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range3, 1),
828 UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range3, 2),
829 UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range3, 3),
830 UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range3, 4),
831 UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range3, 5),
832 UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range3, 6),
833 UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range3, 7),
834 UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range3, 8),
835 UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range3, 9),
836 UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range3, 10),
837 UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range3, 11),
838 UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range3, 12),
839 UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range3, 13),
840 UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range3, 14),
841 UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range3, 15),
842 UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range3, 16),
843 UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range3, 17),
844 UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range3, 18),
845 UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range3, 19),
846 UNIPHIER_PINCTRL_GROUP_SINGLE(port224, port_range3, 20),
847 UNIPHIER_PINCTRL_GROUP_SINGLE(port225, port_range3, 21),
848 UNIPHIER_PINCTRL_GROUP_SINGLE(port226, port_range3, 22),
849 UNIPHIER_PINCTRL_GROUP_SINGLE(port227, port_range3, 23),
850 UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range3, 24),
851 UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range3, 25),
852 UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range3, 26),
853 UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range3, 27),
854 UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range3, 28),
855 UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range3, 29),
856 UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range3, 30),
857 UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range3, 31),
858 UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range3, 32),
859 UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range3, 33),
860 UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range3, 34),
861 UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range3, 35),
862 UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range3, 36),
863 UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range3, 37),
864 UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range3, 38),
865 UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range3, 39),
866 UNIPHIER_PINCTRL_GROUP_SINGLE(port250, port_range3, 40),
867 UNIPHIER_PINCTRL_GROUP_SINGLE(port251, port_range3, 41),
868 UNIPHIER_PINCTRL_GROUP_SINGLE(port252, port_range3, 42),
869 UNIPHIER_PINCTRL_GROUP_SINGLE(port253, port_range3, 43),
870 UNIPHIER_PINCTRL_GROUP_SINGLE(port254, port_range3, 44),
336306ee
MY
871 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq, 0),
872 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq, 1),
873 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq, 2),
874 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3, xirq, 3),
875 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4, xirq, 4),
876 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5, xirq, 5),
877 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6, xirq, 6),
878 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7, xirq, 7),
879 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8, xirq, 8),
880 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9, xirq, 9),
881 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10, xirq, 10),
882 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11, xirq, 11),
883 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq12, xirq, 12),
884 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq13, xirq, 13),
885 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14, xirq, 14),
886 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq15, xirq, 15),
887 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq16, xirq, 16),
888 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq17, xirq, 17),
889 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq18, xirq, 18),
890 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq19, xirq, 19),
891 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq20, xirq, 20),
892 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq21, xirq, 21),
893 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq22, xirq, 22),
894 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq23, xirq, 23),
895 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0b, xirq_alternatives, 0),
896 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1b, xirq_alternatives, 1),
897 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2b, xirq_alternatives, 2),
898 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3b, xirq_alternatives, 3),
899 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4b, xirq_alternatives, 4),
900 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5b, xirq_alternatives, 5),
901 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6b, xirq_alternatives, 6),
902 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7b, xirq_alternatives, 7),
903 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8b, xirq_alternatives, 8),
904 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9b, xirq_alternatives, 9),
905 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10b, xirq_alternatives, 10),
906 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11b, xirq_alternatives, 11),
907 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq13b, xirq_alternatives, 12),
908 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14b, xirq_alternatives, 13),
909 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq16b, xirq_alternatives, 14),
910 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq17b, xirq_alternatives, 15),
911 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq18b, xirq_alternatives, 16),
912 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq19b, xirq_alternatives, 17),
913 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq20b, xirq_alternatives, 18),
914 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq21b, xirq_alternatives, 19),
915 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq22b, xirq_alternatives, 20),
916 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq23b, xirq_alternatives, 21),
917};
918
919static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
1e359ab1
MY
920static const char * const ether_rgmii_groups[] = {"ether_rgmii"};
921static const char * const ether_rmii_groups[] = {"ether_rmii"};
336306ee
MY
922static const char * const i2c0_groups[] = {"i2c0"};
923static const char * const i2c1_groups[] = {"i2c1"};
924static const char * const i2c3_groups[] = {"i2c3"};
925static const char * const i2c4_groups[] = {"i2c4"};
926static const char * const nand_groups[] = {"nand"};
927static const char * const sd_groups[] = {"sd"};
928static const char * const system_bus_groups[] = {"system_bus",
929 "system_bus_cs1"};
930static const char * const uart0_groups[] = {"uart0"};
931static const char * const uart1_groups[] = {"uart1"};
932static const char * const uart2_groups[] = {"uart2"};
933static const char * const uart3_groups[] = {"uart3"};
934static const char * const usb0_groups[] = {"usb0"};
935static const char * const usb1_groups[] = {"usb1"};
936static const char * const usb2_groups[] = {"usb2"};
937static const char * const usb3_groups[] = {"usb3"};
938static const char * const port_groups[] = {
939 "port00", "port01", "port02", "port03",
940 "port04", "port05", "port06", "port07",
941 "port10", "port11", "port12", "port13",
942 "port14", "port15", "port16", "port17",
943 "port20", "port21", "port22", "port23",
944 "port24", "port25", "port26", "port27",
945 "port30", "port31", "port32", "port33",
946 "port34", "port35", "port36", "port37",
947 "port40", "port41", "port42", "port43",
948 "port44", "port45", "port46", "port47",
949 "port50", "port51", "port52", "port53",
950 "port54", "port55", "port56", "port57",
951 "port60", "port61", "port62", "port63",
952 "port64", "port65", "port66", "port67",
953 "port70", "port71", "port72", "port73",
954 "port74", "port75", "port76", "port77",
955 "port80", "port81", "port82", "port83",
956 "port84", "port85", "port86", "port87",
957 "port90", "port91", "port92", "port93",
958 "port94", "port95", "port96", "port97",
959 "port100", "port101", "port102", "port103",
960 "port104", "port105", "port106", "port107",
961 /* port110-117 missing */
962 "port120", "port121", "port122", "port123",
963 "port124", "port125", "port126", "port127",
964 "port130", "port131", "port132", "port133",
965 "port134", "port135", "port136", "port137",
966 "port140", "port141", "port142", "port143",
967 "port144", "port145", "port146", "port147",
968 /* port150-177 missing */
969 "port180", "port181", "port182", "port183",
970 "port184", "port185", "port186", "port187",
971 /* port190-197 missing */
972 "port200", "port201", "port202", "port203",
973 "port204", "port205", "port206", "port207",
974 "port210", "port211", "port212", "port213",
975 "port214", "port215", "port216", "port217",
976 "port220", "port221", "port222", "port223",
977 "port224", "port225", "port226", "port227",
978 "port230", "port231", "port232", "port233",
979 "port234", "port235", "port236", "port237",
980 "port240", "port241", "port242", "port243",
981 "port244", "port245", "port246", "port247",
982 "port250", "port251", "port252", "port253",
983 "port254",
984};
985static const char * const xirq_groups[] = {
986 "xirq0", "xirq1", "xirq2", "xirq3",
987 "xirq4", "xirq5", "xirq6", "xirq7",
988 "xirq8", "xirq9", "xirq10", "xirq11",
989 "xirq12", "xirq13", "xirq14", "xirq15",
990 "xirq16", "xirq17", "xirq18", "xirq19",
991 "xirq20", "xirq21", "xirq22", "xirq23",
992 "xirq0b", "xirq1b", "xirq2b", "xirq3b",
993 "xirq4b", "xirq5b", "xirq6b", "xirq7b",
994 "xirq8b", "xirq9b", "xirq10b", "xirq11b",
995 /* none */ "xirq13b", "xirq14b", /* none */
996 "xirq16b", "xirq17b", "xirq18b", "xirq19b",
997 "xirq20b", "xirq21b", "xirq22b", "xirq23b",
998};
999
1000static const struct uniphier_pinmux_function uniphier_ld20_functions[] = {
1001 UNIPHIER_PINMUX_FUNCTION(emmc),
1e359ab1
MY
1002 UNIPHIER_PINMUX_FUNCTION(ether_rgmii),
1003 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
336306ee
MY
1004 UNIPHIER_PINMUX_FUNCTION(i2c0),
1005 UNIPHIER_PINMUX_FUNCTION(i2c1),
1006 UNIPHIER_PINMUX_FUNCTION(i2c3),
1007 UNIPHIER_PINMUX_FUNCTION(i2c4),
1008 UNIPHIER_PINMUX_FUNCTION(nand),
1009 UNIPHIER_PINMUX_FUNCTION(sd),
1010 UNIPHIER_PINMUX_FUNCTION(system_bus),
1011 UNIPHIER_PINMUX_FUNCTION(uart0),
1012 UNIPHIER_PINMUX_FUNCTION(uart1),
1013 UNIPHIER_PINMUX_FUNCTION(uart2),
1014 UNIPHIER_PINMUX_FUNCTION(uart3),
1015 UNIPHIER_PINMUX_FUNCTION(usb0),
1016 UNIPHIER_PINMUX_FUNCTION(usb1),
1017 UNIPHIER_PINMUX_FUNCTION(usb2),
1018 UNIPHIER_PINMUX_FUNCTION(usb3),
1019 UNIPHIER_PINMUX_FUNCTION(port),
1020 UNIPHIER_PINMUX_FUNCTION(xirq),
1021};
1022
1023static struct uniphier_pinctrl_socdata uniphier_ld20_pindata = {
1024 .pins = uniphier_ld20_pins,
1025 .npins = ARRAY_SIZE(uniphier_ld20_pins),
1026 .groups = uniphier_ld20_groups,
1027 .groups_count = ARRAY_SIZE(uniphier_ld20_groups),
1028 .functions = uniphier_ld20_functions,
1029 .functions_count = ARRAY_SIZE(uniphier_ld20_functions),
1030 .caps = UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL,
1031};
1032
1033static int uniphier_ld20_pinctrl_probe(struct platform_device *pdev)
1034{
1035 return uniphier_pinctrl_probe(pdev, &uniphier_ld20_pindata);
1036}
1037
1038static const struct of_device_id uniphier_ld20_pinctrl_match[] = {
1039 { .compatible = "socionext,uniphier-ld20-pinctrl" },
1040 { /* sentinel */ }
1041};
336306ee
MY
1042
1043static struct platform_driver uniphier_ld20_pinctrl_driver = {
1044 .probe = uniphier_ld20_pinctrl_probe,
1045 .driver = {
1046 .name = "uniphier-ld20-pinctrl",
1047 .of_match_table = uniphier_ld20_pinctrl_match,
1048 },
1049};
2afd450d 1050builtin_platform_driver(uniphier_ld20_pinctrl_driver);