Linux Audio

Check our new training course

Loading...
v6.2
  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);
 
 
 
 
v4.10.11
  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");