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