1
2
3
4
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_ld11_pins[] = {
15 UNIPHIER_PINCTRL_PIN(0, "XECS1", UNIPHIER_PIN_IECTRL_EXIST,
16 0, UNIPHIER_PIN_DRV_1BIT,
17 0, UNIPHIER_PIN_PULL_UP),
18 UNIPHIER_PINCTRL_PIN(1, "ERXW", UNIPHIER_PIN_IECTRL_NONE,
19 1, UNIPHIER_PIN_DRV_1BIT,
20 1, UNIPHIER_PIN_PULL_UP),
21 UNIPHIER_PINCTRL_PIN(2, "XERWE1", UNIPHIER_PIN_IECTRL_NONE,
22 2, UNIPHIER_PIN_DRV_1BIT,
23 2, UNIPHIER_PIN_PULL_UP),
24 UNIPHIER_PINCTRL_PIN(3, "XNFWP", UNIPHIER_PIN_IECTRL_EXIST,
25 3, UNIPHIER_PIN_DRV_1BIT,
26 3, UNIPHIER_PIN_PULL_DOWN),
27 UNIPHIER_PINCTRL_PIN(4, "XNFCE0", UNIPHIER_PIN_IECTRL_EXIST,
28 4, UNIPHIER_PIN_DRV_1BIT,
29 4, UNIPHIER_PIN_PULL_UP),
30 UNIPHIER_PINCTRL_PIN(5, "NFRYBY0", UNIPHIER_PIN_IECTRL_EXIST,
31 5, UNIPHIER_PIN_DRV_1BIT,
32 5, UNIPHIER_PIN_PULL_UP),
33 UNIPHIER_PINCTRL_PIN(6, "XNFRE", UNIPHIER_PIN_IECTRL_NONE,
34 6, UNIPHIER_PIN_DRV_1BIT,
35 6, UNIPHIER_PIN_PULL_UP),
36 UNIPHIER_PINCTRL_PIN(7, "XNFWE", UNIPHIER_PIN_IECTRL_NONE,
37 7, UNIPHIER_PIN_DRV_1BIT,
38 7, UNIPHIER_PIN_PULL_UP),
39 UNIPHIER_PINCTRL_PIN(8, "NFALE", UNIPHIER_PIN_IECTRL_NONE,
40 8, UNIPHIER_PIN_DRV_1BIT,
41 8, UNIPHIER_PIN_PULL_UP),
42 UNIPHIER_PINCTRL_PIN(9, "NFCLE", UNIPHIER_PIN_IECTRL_NONE,
43 9, UNIPHIER_PIN_DRV_1BIT,
44 9, UNIPHIER_PIN_PULL_UP),
45 UNIPHIER_PINCTRL_PIN(10, "NFD0", UNIPHIER_PIN_IECTRL_EXIST,
46 10, UNIPHIER_PIN_DRV_1BIT,
47 10, UNIPHIER_PIN_PULL_UP),
48 UNIPHIER_PINCTRL_PIN(11, "NFD1", UNIPHIER_PIN_IECTRL_EXIST,
49 11, UNIPHIER_PIN_DRV_1BIT,
50 11, UNIPHIER_PIN_PULL_UP),
51 UNIPHIER_PINCTRL_PIN(12, "NFD2", UNIPHIER_PIN_IECTRL_EXIST,
52 12, UNIPHIER_PIN_DRV_1BIT,
53 12, UNIPHIER_PIN_PULL_UP),
54 UNIPHIER_PINCTRL_PIN(13, "NFD3", UNIPHIER_PIN_IECTRL_EXIST,
55 13, UNIPHIER_PIN_DRV_1BIT,
56 13, UNIPHIER_PIN_PULL_UP),
57 UNIPHIER_PINCTRL_PIN(14, "NFD4", UNIPHIER_PIN_IECTRL_EXIST,
58 14, UNIPHIER_PIN_DRV_1BIT,
59 14, UNIPHIER_PIN_PULL_UP),
60 UNIPHIER_PINCTRL_PIN(15, "NFD5", UNIPHIER_PIN_IECTRL_EXIST,
61 15, UNIPHIER_PIN_DRV_1BIT,
62 15, UNIPHIER_PIN_PULL_UP),
63 UNIPHIER_PINCTRL_PIN(16, "NFD6", UNIPHIER_PIN_IECTRL_EXIST,
64 16, UNIPHIER_PIN_DRV_1BIT,
65 16, UNIPHIER_PIN_PULL_UP),
66 UNIPHIER_PINCTRL_PIN(17, "NFD7", UNIPHIER_PIN_IECTRL_EXIST,
67 17, UNIPHIER_PIN_DRV_1BIT,
68 17, UNIPHIER_PIN_PULL_UP),
69 UNIPHIER_PINCTRL_PIN(18, "XERST", UNIPHIER_PIN_IECTRL_EXIST,
70 0, UNIPHIER_PIN_DRV_2BIT,
71 18, UNIPHIER_PIN_PULL_UP),
72 UNIPHIER_PINCTRL_PIN(19, "MMCCLK", UNIPHIER_PIN_IECTRL_EXIST,
73 1, UNIPHIER_PIN_DRV_2BIT,
74 19, UNIPHIER_PIN_PULL_UP),
75 UNIPHIER_PINCTRL_PIN(20, "MMCCMD", UNIPHIER_PIN_IECTRL_EXIST,
76 2, UNIPHIER_PIN_DRV_2BIT,
77 20, UNIPHIER_PIN_PULL_UP),
78 UNIPHIER_PINCTRL_PIN(21, "MMCDS", UNIPHIER_PIN_IECTRL_EXIST,
79 3, UNIPHIER_PIN_DRV_2BIT,
80 21, UNIPHIER_PIN_PULL_UP),
81 UNIPHIER_PINCTRL_PIN(22, "MMCDAT0", UNIPHIER_PIN_IECTRL_EXIST,
82 4, UNIPHIER_PIN_DRV_2BIT,
83 22, UNIPHIER_PIN_PULL_UP),
84 UNIPHIER_PINCTRL_PIN(23, "MMCDAT1", UNIPHIER_PIN_IECTRL_EXIST,
85 5, UNIPHIER_PIN_DRV_2BIT,
86 23, UNIPHIER_PIN_PULL_UP),
87 UNIPHIER_PINCTRL_PIN(24, "MMCDAT2", UNIPHIER_PIN_IECTRL_EXIST,
88 6, UNIPHIER_PIN_DRV_2BIT,
89 24, UNIPHIER_PIN_PULL_UP),
90 UNIPHIER_PINCTRL_PIN(25, "MMCDAT3", UNIPHIER_PIN_IECTRL_EXIST,
91 7, UNIPHIER_PIN_DRV_2BIT,
92 25, UNIPHIER_PIN_PULL_UP),
93 UNIPHIER_PINCTRL_PIN(26, "MMCDAT4", UNIPHIER_PIN_IECTRL_EXIST,
94 8, UNIPHIER_PIN_DRV_2BIT,
95 26, UNIPHIER_PIN_PULL_UP),
96 UNIPHIER_PINCTRL_PIN(27, "MMCDAT5", UNIPHIER_PIN_IECTRL_EXIST,
97 9, UNIPHIER_PIN_DRV_2BIT,
98 27, UNIPHIER_PIN_PULL_UP),
99 UNIPHIER_PINCTRL_PIN(28, "MMCDAT6", UNIPHIER_PIN_IECTRL_EXIST,
100 10, UNIPHIER_PIN_DRV_2BIT,
101 28, UNIPHIER_PIN_PULL_UP),
102 UNIPHIER_PINCTRL_PIN(29, "MMCDAT7", UNIPHIER_PIN_IECTRL_EXIST,
103 11, UNIPHIER_PIN_DRV_2BIT,
104 29, UNIPHIER_PIN_PULL_UP),
105 UNIPHIER_PINCTRL_PIN(46, "USB0VBUS", UNIPHIER_PIN_IECTRL_EXIST,
106 46, UNIPHIER_PIN_DRV_1BIT,
107 46, UNIPHIER_PIN_PULL_DOWN),
108 UNIPHIER_PINCTRL_PIN(47, "USB0OD", UNIPHIER_PIN_IECTRL_NONE,
109 47, UNIPHIER_PIN_DRV_1BIT,
110 47, UNIPHIER_PIN_PULL_UP),
111 UNIPHIER_PINCTRL_PIN(48, "USB1VBUS", UNIPHIER_PIN_IECTRL_EXIST,
112 48, UNIPHIER_PIN_DRV_1BIT,
113 48, UNIPHIER_PIN_PULL_DOWN),
114 UNIPHIER_PINCTRL_PIN(49, "USB1OD", UNIPHIER_PIN_IECTRL_EXIST,
115 49, UNIPHIER_PIN_DRV_1BIT,
116 49, UNIPHIER_PIN_PULL_UP),
117 UNIPHIER_PINCTRL_PIN(50, "USB2VBUS", UNIPHIER_PIN_IECTRL_EXIST,
118 50, UNIPHIER_PIN_DRV_1BIT,
119 50, UNIPHIER_PIN_PULL_DOWN),
120 UNIPHIER_PINCTRL_PIN(51, "USB2OD", UNIPHIER_PIN_IECTRL_EXIST,
121 51, UNIPHIER_PIN_DRV_1BIT,
122 51, UNIPHIER_PIN_PULL_UP),
123 UNIPHIER_PINCTRL_PIN(54, "TXD0", UNIPHIER_PIN_IECTRL_EXIST,
124 54, UNIPHIER_PIN_DRV_1BIT,
125 54, UNIPHIER_PIN_PULL_UP),
126 UNIPHIER_PINCTRL_PIN(55, "RXD0", UNIPHIER_PIN_IECTRL_EXIST,
127 55, UNIPHIER_PIN_DRV_1BIT,
128 55, UNIPHIER_PIN_PULL_UP),
129 UNIPHIER_PINCTRL_PIN(56, "SPISYNC0", UNIPHIER_PIN_IECTRL_EXIST,
130 56, UNIPHIER_PIN_DRV_1BIT,
131 56, UNIPHIER_PIN_PULL_DOWN),
132 UNIPHIER_PINCTRL_PIN(57, "SPISCLK0", UNIPHIER_PIN_IECTRL_EXIST,
133 57, UNIPHIER_PIN_DRV_1BIT,
134 57, UNIPHIER_PIN_PULL_DOWN),
135 UNIPHIER_PINCTRL_PIN(58, "SPITXD0", UNIPHIER_PIN_IECTRL_EXIST,
136 58, UNIPHIER_PIN_DRV_1BIT,
137 58, UNIPHIER_PIN_PULL_DOWN),
138 UNIPHIER_PINCTRL_PIN(59, "SPIRXD0", UNIPHIER_PIN_IECTRL_EXIST,
139 59, UNIPHIER_PIN_DRV_1BIT,
140 59, UNIPHIER_PIN_PULL_DOWN),
141 UNIPHIER_PINCTRL_PIN(60, "AGCI", UNIPHIER_PIN_IECTRL_EXIST,
142 60, UNIPHIER_PIN_DRV_1BIT,
143 60, UNIPHIER_PIN_PULL_DOWN),
144 UNIPHIER_PINCTRL_PIN(61, "DMDSDA0", UNIPHIER_PIN_IECTRL_EXIST,
145 -1, UNIPHIER_PIN_DRV_FIXED4,
146 -1, UNIPHIER_PIN_PULL_NONE),
147 UNIPHIER_PINCTRL_PIN(62, "DMDSCL0", UNIPHIER_PIN_IECTRL_EXIST,
148 -1, UNIPHIER_PIN_DRV_FIXED4,
149 -1, UNIPHIER_PIN_PULL_NONE),
150 UNIPHIER_PINCTRL_PIN(63, "SDA0", UNIPHIER_PIN_IECTRL_EXIST,
151 -1, UNIPHIER_PIN_DRV_FIXED4,
152 -1, UNIPHIER_PIN_PULL_NONE),
153 UNIPHIER_PINCTRL_PIN(64, "SCL0", UNIPHIER_PIN_IECTRL_EXIST,
154 -1, UNIPHIER_PIN_DRV_FIXED4,
155 -1, UNIPHIER_PIN_PULL_NONE),
156 UNIPHIER_PINCTRL_PIN(65, "SDA1", UNIPHIER_PIN_IECTRL_EXIST,
157 -1, UNIPHIER_PIN_DRV_FIXED4,
158 -1, UNIPHIER_PIN_PULL_NONE),
159 UNIPHIER_PINCTRL_PIN(66, "SCL1", UNIPHIER_PIN_IECTRL_EXIST,
160 -1, UNIPHIER_PIN_DRV_FIXED4,
161 -1, UNIPHIER_PIN_PULL_NONE),
162 UNIPHIER_PINCTRL_PIN(67, "HIN", UNIPHIER_PIN_IECTRL_EXIST,
163 -1, UNIPHIER_PIN_DRV_FIXED5,
164 -1, UNIPHIER_PIN_PULL_NONE),
165 UNIPHIER_PINCTRL_PIN(68, "VIN", UNIPHIER_PIN_IECTRL_EXIST,
166 -1, UNIPHIER_PIN_DRV_FIXED5,
167 -1, UNIPHIER_PIN_PULL_NONE),
168 UNIPHIER_PINCTRL_PIN(69, "PCA00", UNIPHIER_PIN_IECTRL_EXIST,
169 69, UNIPHIER_PIN_DRV_1BIT,
170 69, UNIPHIER_PIN_PULL_DOWN),
171 UNIPHIER_PINCTRL_PIN(70, "PCA01", UNIPHIER_PIN_IECTRL_EXIST,
172 70, UNIPHIER_PIN_DRV_1BIT,
173 70, UNIPHIER_PIN_PULL_DOWN),
174 UNIPHIER_PINCTRL_PIN(71, "PCA02", UNIPHIER_PIN_IECTRL_EXIST,
175 71, UNIPHIER_PIN_DRV_1BIT,
176 71, UNIPHIER_PIN_PULL_DOWN),
177 UNIPHIER_PINCTRL_PIN(72, "PCA03", UNIPHIER_PIN_IECTRL_EXIST,
178 72, UNIPHIER_PIN_DRV_1BIT,
179 72, UNIPHIER_PIN_PULL_DOWN),
180 UNIPHIER_PINCTRL_PIN(73, "PCA04", UNIPHIER_PIN_IECTRL_EXIST,
181 73, UNIPHIER_PIN_DRV_1BIT,
182 73, UNIPHIER_PIN_PULL_DOWN),
183 UNIPHIER_PINCTRL_PIN(74, "PCA05", UNIPHIER_PIN_IECTRL_EXIST,
184 74, UNIPHIER_PIN_DRV_1BIT,
185 74, UNIPHIER_PIN_PULL_DOWN),
186 UNIPHIER_PINCTRL_PIN(75, "PCA06", UNIPHIER_PIN_IECTRL_EXIST,
187 75, UNIPHIER_PIN_DRV_1BIT,
188 75, UNIPHIER_PIN_PULL_DOWN),
189 UNIPHIER_PINCTRL_PIN(76, "PCA07", UNIPHIER_PIN_IECTRL_EXIST,
190 76, UNIPHIER_PIN_DRV_1BIT,
191 76, UNIPHIER_PIN_PULL_DOWN),
192 UNIPHIER_PINCTRL_PIN(77, "PCA08", UNIPHIER_PIN_IECTRL_EXIST,
193 77, UNIPHIER_PIN_DRV_1BIT,
194 77, UNIPHIER_PIN_PULL_DOWN),
195 UNIPHIER_PINCTRL_PIN(78, "PCA09", UNIPHIER_PIN_IECTRL_EXIST,
196 78, UNIPHIER_PIN_DRV_1BIT,
197 78, UNIPHIER_PIN_PULL_DOWN),
198 UNIPHIER_PINCTRL_PIN(79, "PCA10", UNIPHIER_PIN_IECTRL_EXIST,
199 79, UNIPHIER_PIN_DRV_1BIT,
200 79, UNIPHIER_PIN_PULL_DOWN),
201 UNIPHIER_PINCTRL_PIN(80, "PCA11", UNIPHIER_PIN_IECTRL_EXIST,
202 80, UNIPHIER_PIN_DRV_1BIT,
203 80, UNIPHIER_PIN_PULL_DOWN),
204 UNIPHIER_PINCTRL_PIN(81, "PCA12", UNIPHIER_PIN_IECTRL_EXIST,
205 81, UNIPHIER_PIN_DRV_1BIT,
206 81, UNIPHIER_PIN_PULL_DOWN),
207 UNIPHIER_PINCTRL_PIN(82, "PCA13", UNIPHIER_PIN_IECTRL_EXIST,
208 82, UNIPHIER_PIN_DRV_1BIT,
209 82, UNIPHIER_PIN_PULL_DOWN),
210 UNIPHIER_PINCTRL_PIN(83, "PCA14", UNIPHIER_PIN_IECTRL_EXIST,
211 83, UNIPHIER_PIN_DRV_1BIT,
212 83, UNIPHIER_PIN_PULL_DOWN),
213 UNIPHIER_PINCTRL_PIN(84, "PC0READY", UNIPHIER_PIN_IECTRL_EXIST,
214 84, UNIPHIER_PIN_DRV_1BIT,
215 84, UNIPHIER_PIN_PULL_DOWN),
216 UNIPHIER_PINCTRL_PIN(85, "PC0CD1", UNIPHIER_PIN_IECTRL_EXIST,
217 85, UNIPHIER_PIN_DRV_1BIT,
218 85, UNIPHIER_PIN_PULL_DOWN),
219 UNIPHIER_PINCTRL_PIN(86, "PC0CD2", UNIPHIER_PIN_IECTRL_EXIST,
220 86, UNIPHIER_PIN_DRV_1BIT,
221 86, UNIPHIER_PIN_PULL_DOWN),
222 UNIPHIER_PINCTRL_PIN(87, "PC0WAIT", UNIPHIER_PIN_IECTRL_EXIST,
223 87, UNIPHIER_PIN_DRV_1BIT,
224 87, UNIPHIER_PIN_PULL_DOWN),
225 UNIPHIER_PINCTRL_PIN(88, "PC0RESET", UNIPHIER_PIN_IECTRL_EXIST,
226 88, UNIPHIER_PIN_DRV_1BIT,
227 88, UNIPHIER_PIN_PULL_DOWN),
228 UNIPHIER_PINCTRL_PIN(89, "PC0CE1", UNIPHIER_PIN_IECTRL_EXIST,
229 89, UNIPHIER_PIN_DRV_1BIT,
230 89, UNIPHIER_PIN_PULL_DOWN),
231 UNIPHIER_PINCTRL_PIN(90, "PC0WE", UNIPHIER_PIN_IECTRL_EXIST,
232 90, UNIPHIER_PIN_DRV_1BIT,
233 90, UNIPHIER_PIN_PULL_DOWN),
234 UNIPHIER_PINCTRL_PIN(91, "PC0OE", UNIPHIER_PIN_IECTRL_EXIST,
235 91, UNIPHIER_PIN_DRV_1BIT,
236 91, UNIPHIER_PIN_PULL_DOWN),
237 UNIPHIER_PINCTRL_PIN(92, "PC0IOWR", UNIPHIER_PIN_IECTRL_EXIST,
238 92, UNIPHIER_PIN_DRV_1BIT,
239 92, UNIPHIER_PIN_PULL_DOWN),
240 UNIPHIER_PINCTRL_PIN(93, "PC0IORD", UNIPHIER_PIN_IECTRL_EXIST,
241 93, UNIPHIER_PIN_DRV_1BIT,
242 93, UNIPHIER_PIN_PULL_DOWN),
243 UNIPHIER_PINCTRL_PIN(94, "PCD00", UNIPHIER_PIN_IECTRL_EXIST,
244 94, UNIPHIER_PIN_DRV_1BIT,
245 94, UNIPHIER_PIN_PULL_DOWN),
246 UNIPHIER_PINCTRL_PIN(95, "PCD01", UNIPHIER_PIN_IECTRL_EXIST,
247 95, UNIPHIER_PIN_DRV_1BIT,
248 95, UNIPHIER_PIN_PULL_DOWN),
249 UNIPHIER_PINCTRL_PIN(96, "PCD02", UNIPHIER_PIN_IECTRL_EXIST,
250 96, UNIPHIER_PIN_DRV_1BIT,
251 96, UNIPHIER_PIN_PULL_DOWN),
252 UNIPHIER_PINCTRL_PIN(97, "PCD03", UNIPHIER_PIN_IECTRL_EXIST,
253 97, UNIPHIER_PIN_DRV_1BIT,
254 97, UNIPHIER_PIN_PULL_DOWN),
255 UNIPHIER_PINCTRL_PIN(98, "PCD04", UNIPHIER_PIN_IECTRL_EXIST,
256 98, UNIPHIER_PIN_DRV_1BIT,
257 98, UNIPHIER_PIN_PULL_DOWN),
258 UNIPHIER_PINCTRL_PIN(99, "PCD05", UNIPHIER_PIN_IECTRL_EXIST,
259 99, UNIPHIER_PIN_DRV_1BIT,
260 99, UNIPHIER_PIN_PULL_DOWN),
261 UNIPHIER_PINCTRL_PIN(100, "PCD06", UNIPHIER_PIN_IECTRL_EXIST,
262 100, UNIPHIER_PIN_DRV_1BIT,
263 100, UNIPHIER_PIN_PULL_DOWN),
264 UNIPHIER_PINCTRL_PIN(101, "PCD07", UNIPHIER_PIN_IECTRL_EXIST,
265 101, UNIPHIER_PIN_DRV_1BIT,
266 101, UNIPHIER_PIN_PULL_DOWN),
267 UNIPHIER_PINCTRL_PIN(102, "HS0BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
268 102, UNIPHIER_PIN_DRV_1BIT,
269 102, UNIPHIER_PIN_PULL_DOWN),
270 UNIPHIER_PINCTRL_PIN(103, "HS0SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
271 103, UNIPHIER_PIN_DRV_1BIT,
272 103, UNIPHIER_PIN_PULL_DOWN),
273 UNIPHIER_PINCTRL_PIN(104, "HS0VALIN", UNIPHIER_PIN_IECTRL_EXIST,
274 104, UNIPHIER_PIN_DRV_1BIT,
275 104, UNIPHIER_PIN_PULL_DOWN),
276 UNIPHIER_PINCTRL_PIN(105, "HS0DIN0", UNIPHIER_PIN_IECTRL_EXIST,
277 105, UNIPHIER_PIN_DRV_1BIT,
278 105, UNIPHIER_PIN_PULL_DOWN),
279 UNIPHIER_PINCTRL_PIN(106, "HS0DIN1", UNIPHIER_PIN_IECTRL_EXIST,
280 106, UNIPHIER_PIN_DRV_1BIT,
281 106, UNIPHIER_PIN_PULL_DOWN),
282 UNIPHIER_PINCTRL_PIN(107, "HS0DIN2", UNIPHIER_PIN_IECTRL_EXIST,
283 107, UNIPHIER_PIN_DRV_1BIT,
284 107, UNIPHIER_PIN_PULL_DOWN),
285 UNIPHIER_PINCTRL_PIN(108, "HS0DIN3", UNIPHIER_PIN_IECTRL_EXIST,
286 108, UNIPHIER_PIN_DRV_1BIT,
287 108, UNIPHIER_PIN_PULL_DOWN),
288 UNIPHIER_PINCTRL_PIN(109, "HS0DIN4", UNIPHIER_PIN_IECTRL_EXIST,
289 109, UNIPHIER_PIN_DRV_1BIT,
290 109, UNIPHIER_PIN_PULL_DOWN),
291 UNIPHIER_PINCTRL_PIN(110, "HS0DIN5", UNIPHIER_PIN_IECTRL_EXIST,
292 110, UNIPHIER_PIN_DRV_1BIT,
293 110, UNIPHIER_PIN_PULL_DOWN),
294 UNIPHIER_PINCTRL_PIN(111, "HS0DIN6", UNIPHIER_PIN_IECTRL_EXIST,
295 111, UNIPHIER_PIN_DRV_1BIT,
296 111, UNIPHIER_PIN_PULL_DOWN),
297 UNIPHIER_PINCTRL_PIN(112, "HS0DIN7", UNIPHIER_PIN_IECTRL_EXIST,
298 112, UNIPHIER_PIN_DRV_1BIT,
299 112, UNIPHIER_PIN_PULL_DOWN),
300 UNIPHIER_PINCTRL_PIN(113, "HS0BCLKOUT", UNIPHIER_PIN_IECTRL_EXIST,
301 113, UNIPHIER_PIN_DRV_1BIT,
302 113, UNIPHIER_PIN_PULL_DOWN),
303 UNIPHIER_PINCTRL_PIN(114, "HS0SYNCOUT", UNIPHIER_PIN_IECTRL_EXIST,
304 114, UNIPHIER_PIN_DRV_1BIT,
305 114, UNIPHIER_PIN_PULL_DOWN),
306 UNIPHIER_PINCTRL_PIN(115, "HS0VALOUT", UNIPHIER_PIN_IECTRL_EXIST,
307 115, UNIPHIER_PIN_DRV_1BIT,
308 115, UNIPHIER_PIN_PULL_DOWN),
309 UNIPHIER_PINCTRL_PIN(116, "HS0DOUT0", UNIPHIER_PIN_IECTRL_EXIST,
310 116, UNIPHIER_PIN_DRV_1BIT,
311 116, UNIPHIER_PIN_PULL_DOWN),
312 UNIPHIER_PINCTRL_PIN(117, "HS0DOUT1", UNIPHIER_PIN_IECTRL_EXIST,
313 117, UNIPHIER_PIN_DRV_1BIT,
314 117, UNIPHIER_PIN_PULL_DOWN),
315 UNIPHIER_PINCTRL_PIN(118, "HS0DOUT2", UNIPHIER_PIN_IECTRL_EXIST,
316 118, UNIPHIER_PIN_DRV_1BIT,
317 118, UNIPHIER_PIN_PULL_DOWN),
318 UNIPHIER_PINCTRL_PIN(119, "HS0DOUT3", UNIPHIER_PIN_IECTRL_EXIST,
319 119, UNIPHIER_PIN_DRV_1BIT,
320 119, UNIPHIER_PIN_PULL_DOWN),
321 UNIPHIER_PINCTRL_PIN(120, "HS0DOUT4", UNIPHIER_PIN_IECTRL_EXIST,
322 120, UNIPHIER_PIN_DRV_1BIT,
323 120, UNIPHIER_PIN_PULL_DOWN),
324 UNIPHIER_PINCTRL_PIN(121, "HS0DOUT5", UNIPHIER_PIN_IECTRL_EXIST,
325 121, UNIPHIER_PIN_DRV_1BIT,
326 121, UNIPHIER_PIN_PULL_DOWN),
327 UNIPHIER_PINCTRL_PIN(122, "HS0DOUT6", UNIPHIER_PIN_IECTRL_EXIST,
328 122, UNIPHIER_PIN_DRV_1BIT,
329 122, UNIPHIER_PIN_PULL_DOWN),
330 UNIPHIER_PINCTRL_PIN(123, "HS0DOUT7", UNIPHIER_PIN_IECTRL_EXIST,
331 123, UNIPHIER_PIN_DRV_1BIT,
332 123, UNIPHIER_PIN_PULL_DOWN),
333 UNIPHIER_PINCTRL_PIN(124, "HS1BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
334 124, UNIPHIER_PIN_DRV_1BIT,
335 124, UNIPHIER_PIN_PULL_DOWN),
336 UNIPHIER_PINCTRL_PIN(125, "HS1SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
337 125, UNIPHIER_PIN_DRV_1BIT,
338 125, UNIPHIER_PIN_PULL_DOWN),
339 UNIPHIER_PINCTRL_PIN(126, "HS1VALIN", UNIPHIER_PIN_IECTRL_EXIST,
340 126, UNIPHIER_PIN_DRV_1BIT,
341 126, UNIPHIER_PIN_PULL_DOWN),
342 UNIPHIER_PINCTRL_PIN(127, "HS1DIN0", UNIPHIER_PIN_IECTRL_EXIST,
343 127, UNIPHIER_PIN_DRV_1BIT,
344 127, UNIPHIER_PIN_PULL_DOWN),
345 UNIPHIER_PINCTRL_PIN(128, "HS1DIN1", UNIPHIER_PIN_IECTRL_EXIST,
346 128, UNIPHIER_PIN_DRV_1BIT,
347 128, UNIPHIER_PIN_PULL_DOWN),
348 UNIPHIER_PINCTRL_PIN(129, "HS1DIN2", UNIPHIER_PIN_IECTRL_EXIST,
349 129, UNIPHIER_PIN_DRV_1BIT,
350 129, UNIPHIER_PIN_PULL_DOWN),
351 UNIPHIER_PINCTRL_PIN(130, "HS1DIN3", UNIPHIER_PIN_IECTRL_EXIST,
352 130, UNIPHIER_PIN_DRV_1BIT,
353 130, UNIPHIER_PIN_PULL_DOWN),
354 UNIPHIER_PINCTRL_PIN(131, "HS1DIN4", UNIPHIER_PIN_IECTRL_EXIST,
355 131, UNIPHIER_PIN_DRV_1BIT,
356 131, UNIPHIER_PIN_PULL_DOWN),
357 UNIPHIER_PINCTRL_PIN(132, "HS1DIN5", UNIPHIER_PIN_IECTRL_EXIST,
358 132, UNIPHIER_PIN_DRV_1BIT,
359 132, UNIPHIER_PIN_PULL_DOWN),
360 UNIPHIER_PINCTRL_PIN(133, "HS1DIN6", UNIPHIER_PIN_IECTRL_EXIST,
361 133, UNIPHIER_PIN_DRV_1BIT,
362 133, UNIPHIER_PIN_PULL_DOWN),
363 UNIPHIER_PINCTRL_PIN(134, "HS1DIN7", UNIPHIER_PIN_IECTRL_EXIST,
364 134, UNIPHIER_PIN_DRV_1BIT,
365 134, UNIPHIER_PIN_PULL_DOWN),
366 UNIPHIER_PINCTRL_PIN(135, "AO1IEC", UNIPHIER_PIN_IECTRL_EXIST,
367 135, UNIPHIER_PIN_DRV_1BIT,
368 135, UNIPHIER_PIN_PULL_DOWN),
369 UNIPHIER_PINCTRL_PIN(136, "AO1ARC", UNIPHIER_PIN_IECTRL_EXIST,
370 136, UNIPHIER_PIN_DRV_1BIT,
371 136, UNIPHIER_PIN_PULL_DOWN),
372 UNIPHIER_PINCTRL_PIN(137, "AO1DACCK", UNIPHIER_PIN_IECTRL_EXIST,
373 137, UNIPHIER_PIN_DRV_1BIT,
374 137, UNIPHIER_PIN_PULL_DOWN),
375 UNIPHIER_PINCTRL_PIN(138, "AO1BCK", UNIPHIER_PIN_IECTRL_EXIST,
376 138, UNIPHIER_PIN_DRV_1BIT,
377 138, UNIPHIER_PIN_PULL_DOWN),
378 UNIPHIER_PINCTRL_PIN(139, "AO1LRCK", UNIPHIER_PIN_IECTRL_EXIST,
379 139, UNIPHIER_PIN_DRV_1BIT,
380 139, UNIPHIER_PIN_PULL_DOWN),
381 UNIPHIER_PINCTRL_PIN(140, "AO1D0", UNIPHIER_PIN_IECTRL_EXIST,
382 140, UNIPHIER_PIN_DRV_1BIT,
383 140, UNIPHIER_PIN_PULL_DOWN),
384 UNIPHIER_PINCTRL_PIN(141, "AO1D1", UNIPHIER_PIN_IECTRL_EXIST,
385 141, UNIPHIER_PIN_DRV_1BIT,
386 141, UNIPHIER_PIN_PULL_DOWN),
387 UNIPHIER_PINCTRL_PIN(142, "AO1D2", UNIPHIER_PIN_IECTRL_EXIST,
388 142, UNIPHIER_PIN_DRV_1BIT,
389 142, UNIPHIER_PIN_PULL_DOWN),
390 UNIPHIER_PINCTRL_PIN(143, "XIRQ9", UNIPHIER_PIN_IECTRL_EXIST,
391 143, UNIPHIER_PIN_DRV_1BIT,
392 143, UNIPHIER_PIN_PULL_DOWN),
393 UNIPHIER_PINCTRL_PIN(144, "XIRQ10", UNIPHIER_PIN_IECTRL_EXIST,
394 144, UNIPHIER_PIN_DRV_1BIT,
395 144, UNIPHIER_PIN_PULL_DOWN),
396 UNIPHIER_PINCTRL_PIN(145, "XIRQ11", UNIPHIER_PIN_IECTRL_EXIST,
397 145, UNIPHIER_PIN_DRV_1BIT,
398 145, UNIPHIER_PIN_PULL_DOWN),
399 UNIPHIER_PINCTRL_PIN(146, "XIRQ13", UNIPHIER_PIN_IECTRL_EXIST,
400 146, UNIPHIER_PIN_DRV_1BIT,
401 146, UNIPHIER_PIN_PULL_DOWN),
402 UNIPHIER_PINCTRL_PIN(147, "PWMA", UNIPHIER_PIN_IECTRL_EXIST,
403 147, UNIPHIER_PIN_DRV_1BIT,
404 147, UNIPHIER_PIN_PULL_DOWN),
405 UNIPHIER_PINCTRL_PIN(148, "LR_GOUT", UNIPHIER_PIN_IECTRL_EXIST,
406 148, UNIPHIER_PIN_DRV_1BIT,
407 148, UNIPHIER_PIN_PULL_DOWN),
408 UNIPHIER_PINCTRL_PIN(149, "XIRQ0", UNIPHIER_PIN_IECTRL_EXIST,
409 149, UNIPHIER_PIN_DRV_1BIT,
410 149, UNIPHIER_PIN_PULL_DOWN),
411 UNIPHIER_PINCTRL_PIN(150, "XIRQ1", UNIPHIER_PIN_IECTRL_EXIST,
412 150, UNIPHIER_PIN_DRV_1BIT,
413 150, UNIPHIER_PIN_PULL_DOWN),
414 UNIPHIER_PINCTRL_PIN(151, "XIRQ2", UNIPHIER_PIN_IECTRL_EXIST,
415 151, UNIPHIER_PIN_DRV_1BIT,
416 151, UNIPHIER_PIN_PULL_DOWN),
417 UNIPHIER_PINCTRL_PIN(152, "XIRQ3", UNIPHIER_PIN_IECTRL_EXIST,
418 152, UNIPHIER_PIN_DRV_1BIT,
419 152, UNIPHIER_PIN_PULL_DOWN),
420 UNIPHIER_PINCTRL_PIN(153, "XIRQ4", UNIPHIER_PIN_IECTRL_EXIST,
421 153, UNIPHIER_PIN_DRV_1BIT,
422 153, UNIPHIER_PIN_PULL_DOWN),
423 UNIPHIER_PINCTRL_PIN(154, "XIRQ5", UNIPHIER_PIN_IECTRL_EXIST,
424 154, UNIPHIER_PIN_DRV_1BIT,
425 154, UNIPHIER_PIN_PULL_DOWN),
426 UNIPHIER_PINCTRL_PIN(155, "XIRQ6", UNIPHIER_PIN_IECTRL_EXIST,
427 155, UNIPHIER_PIN_DRV_1BIT,
428 155, UNIPHIER_PIN_PULL_DOWN),
429 UNIPHIER_PINCTRL_PIN(156, "XIRQ7", UNIPHIER_PIN_IECTRL_EXIST,
430 156, UNIPHIER_PIN_DRV_1BIT,
431 156, UNIPHIER_PIN_PULL_DOWN),
432 UNIPHIER_PINCTRL_PIN(157, "XIRQ8", UNIPHIER_PIN_IECTRL_EXIST,
433 157, UNIPHIER_PIN_DRV_1BIT,
434 157, UNIPHIER_PIN_PULL_DOWN),
435 UNIPHIER_PINCTRL_PIN(158, "AGCBS", UNIPHIER_PIN_IECTRL_EXIST,
436 158, UNIPHIER_PIN_DRV_1BIT,
437 158, UNIPHIER_PIN_PULL_DOWN),
438 UNIPHIER_PINCTRL_PIN(159, "XIRQ21", UNIPHIER_PIN_IECTRL_EXIST,
439 159, UNIPHIER_PIN_DRV_1BIT,
440 159, UNIPHIER_PIN_PULL_DOWN),
441 UNIPHIER_PINCTRL_PIN(160, "XIRQ22", UNIPHIER_PIN_IECTRL_EXIST,
442 160, UNIPHIER_PIN_DRV_1BIT,
443 160, UNIPHIER_PIN_PULL_DOWN),
444 UNIPHIER_PINCTRL_PIN(161, "XIRQ23", UNIPHIER_PIN_IECTRL_EXIST,
445 161, UNIPHIER_PIN_DRV_1BIT,
446 161, UNIPHIER_PIN_PULL_DOWN),
447 UNIPHIER_PINCTRL_PIN(162, "CH2CLK", UNIPHIER_PIN_IECTRL_EXIST,
448 162, UNIPHIER_PIN_DRV_1BIT,
449 162, UNIPHIER_PIN_PULL_DOWN),
450 UNIPHIER_PINCTRL_PIN(163, "CH2PSYNC", UNIPHIER_PIN_IECTRL_EXIST,
451 163, UNIPHIER_PIN_DRV_1BIT,
452 163, UNIPHIER_PIN_PULL_DOWN),
453 UNIPHIER_PINCTRL_PIN(164, "CH2VAL", UNIPHIER_PIN_IECTRL_EXIST,
454 164, UNIPHIER_PIN_DRV_1BIT,
455 164, UNIPHIER_PIN_PULL_DOWN),
456 UNIPHIER_PINCTRL_PIN(165, "CH2DATA", UNIPHIER_PIN_IECTRL_EXIST,
457 165, UNIPHIER_PIN_DRV_1BIT,
458 165, UNIPHIER_PIN_PULL_DOWN),
459 UNIPHIER_PINCTRL_PIN(166, "CK25O", UNIPHIER_PIN_IECTRL_EXIST,
460 166, UNIPHIER_PIN_DRV_1BIT,
461 166, UNIPHIER_PIN_PULL_DOWN),
462};
463
464static const unsigned aout1_pins[] = {137, 138, 139, 140, 141, 142};
465static const int aout1_muxvals[] = {0, 0, 0, 0, 0, 0};
466static const unsigned aoutiec1_pins[] = {135, 136};
467static const int aoutiec1_muxvals[] = {0, 0};
468static const unsigned int emmc_pins[] = {19, 20, 21, 22, 23, 24, 25};
469static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0};
470static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29};
471static const int emmc_dat8_muxvals[] = {0, 0, 0, 0};
472static const unsigned ether_rmii_pins[] = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
473 16, 17};
474static const int ether_rmii_muxvals[] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4};
475static const unsigned hscin0_ci_pins[] = {102, 103, 104, 105, 106, 107, 108,
476 109, 110, 111, 112};
477static const int hscin0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
478static const unsigned hscin0_p_pins[] = {102, 103, 104, 105, 106, 107, 108, 109,
479 110, 111, 112};
480static const int hscin0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
481static const unsigned hscin0_s_pins[] = {116, 117, 118, 119};
482static const int hscin0_s_muxvals[] = {3, 3, 3, 3};
483static const unsigned hscin1_p_pins[] = {124, 125, 126, 127, 128, 129, 130, 131,
484 132, 133, 134};
485static const int hscin1_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
486static const unsigned hscin1_s_pins[] = {120, 121, 122, 123};
487static const int hscin1_s_muxvals[] = {3, 3, 3, 3};
488static const unsigned hscin2_s_pins[] = {124, 125, 126, 127};
489static const int hscin2_s_muxvals[] = {3, 3, 3, 3};
490static const unsigned hscout0_ci_pins[] = {113, 114, 115, 116, 117, 118, 119,
491 120, 121, 122, 123};
492static const int hscout0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
493static const unsigned hscout0_p_pins[] = {113, 114, 115, 116, 117, 118, 119,
494 120, 121, 122, 123};
495static const int hscout0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
496static const unsigned hscout0_s_pins[] = {116, 117, 118, 119};
497static const int hscout0_s_muxvals[] = {4, 4, 4, 4};
498static const unsigned hscout1_s_pins[] = {120, 121, 122, 123};
499static const int hscout1_s_muxvals[] = {4, 4, 4, 4};
500static const unsigned i2c0_pins[] = {63, 64};
501static const int i2c0_muxvals[] = {0, 0};
502static const unsigned i2c1_pins[] = {65, 66};
503static const int i2c1_muxvals[] = {0, 0};
504static const unsigned i2c3_pins[] = {67, 68};
505static const int i2c3_muxvals[] = {1, 1};
506static const unsigned i2c4_pins[] = {61, 62};
507static const int i2c4_muxvals[] = {1, 1};
508static const unsigned nand_pins[] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
509 15, 16, 17};
510static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
511static const unsigned spi0_pins[] = {56, 57, 58, 59};
512static const int spi0_muxvals[] = {0, 0, 0, 0};
513static const unsigned spi1_pins[] = {169, 170, 171, 172};
514static const int spi1_muxvals[] = {1, 1, 1, 1};
515static const unsigned system_bus_pins[] = {1, 2, 6, 7, 8, 9, 10, 11, 12, 13,
516 14, 15, 16, 17};
517static const int system_bus_muxvals[] = {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
518 2};
519static const unsigned system_bus_cs1_pins[] = {0};
520static const int system_bus_cs1_muxvals[] = {0};
521static const unsigned uart0_pins[] = {54, 55};
522static const int uart0_muxvals[] = {0, 0};
523static const unsigned uart1_pins[] = {58, 59};
524static const int uart1_muxvals[] = {1, 1};
525static const unsigned uart2_pins[] = {90, 91};
526static const int uart2_muxvals[] = {1, 1};
527static const unsigned uart3_pins[] = {94, 95};
528static const int uart3_muxvals[] = {1, 1};
529static const unsigned uart3_ctsrts_pins[] = {96, 97, 98, 99, 100, 101};
530static const int uart3_ctsrts_muxvals[] = {1, 1, 1, 1, 1, 1};
531static const unsigned usb0_pins[] = {46, 47};
532static const int usb0_muxvals[] = {0, 0};
533static const unsigned usb1_pins[] = {48, 49};
534static const int usb1_muxvals[] = {0, 0};
535static const unsigned usb2_pins[] = {50, 51};
536static const int usb2_muxvals[] = {0, 0};
537static const unsigned int gpio_range0_pins[] = {
538 159, 160, 161, 162, 163, 164, 165, 166,
539 0, 1, 2, 3, 4, 5, 6, 7,
540 8, 9, 10, 11, 12, 13, 14, 15,
541 16, 17, 18,
542};
543static const unsigned int gpio_range1_pins[] = {
544 46, 47, 48, 49, 50,
545 51,
546};
547static const unsigned int gpio_range2_pins[] = {
548 54, 55, 56, 57, 58,
549 59, 60, 69, 70, 71, 72, 73, 74,
550 75, 76, 77, 78, 79, 80, 81, 82,
551 83, 84, 85, 86, 87, 88, 89, 90,
552 91, 92, 93, 94, 95, 96, 97, 98,
553};
554static const unsigned int gpio_range3_pins[] = {
555 99, 100, 101, 102, 103, 104, 105, 106,
556 107, 108, 109, 110, 111, 112, 113, 114,
557 115, 116, 117, 118, 119, 120, 121, 122,
558 149, 150, 151, 152, 153, 154, 155, 156,
559 157, 143, 144, 145, 85, 146, 158, 84,
560 141, 142, 148, 50, 51, 159, 160, 161,
561 61, 62, 63, 64, 65, 66, 67, 68,
562};
563static const unsigned int gpio_range4_pins[] = {
564 123, 124, 125, 126, 127, 128, 129, 130,
565 131, 132, 133, 134, 135, 136, 137, 138,
566 139, 140, 141, 142,
567};
568static const unsigned int gpio_range5_pins[] = {
569 147, 148, 149, 150, 151, 152, 153, 154,
570 155, 156, 157, 143, 144, 145, 146, 158,
571};
572
573static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = {
574 UNIPHIER_PINCTRL_GROUP(aout1),
575 UNIPHIER_PINCTRL_GROUP(aoutiec1),
576 UNIPHIER_PINCTRL_GROUP(emmc),
577 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
578 UNIPHIER_PINCTRL_GROUP(ether_rmii),
579 UNIPHIER_PINCTRL_GROUP(hscin0_ci),
580 UNIPHIER_PINCTRL_GROUP(hscin0_p),
581 UNIPHIER_PINCTRL_GROUP(hscin0_s),
582 UNIPHIER_PINCTRL_GROUP(hscin1_p),
583 UNIPHIER_PINCTRL_GROUP(hscin1_s),
584 UNIPHIER_PINCTRL_GROUP(hscin2_s),
585 UNIPHIER_PINCTRL_GROUP(hscout0_ci),
586 UNIPHIER_PINCTRL_GROUP(hscout0_p),
587 UNIPHIER_PINCTRL_GROUP(hscout0_s),
588 UNIPHIER_PINCTRL_GROUP(hscout1_s),
589 UNIPHIER_PINCTRL_GROUP(i2c0),
590 UNIPHIER_PINCTRL_GROUP(i2c1),
591 UNIPHIER_PINCTRL_GROUP(i2c3),
592 UNIPHIER_PINCTRL_GROUP(i2c4),
593 UNIPHIER_PINCTRL_GROUP(nand),
594 UNIPHIER_PINCTRL_GROUP(spi0),
595 UNIPHIER_PINCTRL_GROUP(spi1),
596 UNIPHIER_PINCTRL_GROUP(system_bus),
597 UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
598 UNIPHIER_PINCTRL_GROUP(uart0),
599 UNIPHIER_PINCTRL_GROUP(uart1),
600 UNIPHIER_PINCTRL_GROUP(uart2),
601 UNIPHIER_PINCTRL_GROUP(uart3),
602 UNIPHIER_PINCTRL_GROUP(uart3_ctsrts),
603 UNIPHIER_PINCTRL_GROUP(usb0),
604 UNIPHIER_PINCTRL_GROUP(usb1),
605 UNIPHIER_PINCTRL_GROUP(usb2),
606 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range0),
607 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range1),
608 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2),
609 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range3),
610 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range4),
611 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range5),
612};
613
614static const char * const aout1_groups[] = {"aout1"};
615static const char * const aoutiec1_groups[] = {"aoutiec1"};
616static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
617static const char * const ether_rmii_groups[] = {"ether_rmii"};
618static const char * const hscin0_groups[] = {"hscin0_ci",
619 "hscin0_p",
620 "hscin0_s"};
621static const char * const hscin1_groups[] = {"hscin1_p", "hscin1_s"};
622static const char * const hscin2_groups[] = {"hscin2_s"};
623static const char * const hscout0_groups[] = {"hscout0_ci",
624 "hscout0_p",
625 "hscout0_s"};
626static const char * const hscout1_groups[] = {"hscout1_s"};
627static const char * const i2c0_groups[] = {"i2c0"};
628static const char * const i2c1_groups[] = {"i2c1"};
629static const char * const i2c3_groups[] = {"i2c3"};
630static const char * const i2c4_groups[] = {"i2c4"};
631static const char * const nand_groups[] = {"nand"};
632static const char * const spi0_groups[] = {"spi0"};
633static const char * const spi1_groups[] = {"spi1"};
634static const char * const system_bus_groups[] = {"system_bus",
635 "system_bus_cs1"};
636static const char * const uart0_groups[] = {"uart0"};
637static const char * const uart1_groups[] = {"uart1"};
638static const char * const uart2_groups[] = {"uart2"};
639static const char * const uart3_groups[] = {"uart3", "uart3_ctsrts"};
640static const char * const usb0_groups[] = {"usb0"};
641static const char * const usb1_groups[] = {"usb1"};
642static const char * const usb2_groups[] = {"usb2"};
643
644static const struct uniphier_pinmux_function uniphier_ld11_functions[] = {
645 UNIPHIER_PINMUX_FUNCTION(aout1),
646 UNIPHIER_PINMUX_FUNCTION(aoutiec1),
647 UNIPHIER_PINMUX_FUNCTION(emmc),
648 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
649 UNIPHIER_PINMUX_FUNCTION(hscin0),
650 UNIPHIER_PINMUX_FUNCTION(hscin1),
651 UNIPHIER_PINMUX_FUNCTION(hscin2),
652 UNIPHIER_PINMUX_FUNCTION(hscout0),
653 UNIPHIER_PINMUX_FUNCTION(hscout1),
654 UNIPHIER_PINMUX_FUNCTION(i2c0),
655 UNIPHIER_PINMUX_FUNCTION(i2c1),
656 UNIPHIER_PINMUX_FUNCTION(i2c3),
657 UNIPHIER_PINMUX_FUNCTION(i2c4),
658 UNIPHIER_PINMUX_FUNCTION(nand),
659 UNIPHIER_PINMUX_FUNCTION(spi0),
660 UNIPHIER_PINMUX_FUNCTION(spi1),
661 UNIPHIER_PINMUX_FUNCTION(system_bus),
662 UNIPHIER_PINMUX_FUNCTION(uart0),
663 UNIPHIER_PINMUX_FUNCTION(uart1),
664 UNIPHIER_PINMUX_FUNCTION(uart2),
665 UNIPHIER_PINMUX_FUNCTION(uart3),
666 UNIPHIER_PINMUX_FUNCTION(usb0),
667 UNIPHIER_PINMUX_FUNCTION(usb1),
668 UNIPHIER_PINMUX_FUNCTION(usb2),
669};
670
671static int uniphier_ld11_get_gpio_muxval(unsigned int pin,
672 unsigned int gpio_offset)
673{
674 if (gpio_offset == 132 || gpio_offset == 135)
675 return 13;
676
677 if (gpio_offset >= 120 && gpio_offset <= 143)
678 return 14;
679
680 return 15;
681}
682
683static const struct uniphier_pinctrl_socdata uniphier_ld11_pindata = {
684 .pins = uniphier_ld11_pins,
685 .npins = ARRAY_SIZE(uniphier_ld11_pins),
686 .groups = uniphier_ld11_groups,
687 .groups_count = ARRAY_SIZE(uniphier_ld11_groups),
688 .functions = uniphier_ld11_functions,
689 .functions_count = ARRAY_SIZE(uniphier_ld11_functions),
690 .get_gpio_muxval = uniphier_ld11_get_gpio_muxval,
691 .caps = UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL,
692};
693
694static int uniphier_ld11_pinctrl_probe(struct platform_device *pdev)
695{
696 return uniphier_pinctrl_probe(pdev, &uniphier_ld11_pindata);
697}
698
699static const struct of_device_id uniphier_ld11_pinctrl_match[] = {
700 { .compatible = "socionext,uniphier-ld11-pinctrl" },
701 { }
702};
703
704static struct platform_driver uniphier_ld11_pinctrl_driver = {
705 .probe = uniphier_ld11_pinctrl_probe,
706 .driver = {
707 .name = "uniphier-ld11-pinctrl",
708 .of_match_table = uniphier_ld11_pinctrl_match,
709 .pm = &uniphier_pinctrl_pm_ops,
710 },
711};
712builtin_platform_driver(uniphier_ld11_pinctrl_driver);
713