1 | // SPDX-License-Identifier: GPL-2.0+ |
2 | // |
3 | // Copyright (C) 2016-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 | |
14 | static 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 | |
464 | static const unsigned ain1_pins[] = {151, 152, 153, 154}; |
465 | static const int ain1_muxvals[] = {4, 4, 4, 4}; |
466 | static const unsigned ain1_dat2_pins[] = {155}; |
467 | static const int ain1_dat2_muxvals[] = {4}; |
468 | static const unsigned ain1_dat4_pins[] = {156, 157}; |
469 | static const int ain1_dat4_muxvals[] = {4, 4}; |
470 | static const unsigned aout1_pins[] = {137, 138, 139, 140}; |
471 | static const int aout1_muxvals[] = {0, 0, 0, 0}; |
472 | static const unsigned aout1_dat2_pins[] = {141}; |
473 | static const int aout1_dat2_muxvals[] = {0}; |
474 | static const unsigned aout1_dat4_pins[] = {142, 143}; |
475 | static const int aout1_dat4_muxvals[] = {0, 3}; |
476 | static const unsigned ainiec1_pins[] = {150}; |
477 | static const int ainiec1_muxvals[] = {4}; |
478 | static const unsigned ainiec1b_pins[] = {141}; |
479 | static const int ainiec1b_muxvals[] = {4}; |
480 | static const unsigned aoutiec1_pins[] = {135, 136}; |
481 | static const int aoutiec1_muxvals[] = {0, 0}; |
482 | static const unsigned aoutiec2_pins[] = {135, 136}; |
483 | static const int aoutiec2_muxvals[] = {1, 1}; |
484 | static const unsigned int emmc_pins[] = {19, 20, 21, 22, 23, 24, 25}; |
485 | static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0}; |
486 | static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29}; |
487 | static const int emmc_dat8_muxvals[] = {0, 0, 0, 0}; |
488 | static const unsigned ether_rmii_pins[] = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
489 | 16, 17}; |
490 | static const int ether_rmii_muxvals[] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}; |
491 | static const unsigned hscin0_ci_pins[] = {102, 103, 104, 105, 106, 107, 108, |
492 | 109, 110, 111, 112}; |
493 | static const int hscin0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; |
494 | static const unsigned hscin0_p_pins[] = {102, 103, 104, 105, 106, 107, 108, 109, |
495 | 110, 111, 112}; |
496 | static const int hscin0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
497 | static const unsigned hscin0_s_pins[] = {116, 117, 118, 119}; |
498 | static const int hscin0_s_muxvals[] = {3, 3, 3, 3}; |
499 | static const unsigned hscin1_p_pins[] = {124, 125, 126, 127, 128, 129, 130, 131, |
500 | 132, 133, 134}; |
501 | static const int hscin1_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
502 | static const unsigned hscin1_s_pins[] = {120, 121, 122, 123}; |
503 | static const int hscin1_s_muxvals[] = {3, 3, 3, 3}; |
504 | static const unsigned hscin2_s_pins[] = {124, 125, 126, 127}; |
505 | static const int hscin2_s_muxvals[] = {3, 3, 3, 3}; |
506 | static const unsigned hscout0_ci_pins[] = {113, 114, 115, 116, 117, 118, 119, |
507 | 120, 121, 122, 123}; |
508 | static const int hscout0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; |
509 | static const unsigned hscout0_p_pins[] = {113, 114, 115, 116, 117, 118, 119, |
510 | 120, 121, 122, 123}; |
511 | static const int hscout0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
512 | static const unsigned hscout0_s_pins[] = {116, 117, 118, 119}; |
513 | static const int hscout0_s_muxvals[] = {4, 4, 4, 4}; |
514 | static const unsigned hscout1_s_pins[] = {120, 121, 122, 123}; |
515 | static const int hscout1_s_muxvals[] = {4, 4, 4, 4}; |
516 | static const unsigned i2c0_pins[] = {63, 64}; |
517 | static const int i2c0_muxvals[] = {0, 0}; |
518 | static const unsigned i2c1_pins[] = {65, 66}; |
519 | static const int i2c1_muxvals[] = {0, 0}; |
520 | static const unsigned i2c3_pins[] = {67, 68}; |
521 | static const int i2c3_muxvals[] = {1, 1}; |
522 | static const unsigned i2c4_pins[] = {61, 62}; |
523 | static const int i2c4_muxvals[] = {1, 1}; |
524 | static const unsigned nand_pins[] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
525 | 15, 16, 17}; |
526 | static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
527 | static const unsigned spi0_pins[] = {56, 57, 58, 59}; |
528 | static const int spi0_muxvals[] = {0, 0, 0, 0}; |
529 | static const unsigned spi1_pins[] = {169, 170, 171, 172}; |
530 | static const int spi1_muxvals[] = {1, 1, 1, 1}; |
531 | static const unsigned system_bus_pins[] = {1, 2, 6, 7, 8, 9, 10, 11, 12, 13, |
532 | 14, 15, 16, 17}; |
533 | static const int system_bus_muxvals[] = {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
534 | 2}; |
535 | static const unsigned system_bus_cs1_pins[] = {0}; |
536 | static const int system_bus_cs1_muxvals[] = {0}; |
537 | static const unsigned uart0_pins[] = {54, 55}; |
538 | static const int uart0_muxvals[] = {0, 0}; |
539 | static const unsigned uart1_pins[] = {58, 59}; |
540 | static const int uart1_muxvals[] = {1, 1}; |
541 | static const unsigned uart2_pins[] = {90, 91}; |
542 | static const int uart2_muxvals[] = {1, 1}; |
543 | static const unsigned uart3_pins[] = {94, 95}; |
544 | static const int uart3_muxvals[] = {1, 1}; |
545 | static const unsigned uart3_ctsrts_pins[] = {96, 98}; |
546 | static const int uart3_ctsrts_muxvals[] = {1, 1}; |
547 | static const unsigned uart3_modem_pins[] = {97, 99, 100, 101}; |
548 | static const int uart3_modem_muxvals[] = {1, 1, 1, 1}; |
549 | static const unsigned usb0_pins[] = {46, 47}; |
550 | static const int usb0_muxvals[] = {0, 0}; |
551 | static const unsigned usb1_pins[] = {48, 49}; |
552 | static const int usb1_muxvals[] = {0, 0}; |
553 | static const unsigned usb2_pins[] = {50, 51}; |
554 | static const int usb2_muxvals[] = {0, 0}; |
555 | static const unsigned int gpio_range0_pins[] = { |
556 | 159, 160, 161, 162, 163, 164, 165, 166, /* PORT0x */ |
557 | 0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */ |
558 | 8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */ |
559 | 16, 17, 18, /* PORT30-32 */ |
560 | }; |
561 | static const unsigned int gpio_range1_pins[] = { |
562 | 46, 47, 48, 49, 50, /* PORT53-57 */ |
563 | 51, /* PORT60 */ |
564 | }; |
565 | static const unsigned int gpio_range2_pins[] = { |
566 | 54, 55, 56, 57, 58, /* PORT63-67 */ |
567 | 59, 60, 69, 70, 71, 72, 73, 74, /* PORT7x */ |
568 | 75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */ |
569 | 83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */ |
570 | 91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */ |
571 | }; |
572 | static const unsigned int gpio_range3_pins[] = { |
573 | 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */ |
574 | 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */ |
575 | 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */ |
576 | 149, 150, 151, 152, 153, 154, 155, 156, /* XIRQ0-7 */ |
577 | 157, 143, 144, 145, 85, 146, 158, 84, /* XIRQ8-15 */ |
578 | 141, 142, 148, 50, 51, 159, 160, 161, /* XIRQ16-23 */ |
579 | 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */ |
580 | }; |
581 | static const unsigned int gpio_range4_pins[] = { |
582 | 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */ |
583 | 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */ |
584 | 139, 140, 141, 142, /* PORT220-223 */ |
585 | }; |
586 | static const unsigned int gpio_range5_pins[] = { |
587 | 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */ |
588 | 155, 156, 157, 143, 144, 145, 146, 158, /* PORT24x */ |
589 | }; |
590 | |
591 | static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = { |
592 | UNIPHIER_PINCTRL_GROUP(ain1), |
593 | UNIPHIER_PINCTRL_GROUP(ain1_dat2), |
594 | UNIPHIER_PINCTRL_GROUP(ain1_dat4), |
595 | UNIPHIER_PINCTRL_GROUP(aout1), |
596 | UNIPHIER_PINCTRL_GROUP(aout1_dat2), |
597 | UNIPHIER_PINCTRL_GROUP(aout1_dat4), |
598 | UNIPHIER_PINCTRL_GROUP(ainiec1), |
599 | UNIPHIER_PINCTRL_GROUP(ainiec1b), |
600 | UNIPHIER_PINCTRL_GROUP(aoutiec1), |
601 | UNIPHIER_PINCTRL_GROUP(aoutiec2), |
602 | UNIPHIER_PINCTRL_GROUP(emmc), |
603 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), |
604 | UNIPHIER_PINCTRL_GROUP(ether_rmii), |
605 | UNIPHIER_PINCTRL_GROUP(hscin0_ci), |
606 | UNIPHIER_PINCTRL_GROUP(hscin0_p), |
607 | UNIPHIER_PINCTRL_GROUP(hscin0_s), |
608 | UNIPHIER_PINCTRL_GROUP(hscin1_p), |
609 | UNIPHIER_PINCTRL_GROUP(hscin1_s), |
610 | UNIPHIER_PINCTRL_GROUP(hscin2_s), |
611 | UNIPHIER_PINCTRL_GROUP(hscout0_ci), |
612 | UNIPHIER_PINCTRL_GROUP(hscout0_p), |
613 | UNIPHIER_PINCTRL_GROUP(hscout0_s), |
614 | UNIPHIER_PINCTRL_GROUP(hscout1_s), |
615 | UNIPHIER_PINCTRL_GROUP(i2c0), |
616 | UNIPHIER_PINCTRL_GROUP(i2c1), |
617 | UNIPHIER_PINCTRL_GROUP(i2c3), |
618 | UNIPHIER_PINCTRL_GROUP(i2c4), |
619 | UNIPHIER_PINCTRL_GROUP(nand), |
620 | UNIPHIER_PINCTRL_GROUP(spi0), |
621 | UNIPHIER_PINCTRL_GROUP(spi1), |
622 | UNIPHIER_PINCTRL_GROUP(system_bus), |
623 | UNIPHIER_PINCTRL_GROUP(system_bus_cs1), |
624 | UNIPHIER_PINCTRL_GROUP(uart0), |
625 | UNIPHIER_PINCTRL_GROUP(uart1), |
626 | UNIPHIER_PINCTRL_GROUP(uart2), |
627 | UNIPHIER_PINCTRL_GROUP(uart3), |
628 | UNIPHIER_PINCTRL_GROUP(uart3_ctsrts), |
629 | UNIPHIER_PINCTRL_GROUP(uart3_modem), |
630 | UNIPHIER_PINCTRL_GROUP(usb0), |
631 | UNIPHIER_PINCTRL_GROUP(usb1), |
632 | UNIPHIER_PINCTRL_GROUP(usb2), |
633 | UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range0), |
634 | UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range1), |
635 | UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2), |
636 | UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range3), |
637 | UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range4), |
638 | UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range5), |
639 | }; |
640 | |
641 | static const char * const ain1_groups[] = {"ain1" , "ain1_dat2" , |
642 | "ain1_dat4" }; |
643 | static const char * const aout1_groups[] = {"aout1" , "aout1_dat2" , |
644 | "aout1_dat4" }; |
645 | static const char * const ainiec1_groups[] = {"ainiec1" , "ainiec1b" }; |
646 | static const char * const aoutiec1_groups[] = {"aoutiec1" }; |
647 | static const char * const aoutiec2_groups[] = {"aoutiec2" }; |
648 | static const char * const emmc_groups[] = {"emmc" , "emmc_dat8" }; |
649 | static const char * const ether_rmii_groups[] = {"ether_rmii" }; |
650 | static const char * const hscin0_groups[] = {"hscin0_ci" , |
651 | "hscin0_p" , |
652 | "hscin0_s" }; |
653 | static const char * const hscin1_groups[] = {"hscin1_p" , "hscin1_s" }; |
654 | static const char * const hscin2_groups[] = {"hscin2_s" }; |
655 | static const char * const hscout0_groups[] = {"hscout0_ci" , |
656 | "hscout0_p" , |
657 | "hscout0_s" }; |
658 | static const char * const hscout1_groups[] = {"hscout1_s" }; |
659 | static const char * const i2c0_groups[] = {"i2c0" }; |
660 | static const char * const i2c1_groups[] = {"i2c1" }; |
661 | static const char * const i2c3_groups[] = {"i2c3" }; |
662 | static const char * const i2c4_groups[] = {"i2c4" }; |
663 | static const char * const nand_groups[] = {"nand" }; |
664 | static const char * const spi0_groups[] = {"spi0" }; |
665 | static const char * const spi1_groups[] = {"spi1" }; |
666 | static const char * const system_bus_groups[] = {"system_bus" , |
667 | "system_bus_cs1" }; |
668 | static const char * const uart0_groups[] = {"uart0" }; |
669 | static const char * const uart1_groups[] = {"uart1" }; |
670 | static const char * const uart2_groups[] = {"uart2" }; |
671 | static const char * const uart3_groups[] = {"uart3" , "uart3_ctsrts" , |
672 | "uart3_modem" }; |
673 | static const char * const usb0_groups[] = {"usb0" }; |
674 | static const char * const usb1_groups[] = {"usb1" }; |
675 | static const char * const usb2_groups[] = {"usb2" }; |
676 | |
677 | static const struct uniphier_pinmux_function uniphier_ld11_functions[] = { |
678 | UNIPHIER_PINMUX_FUNCTION(ain1), |
679 | UNIPHIER_PINMUX_FUNCTION(aout1), |
680 | UNIPHIER_PINMUX_FUNCTION(ainiec1), |
681 | UNIPHIER_PINMUX_FUNCTION(aoutiec1), |
682 | UNIPHIER_PINMUX_FUNCTION(aoutiec2), |
683 | UNIPHIER_PINMUX_FUNCTION(emmc), |
684 | UNIPHIER_PINMUX_FUNCTION(ether_rmii), |
685 | UNIPHIER_PINMUX_FUNCTION(hscin0), |
686 | UNIPHIER_PINMUX_FUNCTION(hscin1), |
687 | UNIPHIER_PINMUX_FUNCTION(hscin2), |
688 | UNIPHIER_PINMUX_FUNCTION(hscout0), |
689 | UNIPHIER_PINMUX_FUNCTION(hscout1), |
690 | UNIPHIER_PINMUX_FUNCTION(i2c0), |
691 | UNIPHIER_PINMUX_FUNCTION(i2c1), |
692 | UNIPHIER_PINMUX_FUNCTION(i2c3), |
693 | UNIPHIER_PINMUX_FUNCTION(i2c4), |
694 | UNIPHIER_PINMUX_FUNCTION(nand), |
695 | UNIPHIER_PINMUX_FUNCTION(spi0), |
696 | UNIPHIER_PINMUX_FUNCTION(spi1), |
697 | UNIPHIER_PINMUX_FUNCTION(system_bus), |
698 | UNIPHIER_PINMUX_FUNCTION(uart0), |
699 | UNIPHIER_PINMUX_FUNCTION(uart1), |
700 | UNIPHIER_PINMUX_FUNCTION(uart2), |
701 | UNIPHIER_PINMUX_FUNCTION(uart3), |
702 | UNIPHIER_PINMUX_FUNCTION(usb0), |
703 | UNIPHIER_PINMUX_FUNCTION(usb1), |
704 | UNIPHIER_PINMUX_FUNCTION(usb2), |
705 | }; |
706 | |
707 | static int uniphier_ld11_get_gpio_muxval(unsigned int pin, |
708 | unsigned int gpio_offset) |
709 | { |
710 | if (gpio_offset == 132 || gpio_offset == 135) /* XIRQ12, 15 */ |
711 | return 13; |
712 | |
713 | if (gpio_offset >= 120 && gpio_offset <= 143) /* XIRQx */ |
714 | return 14; |
715 | |
716 | return 15; |
717 | } |
718 | |
719 | static const struct uniphier_pinctrl_socdata uniphier_ld11_pindata = { |
720 | .pins = uniphier_ld11_pins, |
721 | .npins = ARRAY_SIZE(uniphier_ld11_pins), |
722 | .groups = uniphier_ld11_groups, |
723 | .groups_count = ARRAY_SIZE(uniphier_ld11_groups), |
724 | .functions = uniphier_ld11_functions, |
725 | .functions_count = ARRAY_SIZE(uniphier_ld11_functions), |
726 | .get_gpio_muxval = uniphier_ld11_get_gpio_muxval, |
727 | .caps = UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL, |
728 | }; |
729 | |
730 | static int uniphier_ld11_pinctrl_probe(struct platform_device *pdev) |
731 | { |
732 | return uniphier_pinctrl_probe(pdev, socdata: &uniphier_ld11_pindata); |
733 | } |
734 | |
735 | static const struct of_device_id uniphier_ld11_pinctrl_match[] = { |
736 | { .compatible = "socionext,uniphier-ld11-pinctrl" }, |
737 | { /* sentinel */ } |
738 | }; |
739 | |
740 | static struct platform_driver uniphier_ld11_pinctrl_driver = { |
741 | .probe = uniphier_ld11_pinctrl_probe, |
742 | .driver = { |
743 | .name = "uniphier-ld11-pinctrl" , |
744 | .of_match_table = uniphier_ld11_pinctrl_match, |
745 | .pm = &uniphier_pinctrl_pm_ops, |
746 | }, |
747 | }; |
748 | builtin_platform_driver(uniphier_ld11_pinctrl_driver); |
749 | |