]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blame - drivers/pinctrl/uniphier/pinctrl-ph1-sld8.c
Merge remote-tracking branches 'asoc/topic/wm8904', 'asoc/topic/wm8955' and 'asoc...
[mirror_ubuntu-zesty-kernel.git] / drivers / pinctrl / uniphier / pinctrl-ph1-sld8.c
CommitLineData
95372f9d
MY
1/*
2 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#include <linux/kernel.h>
16#include <linux/module.h>
17#include <linux/pinctrl/pinctrl.h>
18#include <linux/platform_device.h>
19
20#include "pinctrl-uniphier.h"
21
22#define DRIVER_NAME "ph1-sld8-pinctrl"
23
24static const struct pinctrl_pin_desc ph1_sld8_pins[] = {
de7f8e3e 25 UNIPHIER_PINCTRL_PIN(0, "PCA00", 0,
95372f9d
MY
26 15, UNIPHIER_PIN_DRV_4_8,
27 15, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 28 UNIPHIER_PINCTRL_PIN(1, "PCA01", 0,
95372f9d
MY
29 16, UNIPHIER_PIN_DRV_4_8,
30 16, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 31 UNIPHIER_PINCTRL_PIN(2, "PCA02", 0,
95372f9d
MY
32 17, UNIPHIER_PIN_DRV_4_8,
33 17, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 34 UNIPHIER_PINCTRL_PIN(3, "PCA03", 0,
95372f9d
MY
35 18, UNIPHIER_PIN_DRV_4_8,
36 18, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 37 UNIPHIER_PINCTRL_PIN(4, "PCA04", 0,
95372f9d
MY
38 19, UNIPHIER_PIN_DRV_4_8,
39 19, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 40 UNIPHIER_PINCTRL_PIN(5, "PCA05", 0,
95372f9d
MY
41 20, UNIPHIER_PIN_DRV_4_8,
42 20, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 43 UNIPHIER_PINCTRL_PIN(6, "PCA06", 0,
95372f9d
MY
44 21, UNIPHIER_PIN_DRV_4_8,
45 21, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 46 UNIPHIER_PINCTRL_PIN(7, "PCA07", 0,
95372f9d
MY
47 22, UNIPHIER_PIN_DRV_4_8,
48 22, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 49 UNIPHIER_PINCTRL_PIN(8, "PCA08", 0,
95372f9d
MY
50 23, UNIPHIER_PIN_DRV_4_8,
51 23, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 52 UNIPHIER_PINCTRL_PIN(9, "PCA09", 0,
95372f9d
MY
53 24, UNIPHIER_PIN_DRV_4_8,
54 24, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 55 UNIPHIER_PINCTRL_PIN(10, "PCA10", 0,
95372f9d
MY
56 25, UNIPHIER_PIN_DRV_4_8,
57 25, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 58 UNIPHIER_PINCTRL_PIN(11, "PCA11", 0,
95372f9d
MY
59 26, UNIPHIER_PIN_DRV_4_8,
60 26, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 61 UNIPHIER_PINCTRL_PIN(12, "PCA12", 0,
95372f9d
MY
62 27, UNIPHIER_PIN_DRV_4_8,
63 27, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 64 UNIPHIER_PINCTRL_PIN(13, "PCA13", 0,
95372f9d
MY
65 28, UNIPHIER_PIN_DRV_4_8,
66 28, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 67 UNIPHIER_PINCTRL_PIN(14, "PCA14", 0,
95372f9d
MY
68 29, UNIPHIER_PIN_DRV_4_8,
69 29, UNIPHIER_PIN_PULL_DOWN),
70 UNIPHIER_PINCTRL_PIN(15, "XNFRE_GB", UNIPHIER_PIN_IECTRL_NONE,
71 30, UNIPHIER_PIN_DRV_4_8,
72 30, UNIPHIER_PIN_PULL_UP),
73 UNIPHIER_PINCTRL_PIN(16, "XNFWE_GB", UNIPHIER_PIN_IECTRL_NONE,
74 31, UNIPHIER_PIN_DRV_4_8,
75 31, UNIPHIER_PIN_PULL_UP),
76 UNIPHIER_PINCTRL_PIN(17, "NFALE_GB", UNIPHIER_PIN_IECTRL_NONE,
77 32, UNIPHIER_PIN_DRV_4_8,
78 32, UNIPHIER_PIN_PULL_DOWN),
79 UNIPHIER_PINCTRL_PIN(18, "NFCLE_GB", UNIPHIER_PIN_IECTRL_NONE,
80 33, UNIPHIER_PIN_DRV_4_8,
81 33, UNIPHIER_PIN_PULL_DOWN),
82 UNIPHIER_PINCTRL_PIN(19, "XNFWP_GB", UNIPHIER_PIN_IECTRL_NONE,
83 34, UNIPHIER_PIN_DRV_4_8,
84 34, UNIPHIER_PIN_PULL_DOWN),
85 UNIPHIER_PINCTRL_PIN(20, "XNFCE0_GB", UNIPHIER_PIN_IECTRL_NONE,
86 35, UNIPHIER_PIN_DRV_4_8,
87 35, UNIPHIER_PIN_PULL_UP),
88 UNIPHIER_PINCTRL_PIN(21, "NANDRYBY0_GB", UNIPHIER_PIN_IECTRL_NONE,
89 36, UNIPHIER_PIN_DRV_4_8,
90 36, UNIPHIER_PIN_PULL_UP),
91 UNIPHIER_PINCTRL_PIN(22, "XNFCE1_GB", UNIPHIER_PIN_IECTRL_NONE,
92 0, UNIPHIER_PIN_DRV_8_12_16_20,
93 119, UNIPHIER_PIN_PULL_UP),
94 UNIPHIER_PINCTRL_PIN(23, "NANDRYBY1_GB", UNIPHIER_PIN_IECTRL_NONE,
95 4, UNIPHIER_PIN_DRV_8_12_16_20,
96 120, UNIPHIER_PIN_PULL_UP),
97 UNIPHIER_PINCTRL_PIN(24, "NFD0_GB", UNIPHIER_PIN_IECTRL_NONE,
98 8, UNIPHIER_PIN_DRV_8_12_16_20,
99 121, UNIPHIER_PIN_PULL_UP),
100 UNIPHIER_PINCTRL_PIN(25, "NFD1_GB", UNIPHIER_PIN_IECTRL_NONE,
101 12, UNIPHIER_PIN_DRV_8_12_16_20,
102 122, UNIPHIER_PIN_PULL_UP),
103 UNIPHIER_PINCTRL_PIN(26, "NFD2_GB", UNIPHIER_PIN_IECTRL_NONE,
104 16, UNIPHIER_PIN_DRV_8_12_16_20,
105 123, UNIPHIER_PIN_PULL_UP),
106 UNIPHIER_PINCTRL_PIN(27, "NFD3_GB", UNIPHIER_PIN_IECTRL_NONE,
107 20, UNIPHIER_PIN_DRV_8_12_16_20,
108 124, UNIPHIER_PIN_PULL_UP),
109 UNIPHIER_PINCTRL_PIN(28, "NFD4_GB", UNIPHIER_PIN_IECTRL_NONE,
110 24, UNIPHIER_PIN_DRV_8_12_16_20,
111 125, UNIPHIER_PIN_PULL_UP),
112 UNIPHIER_PINCTRL_PIN(29, "NFD5_GB", UNIPHIER_PIN_IECTRL_NONE,
113 28, UNIPHIER_PIN_DRV_8_12_16_20,
114 126, UNIPHIER_PIN_PULL_UP),
115 UNIPHIER_PINCTRL_PIN(30, "NFD6_GB", UNIPHIER_PIN_IECTRL_NONE,
116 32, UNIPHIER_PIN_DRV_8_12_16_20,
117 127, UNIPHIER_PIN_PULL_UP),
118 UNIPHIER_PINCTRL_PIN(31, "NFD7_GB", UNIPHIER_PIN_IECTRL_NONE,
119 36, UNIPHIER_PIN_DRV_8_12_16_20,
120 128, UNIPHIER_PIN_PULL_UP),
de7f8e3e 121 UNIPHIER_PINCTRL_PIN(32, "SDCLK", 8,
95372f9d
MY
122 40, UNIPHIER_PIN_DRV_8_12_16_20,
123 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 124 UNIPHIER_PINCTRL_PIN(33, "SDCMD", 8,
95372f9d
MY
125 44, UNIPHIER_PIN_DRV_8_12_16_20,
126 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 127 UNIPHIER_PINCTRL_PIN(34, "SDDAT0", 8,
95372f9d
MY
128 48, UNIPHIER_PIN_DRV_8_12_16_20,
129 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 130 UNIPHIER_PINCTRL_PIN(35, "SDDAT1", 8,
95372f9d
MY
131 52, UNIPHIER_PIN_DRV_8_12_16_20,
132 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 133 UNIPHIER_PINCTRL_PIN(36, "SDDAT2", 8,
95372f9d
MY
134 56, UNIPHIER_PIN_DRV_8_12_16_20,
135 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 136 UNIPHIER_PINCTRL_PIN(37, "SDDAT3", 8,
95372f9d
MY
137 60, UNIPHIER_PIN_DRV_8_12_16_20,
138 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 139 UNIPHIER_PINCTRL_PIN(38, "SDCD", 8,
95372f9d
MY
140 -1, UNIPHIER_PIN_DRV_FIXED_4,
141 129, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 142 UNIPHIER_PINCTRL_PIN(39, "SDWP", 8,
95372f9d
MY
143 -1, UNIPHIER_PIN_DRV_FIXED_4,
144 130, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 145 UNIPHIER_PINCTRL_PIN(40, "SDVOLC", 9,
95372f9d
MY
146 -1, UNIPHIER_PIN_DRV_FIXED_4,
147 131, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 148 UNIPHIER_PINCTRL_PIN(41, "USB0VBUS", 0,
95372f9d
MY
149 37, UNIPHIER_PIN_DRV_4_8,
150 37, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 151 UNIPHIER_PINCTRL_PIN(42, "USB0OD", 0,
95372f9d
MY
152 38, UNIPHIER_PIN_DRV_4_8,
153 38, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 154 UNIPHIER_PINCTRL_PIN(43, "USB1VBUS", 0,
95372f9d
MY
155 39, UNIPHIER_PIN_DRV_4_8,
156 39, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 157 UNIPHIER_PINCTRL_PIN(44, "USB1OD", 0,
95372f9d
MY
158 40, UNIPHIER_PIN_DRV_4_8,
159 40, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 160 UNIPHIER_PINCTRL_PIN(45, "PCRESET", 0,
95372f9d
MY
161 41, UNIPHIER_PIN_DRV_4_8,
162 41, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 163 UNIPHIER_PINCTRL_PIN(46, "PCREG", 0,
95372f9d
MY
164 42, UNIPHIER_PIN_DRV_4_8,
165 42, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 166 UNIPHIER_PINCTRL_PIN(47, "PCCE2", 0,
95372f9d
MY
167 43, UNIPHIER_PIN_DRV_4_8,
168 43, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 169 UNIPHIER_PINCTRL_PIN(48, "PCVS1", 0,
95372f9d
MY
170 44, UNIPHIER_PIN_DRV_4_8,
171 44, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 172 UNIPHIER_PINCTRL_PIN(49, "PCCD2", 0,
95372f9d
MY
173 45, UNIPHIER_PIN_DRV_4_8,
174 45, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 175 UNIPHIER_PINCTRL_PIN(50, "PCCD1", 0,
95372f9d
MY
176 46, UNIPHIER_PIN_DRV_4_8,
177 46, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 178 UNIPHIER_PINCTRL_PIN(51, "PCREADY", 0,
95372f9d
MY
179 47, UNIPHIER_PIN_DRV_4_8,
180 47, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 181 UNIPHIER_PINCTRL_PIN(52, "PCDOE", 0,
95372f9d
MY
182 48, UNIPHIER_PIN_DRV_4_8,
183 48, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 184 UNIPHIER_PINCTRL_PIN(53, "PCCE1", 0,
95372f9d
MY
185 49, UNIPHIER_PIN_DRV_4_8,
186 49, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 187 UNIPHIER_PINCTRL_PIN(54, "PCWE", 0,
95372f9d
MY
188 50, UNIPHIER_PIN_DRV_4_8,
189 50, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 190 UNIPHIER_PINCTRL_PIN(55, "PCOE", 0,
95372f9d
MY
191 51, UNIPHIER_PIN_DRV_4_8,
192 51, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 193 UNIPHIER_PINCTRL_PIN(56, "PCWAIT", 0,
95372f9d
MY
194 52, UNIPHIER_PIN_DRV_4_8,
195 52, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 196 UNIPHIER_PINCTRL_PIN(57, "PCIOWR", 0,
95372f9d
MY
197 53, UNIPHIER_PIN_DRV_4_8,
198 53, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 199 UNIPHIER_PINCTRL_PIN(58, "PCIORD", 0,
95372f9d
MY
200 54, UNIPHIER_PIN_DRV_4_8,
201 54, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 202 UNIPHIER_PINCTRL_PIN(59, "HS0DIN0", 0,
95372f9d
MY
203 55, UNIPHIER_PIN_DRV_4_8,
204 55, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 205 UNIPHIER_PINCTRL_PIN(60, "HS0DIN1", 0,
95372f9d
MY
206 56, UNIPHIER_PIN_DRV_4_8,
207 56, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 208 UNIPHIER_PINCTRL_PIN(61, "HS0DIN2", 0,
95372f9d
MY
209 57, UNIPHIER_PIN_DRV_4_8,
210 57, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 211 UNIPHIER_PINCTRL_PIN(62, "HS0DIN3", 0,
95372f9d
MY
212 58, UNIPHIER_PIN_DRV_4_8,
213 58, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 214 UNIPHIER_PINCTRL_PIN(63, "HS0DIN4", 0,
95372f9d
MY
215 59, UNIPHIER_PIN_DRV_4_8,
216 59, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 217 UNIPHIER_PINCTRL_PIN(64, "HS0DIN5", 0,
95372f9d
MY
218 60, UNIPHIER_PIN_DRV_4_8,
219 60, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 220 UNIPHIER_PINCTRL_PIN(65, "HS0DIN6", 0,
95372f9d
MY
221 61, UNIPHIER_PIN_DRV_4_8,
222 61, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 223 UNIPHIER_PINCTRL_PIN(66, "HS0DIN7", 0,
95372f9d
MY
224 62, UNIPHIER_PIN_DRV_4_8,
225 62, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 226 UNIPHIER_PINCTRL_PIN(67, "HS0BCLKIN", 0,
95372f9d
MY
227 63, UNIPHIER_PIN_DRV_4_8,
228 63, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 229 UNIPHIER_PINCTRL_PIN(68, "HS0VALIN", 0,
95372f9d
MY
230 64, UNIPHIER_PIN_DRV_4_8,
231 64, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 232 UNIPHIER_PINCTRL_PIN(69, "HS0SYNCIN", 0,
95372f9d
MY
233 65, UNIPHIER_PIN_DRV_4_8,
234 65, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 235 UNIPHIER_PINCTRL_PIN(70, "HSDOUT0", 0,
95372f9d
MY
236 66, UNIPHIER_PIN_DRV_4_8,
237 66, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 238 UNIPHIER_PINCTRL_PIN(71, "HSDOUT1", 0,
95372f9d
MY
239 67, UNIPHIER_PIN_DRV_4_8,
240 67, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 241 UNIPHIER_PINCTRL_PIN(72, "HSDOUT2", 0,
95372f9d
MY
242 68, UNIPHIER_PIN_DRV_4_8,
243 68, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 244 UNIPHIER_PINCTRL_PIN(73, "HSDOUT3", 0,
95372f9d
MY
245 69, UNIPHIER_PIN_DRV_4_8,
246 69, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 247 UNIPHIER_PINCTRL_PIN(74, "HSDOUT4", 0,
95372f9d
MY
248 70, UNIPHIER_PIN_DRV_4_8,
249 70, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 250 UNIPHIER_PINCTRL_PIN(75, "HSDOUT5", 0,
95372f9d
MY
251 71, UNIPHIER_PIN_DRV_4_8,
252 71, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 253 UNIPHIER_PINCTRL_PIN(76, "HSDOUT6", 0,
95372f9d
MY
254 72, UNIPHIER_PIN_DRV_4_8,
255 72, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 256 UNIPHIER_PINCTRL_PIN(77, "HSDOUT7", 0,
95372f9d
MY
257 73, UNIPHIER_PIN_DRV_4_8,
258 73, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 259 UNIPHIER_PINCTRL_PIN(78, "HSBCLKOUT", 0,
95372f9d
MY
260 74, UNIPHIER_PIN_DRV_4_8,
261 74, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 262 UNIPHIER_PINCTRL_PIN(79, "HSVALOUT", 0,
95372f9d
MY
263 75, UNIPHIER_PIN_DRV_4_8,
264 75, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 265 UNIPHIER_PINCTRL_PIN(80, "HSSYNCOUT", 0,
95372f9d
MY
266 76, UNIPHIER_PIN_DRV_4_8,
267 76, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 268 UNIPHIER_PINCTRL_PIN(81, "HS1DIN0", 0,
95372f9d
MY
269 77, UNIPHIER_PIN_DRV_4_8,
270 77, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 271 UNIPHIER_PINCTRL_PIN(82, "HS1DIN1", 0,
95372f9d
MY
272 78, UNIPHIER_PIN_DRV_4_8,
273 78, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 274 UNIPHIER_PINCTRL_PIN(83, "HS1DIN2", 0,
95372f9d
MY
275 79, UNIPHIER_PIN_DRV_4_8,
276 79, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 277 UNIPHIER_PINCTRL_PIN(84, "HS1DIN3", 0,
95372f9d
MY
278 80, UNIPHIER_PIN_DRV_4_8,
279 80, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 280 UNIPHIER_PINCTRL_PIN(85, "HS1DIN4", 0,
95372f9d
MY
281 81, UNIPHIER_PIN_DRV_4_8,
282 81, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 283 UNIPHIER_PINCTRL_PIN(86, "HS1DIN5", 0,
95372f9d
MY
284 82, UNIPHIER_PIN_DRV_4_8,
285 82, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 286 UNIPHIER_PINCTRL_PIN(87, "HS1DIN6", 0,
95372f9d
MY
287 83, UNIPHIER_PIN_DRV_4_8,
288 83, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 289 UNIPHIER_PINCTRL_PIN(88, "HS1DIN7", 0,
95372f9d
MY
290 84, UNIPHIER_PIN_DRV_4_8,
291 84, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 292 UNIPHIER_PINCTRL_PIN(89, "HS1BCLKIN", 0,
95372f9d
MY
293 85, UNIPHIER_PIN_DRV_4_8,
294 85, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 295 UNIPHIER_PINCTRL_PIN(90, "HS1VALIN", 0,
95372f9d
MY
296 86, UNIPHIER_PIN_DRV_4_8,
297 86, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 298 UNIPHIER_PINCTRL_PIN(91, "HS1SYNCIN", 0,
95372f9d
MY
299 87, UNIPHIER_PIN_DRV_4_8,
300 87, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 301 UNIPHIER_PINCTRL_PIN(92, "AGCI", 3,
95372f9d
MY
302 -1, UNIPHIER_PIN_DRV_FIXED_4,
303 132, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 304 UNIPHIER_PINCTRL_PIN(93, "AGCR", 4,
95372f9d
MY
305 -1, UNIPHIER_PIN_DRV_FIXED_4,
306 133, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 307 UNIPHIER_PINCTRL_PIN(94, "AGCBS", 5,
95372f9d
MY
308 -1, UNIPHIER_PIN_DRV_FIXED_4,
309 134, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 310 UNIPHIER_PINCTRL_PIN(95, "IECOUT", 0,
95372f9d
MY
311 88, UNIPHIER_PIN_DRV_4_8,
312 88, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 313 UNIPHIER_PINCTRL_PIN(96, "ASMCK", 0,
95372f9d
MY
314 89, UNIPHIER_PIN_DRV_4_8,
315 89, UNIPHIER_PIN_PULL_DOWN),
316 UNIPHIER_PINCTRL_PIN(97, "ABCKO", UNIPHIER_PIN_IECTRL_NONE,
317 90, UNIPHIER_PIN_DRV_4_8,
318 90, UNIPHIER_PIN_PULL_DOWN),
319 UNIPHIER_PINCTRL_PIN(98, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE,
320 91, UNIPHIER_PIN_DRV_4_8,
321 91, UNIPHIER_PIN_PULL_DOWN),
322 UNIPHIER_PINCTRL_PIN(99, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE,
323 92, UNIPHIER_PIN_DRV_4_8,
324 92, UNIPHIER_PIN_PULL_DOWN),
325 UNIPHIER_PINCTRL_PIN(100, "ASDOUT1", UNIPHIER_PIN_IECTRL_NONE,
326 93, UNIPHIER_PIN_DRV_4_8,
327 93, UNIPHIER_PIN_PULL_UP),
de7f8e3e 328 UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0,
95372f9d
MY
329 94, UNIPHIER_PIN_DRV_4_8,
330 94, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 331 UNIPHIER_PINCTRL_PIN(102, "SDA0", 10,
95372f9d
MY
332 -1, UNIPHIER_PIN_DRV_FIXED_4,
333 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 334 UNIPHIER_PINCTRL_PIN(103, "SCL0", 10,
95372f9d
MY
335 -1, UNIPHIER_PIN_DRV_FIXED_4,
336 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 337 UNIPHIER_PINCTRL_PIN(104, "SDA1", 11,
95372f9d
MY
338 -1, UNIPHIER_PIN_DRV_FIXED_4,
339 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 340 UNIPHIER_PINCTRL_PIN(105, "SCL1", 11,
95372f9d
MY
341 -1, UNIPHIER_PIN_DRV_FIXED_4,
342 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 343 UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", 12,
95372f9d
MY
344 -1, UNIPHIER_PIN_DRV_FIXED_4,
345 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 346 UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", 12,
95372f9d
MY
347 -1, UNIPHIER_PIN_DRV_FIXED_4,
348 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 349 UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", 13,
95372f9d
MY
350 -1, UNIPHIER_PIN_DRV_FIXED_4,
351 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 352 UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", 13,
95372f9d
MY
353 -1, UNIPHIER_PIN_DRV_FIXED_4,
354 -1, UNIPHIER_PIN_PULL_NONE),
355 UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE,
356 95, UNIPHIER_PIN_DRV_4_8,
357 95, UNIPHIER_PIN_PULL_UP),
358 UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE,
359 96, UNIPHIER_PIN_DRV_4_8,
360 96, UNIPHIER_PIN_PULL_UP),
de7f8e3e 361 UNIPHIER_PINCTRL_PIN(112, "SBO1", 0,
95372f9d
MY
362 97, UNIPHIER_PIN_DRV_4_8,
363 97, UNIPHIER_PIN_PULL_UP),
de7f8e3e 364 UNIPHIER_PINCTRL_PIN(113, "SBI1", 0,
95372f9d
MY
365 98, UNIPHIER_PIN_DRV_4_8,
366 98, UNIPHIER_PIN_PULL_UP),
de7f8e3e 367 UNIPHIER_PINCTRL_PIN(114, "TXD1", 0,
95372f9d
MY
368 99, UNIPHIER_PIN_DRV_4_8,
369 99, UNIPHIER_PIN_PULL_UP),
de7f8e3e 370 UNIPHIER_PINCTRL_PIN(115, "RXD1", 0,
95372f9d
MY
371 100, UNIPHIER_PIN_DRV_4_8,
372 100, UNIPHIER_PIN_PULL_UP),
de7f8e3e 373 UNIPHIER_PINCTRL_PIN(116, "HIN", 1,
95372f9d
MY
374 -1, UNIPHIER_PIN_DRV_FIXED_5,
375 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 376 UNIPHIER_PINCTRL_PIN(117, "VIN", 2,
95372f9d
MY
377 -1, UNIPHIER_PIN_DRV_FIXED_5,
378 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 379 UNIPHIER_PINCTRL_PIN(118, "TCON0", 0,
95372f9d
MY
380 101, UNIPHIER_PIN_DRV_4_8,
381 101, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 382 UNIPHIER_PINCTRL_PIN(119, "TCON1", 0,
95372f9d
MY
383 102, UNIPHIER_PIN_DRV_4_8,
384 102, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 385 UNIPHIER_PINCTRL_PIN(120, "TCON2", 0,
95372f9d
MY
386 103, UNIPHIER_PIN_DRV_4_8,
387 103, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 388 UNIPHIER_PINCTRL_PIN(121, "TCON3", 0,
95372f9d
MY
389 104, UNIPHIER_PIN_DRV_4_8,
390 104, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 391 UNIPHIER_PINCTRL_PIN(122, "TCON4", 0,
95372f9d
MY
392 105, UNIPHIER_PIN_DRV_4_8,
393 105, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 394 UNIPHIER_PINCTRL_PIN(123, "TCON5", 0,
95372f9d
MY
395 106, UNIPHIER_PIN_DRV_4_8,
396 106, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 397 UNIPHIER_PINCTRL_PIN(124, "TCON6", 0,
95372f9d
MY
398 107, UNIPHIER_PIN_DRV_4_8,
399 107, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 400 UNIPHIER_PINCTRL_PIN(125, "TCON7", 0,
95372f9d
MY
401 108, UNIPHIER_PIN_DRV_4_8,
402 108, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 403 UNIPHIER_PINCTRL_PIN(126, "TCON8", 0,
95372f9d
MY
404 109, UNIPHIER_PIN_DRV_4_8,
405 109, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 406 UNIPHIER_PINCTRL_PIN(127, "PWMA", 0,
95372f9d
MY
407 110, UNIPHIER_PIN_DRV_4_8,
408 110, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 409 UNIPHIER_PINCTRL_PIN(128, "XIRQ0", 0,
95372f9d
MY
410 111, UNIPHIER_PIN_DRV_4_8,
411 111, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 412 UNIPHIER_PINCTRL_PIN(129, "XIRQ1", 0,
95372f9d
MY
413 112, UNIPHIER_PIN_DRV_4_8,
414 112, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 415 UNIPHIER_PINCTRL_PIN(130, "XIRQ2", 0,
95372f9d
MY
416 113, UNIPHIER_PIN_DRV_4_8,
417 113, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 418 UNIPHIER_PINCTRL_PIN(131, "XIRQ3", 0,
95372f9d
MY
419 114, UNIPHIER_PIN_DRV_4_8,
420 114, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 421 UNIPHIER_PINCTRL_PIN(132, "XIRQ4", 0,
95372f9d
MY
422 115, UNIPHIER_PIN_DRV_4_8,
423 115, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 424 UNIPHIER_PINCTRL_PIN(133, "XIRQ5", 0,
95372f9d
MY
425 116, UNIPHIER_PIN_DRV_4_8,
426 116, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 427 UNIPHIER_PINCTRL_PIN(134, "XIRQ6", 0,
95372f9d
MY
428 117, UNIPHIER_PIN_DRV_4_8,
429 117, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 430 UNIPHIER_PINCTRL_PIN(135, "XIRQ7", 0,
95372f9d
MY
431 118, UNIPHIER_PIN_DRV_4_8,
432 118, UNIPHIER_PIN_PULL_DOWN),
433};
434
435static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27};
436static const unsigned emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1};
437static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31};
438static const unsigned emmc_dat8_muxvals[] = {1, 1, 1, 1};
439static const unsigned i2c0_pins[] = {102, 103};
440static const unsigned i2c0_muxvals[] = {0, 0};
441static const unsigned i2c1_pins[] = {104, 105};
442static const unsigned i2c1_muxvals[] = {0, 0};
443static const unsigned i2c2_pins[] = {108, 109};
444static const unsigned i2c2_muxvals[] = {2, 2};
445static const unsigned i2c3_pins[] = {108, 109};
446static const unsigned i2c3_muxvals[] = {3, 3};
447static const unsigned nand_pins[] = {15, 16, 17, 18, 19, 20, 21, 24, 25, 26,
448 27, 28, 29, 30, 31};
449static const unsigned nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
450 0, 0};
451static const unsigned nand_cs1_pins[] = {22, 23};
452static const unsigned nand_cs1_muxvals[] = {0, 0};
453static const unsigned uart0_pins[] = {70, 71};
454static const unsigned uart0_muxvals[] = {3, 3};
455static const unsigned uart1_pins[] = {114, 115};
456static const unsigned uart1_muxvals[] = {0, 0};
457static const unsigned uart2_pins[] = {112, 113};
458static const unsigned uart2_muxvals[] = {1, 1};
459static const unsigned uart3_pins[] = {110, 111};
460static const unsigned uart3_muxvals[] = {1, 1};
461static const unsigned usb0_pins[] = {41, 42};
462static const unsigned usb0_muxvals[] = {0, 0};
463static const unsigned usb1_pins[] = {43, 44};
464static const unsigned usb1_muxvals[] = {0, 0};
465static const unsigned usb2_pins[] = {114, 115};
466static const unsigned usb2_muxvals[] = {1, 1};
467static const unsigned port_range0_pins[] = {
468 0, 1, 2, 3, 4, 5, 6, 7, /* PORT0x */
469 8, 9, 10, 11, 12, 13, 14, 15, /* PORT1x */
470 32, 33, 34, 35, 36, 37, 38, 39, /* PORT2x */
471 59, 60, 61, 62, 63, 64, 65, 66, /* PORT3x */
472 95, 96, 97, 98, 99, 100, 101, 57, /* PORT4x */
473 70, 71, 72, 73, 74, 75, 76, 77, /* PORT5x */
474 81, 83, 84, 85, 86, 89, 90, 91, /* PORT6x */
475 118, 119, 120, 121, 122, 53, 54, 55, /* PORT7x */
476 41, 42, 43, 44, 79, 80, 18, 19, /* PORT8x */
477 110, 111, 112, 113, 114, 115, 16, 17, /* PORT9x */
478 40, 67, 68, 69, 78, 92, 93, 94, /* PORT10x */
479 48, 49, 46, 45, 123, 124, 125, 126, /* PORT11x */
480 47, 127, 20, 56, 22, /* PORT120-124 */
481};
482static const unsigned port_range0_muxvals[] = {
483 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
484 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
485 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
486 15, 15, 15, 15, 15, 15, 15, 15, /* PORT3x */
487 15, 15, 15, 15, 15, 15, 15, 15, /* PORT4x */
488 15, 15, 15, 15, 15, 15, 15, 15, /* PORT5x */
489 15, 15, 15, 15, 15, 15, 15, 15, /* PORT6x */
490 15, 15, 15, 15, 15, 15, 15, 15, /* PORT7x */
491 15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */
492 15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */
493 15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */
494 15, 15, 15, 15, 15, 15, 15, 15, /* PORT11x */
495 15, 15, 15, 15, 15, /* PORT120-124 */
496};
497static const unsigned port_range1_pins[] = {
498 116, 117, /* PORT130-131 */
499};
500static const unsigned port_range1_muxvals[] = {
501 15, 15, /* PORT130-131 */
502};
503static const unsigned port_range2_pins[] = {
504 102, 103, 104, 105, 106, 107, 108, 109, /* PORT14x */
505};
506static const unsigned port_range2_muxvals[] = {
507 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */
508};
509static const unsigned port_range3_pins[] = {
510 23, /* PORT166 */
511};
512static const unsigned port_range3_muxvals[] = {
513 15, /* PORT166 */
514};
515static const unsigned xirq_range0_pins[] = {
516 128, 129, 130, 131, 132, 133, 134, 135, /* XIRQ0-7 */
517 82, 87, 88, 50, 51, /* XIRQ8-12 */
518};
519static const unsigned xirq_range0_muxvals[] = {
520 0, 0, 0, 0, 0, 0, 0, 0, /* XIRQ0-7 */
521 14, 14, 14, 14, 14, /* XIRQ8-12 */
522};
523static const unsigned xirq_range1_pins[] = {
524 52, 58, /* XIRQ14-15 */
525};
526static const unsigned xirq_range1_muxvals[] = {
527 14, 14, /* XIRQ14-15 */
528};
529
530static const struct uniphier_pinctrl_group ph1_sld8_groups[] = {
531 UNIPHIER_PINCTRL_GROUP(emmc),
532 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
533 UNIPHIER_PINCTRL_GROUP(i2c0),
534 UNIPHIER_PINCTRL_GROUP(i2c1),
535 UNIPHIER_PINCTRL_GROUP(i2c2),
536 UNIPHIER_PINCTRL_GROUP(i2c3),
537 UNIPHIER_PINCTRL_GROUP(nand),
538 UNIPHIER_PINCTRL_GROUP(nand_cs1),
539 UNIPHIER_PINCTRL_GROUP(uart0),
540 UNIPHIER_PINCTRL_GROUP(uart1),
541 UNIPHIER_PINCTRL_GROUP(uart2),
542 UNIPHIER_PINCTRL_GROUP(uart3),
543 UNIPHIER_PINCTRL_GROUP(usb0),
544 UNIPHIER_PINCTRL_GROUP(usb1),
545 UNIPHIER_PINCTRL_GROUP(usb2),
546 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range0),
547 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range1),
548 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range2),
549 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range3),
550 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_range0),
551 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_range1),
552 UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range0, 0),
553 UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range0, 1),
554 UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range0, 2),
555 UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range0, 3),
556 UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range0, 4),
557 UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range0, 5),
558 UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range0, 6),
559 UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range0, 7),
560 UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range0, 8),
561 UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range0, 9),
562 UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range0, 10),
563 UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range0, 11),
564 UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range0, 12),
565 UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range0, 13),
566 UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range0, 14),
567 UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range0, 15),
568 UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range0, 16),
569 UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range0, 17),
570 UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range0, 18),
571 UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range0, 19),
572 UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range0, 20),
573 UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range0, 21),
574 UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range0, 22),
575 UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range0, 23),
576 UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range0, 24),
577 UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range0, 25),
578 UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range0, 26),
579 UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range0, 27),
580 UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range0, 28),
581 UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range0, 29),
582 UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range0, 30),
583 UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range0, 31),
584 UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range0, 32),
585 UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range0, 33),
586 UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range0, 34),
587 UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range0, 35),
588 UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range0, 36),
589 UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range0, 37),
590 UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range0, 38),
591 UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range0, 39),
592 UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range0, 40),
593 UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range0, 41),
594 UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range0, 42),
595 UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range0, 43),
596 UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range0, 44),
597 UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range0, 45),
598 UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range0, 46),
599 UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range0, 47),
600 UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range0, 48),
601 UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range0, 49),
602 UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range0, 50),
603 UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range0, 51),
604 UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range0, 52),
605 UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range0, 53),
606 UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range0, 54),
607 UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range0, 55),
608 UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range0, 56),
609 UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range0, 57),
610 UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range0, 58),
611 UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range0, 59),
612 UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range0, 60),
613 UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range0, 61),
614 UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range0, 62),
615 UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range0, 63),
616 UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range0, 64),
617 UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range0, 65),
618 UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range0, 66),
619 UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range0, 67),
620 UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range0, 68),
621 UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range0, 69),
622 UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range0, 70),
623 UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range0, 71),
624 UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range0, 72),
625 UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range0, 73),
626 UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range0, 74),
627 UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range0, 75),
628 UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range0, 76),
629 UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range0, 77),
630 UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range0, 78),
631 UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range0, 79),
632 UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range0, 80),
633 UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range0, 81),
634 UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range0, 82),
635 UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range0, 83),
636 UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range0, 84),
637 UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range0, 85),
638 UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range0, 86),
639 UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range0, 87),
640 UNIPHIER_PINCTRL_GROUP_SINGLE(port110, port_range0, 88),
641 UNIPHIER_PINCTRL_GROUP_SINGLE(port111, port_range0, 89),
642 UNIPHIER_PINCTRL_GROUP_SINGLE(port112, port_range0, 90),
643 UNIPHIER_PINCTRL_GROUP_SINGLE(port113, port_range0, 91),
644 UNIPHIER_PINCTRL_GROUP_SINGLE(port114, port_range0, 92),
645 UNIPHIER_PINCTRL_GROUP_SINGLE(port115, port_range0, 93),
646 UNIPHIER_PINCTRL_GROUP_SINGLE(port116, port_range0, 94),
647 UNIPHIER_PINCTRL_GROUP_SINGLE(port117, port_range0, 95),
648 UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range0, 96),
649 UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range0, 97),
650 UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range0, 98),
651 UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range0, 99),
652 UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range0, 100),
653 UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range1, 0),
654 UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range1, 1),
655 UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range2, 0),
656 UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range2, 1),
657 UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range2, 2),
658 UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range2, 3),
659 UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range2, 4),
660 UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range2, 5),
661 UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range2, 6),
662 UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range2, 7),
663 UNIPHIER_PINCTRL_GROUP_SINGLE(port166, port_range3, 0),
664 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq_range0, 0),
665 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq_range0, 1),
666 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq_range0, 2),
667 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3, xirq_range0, 3),
668 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4, xirq_range0, 4),
669 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5, xirq_range0, 5),
670 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6, xirq_range0, 6),
671 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7, xirq_range0, 7),
672 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8, xirq_range0, 8),
673 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9, xirq_range0, 9),
674 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10, xirq_range0, 10),
675 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11, xirq_range0, 11),
676 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq12, xirq_range0, 12),
677 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14, xirq_range1, 0),
678 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq15, xirq_range1, 1),
679};
680
681static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
682static const char * const i2c0_groups[] = {"i2c0"};
683static const char * const i2c1_groups[] = {"i2c1"};
684static const char * const i2c2_groups[] = {"i2c2"};
685static const char * const i2c3_groups[] = {"i2c3"};
686static const char * const nand_groups[] = {"nand", "nand_cs1"};
687static const char * const uart0_groups[] = {"uart0"};
688static const char * const uart1_groups[] = {"uart1"};
689static const char * const uart2_groups[] = {"uart2"};
690static const char * const uart3_groups[] = {"uart3"};
691static const char * const usb0_groups[] = {"usb0"};
692static const char * const usb1_groups[] = {"usb1"};
693static const char * const usb2_groups[] = {"usb2"};
694static const char * const port_groups[] = {
695 "port00", "port01", "port02", "port03",
696 "port04", "port05", "port06", "port07",
697 "port10", "port11", "port12", "port13",
698 "port14", "port15", "port16", "port17",
699 "port20", "port21", "port22", "port23",
700 "port24", "port25", "port26", "port27",
701 "port30", "port31", "port32", "port33",
702 "port34", "port35", "port36", "port37",
703 "port40", "port41", "port42", "port43",
704 "port44", "port45", "port46", "port47",
705 "port50", "port51", "port52", "port53",
706 "port54", "port55", "port56", "port57",
707 "port60", "port61", "port62", "port63",
708 "port64", "port65", "port66", "port67",
709 "port70", "port71", "port72", "port73",
710 "port74", "port75", "port76", "port77",
711 "port80", "port81", "port82", "port83",
712 "port84", "port85", "port86", "port87",
713 "port90", "port91", "port92", "port93",
714 "port94", "port95", "port96", "port97",
715 "port100", "port101", "port102", "port103",
716 "port104", "port105", "port106", "port107",
717 "port110", "port111", "port112", "port113",
718 "port114", "port115", "port116", "port117",
719 "port120", "port121", "port122", "port123",
720 "port124", "port125", "port126", "port127",
721 "port130", "port131", "port132", "port133",
722 "port134", "port135", "port136", "port137",
723 "port140", "port141", "port142", "port143",
724 "port144", "port145", "port146", "port147",
725 /* port150-164 missing */
726 /* none */ "port165",
727};
728static const char * const xirq_groups[] = {
729 "xirq0", "xirq1", "xirq2", "xirq3",
730 "xirq4", "xirq5", "xirq6", "xirq7",
731 "xirq8", "xirq9", "xirq10", "xirq11",
732 "xirq12", /* none*/ "xirq14", "xirq15",
733};
734
735static const struct uniphier_pinmux_function ph1_sld8_functions[] = {
736 UNIPHIER_PINMUX_FUNCTION(emmc),
737 UNIPHIER_PINMUX_FUNCTION(i2c0),
738 UNIPHIER_PINMUX_FUNCTION(i2c1),
739 UNIPHIER_PINMUX_FUNCTION(i2c2),
740 UNIPHIER_PINMUX_FUNCTION(i2c3),
741 UNIPHIER_PINMUX_FUNCTION(nand),
742 UNIPHIER_PINMUX_FUNCTION(uart0),
743 UNIPHIER_PINMUX_FUNCTION(uart1),
744 UNIPHIER_PINMUX_FUNCTION(uart2),
745 UNIPHIER_PINMUX_FUNCTION(uart3),
746 UNIPHIER_PINMUX_FUNCTION(usb0),
747 UNIPHIER_PINMUX_FUNCTION(usb1),
748 UNIPHIER_PINMUX_FUNCTION(usb2),
749 UNIPHIER_PINMUX_FUNCTION(port),
750 UNIPHIER_PINMUX_FUNCTION(xirq),
751};
752
753static struct uniphier_pinctrl_socdata ph1_sld8_pindata = {
754 .groups = ph1_sld8_groups,
755 .groups_count = ARRAY_SIZE(ph1_sld8_groups),
756 .functions = ph1_sld8_functions,
757 .functions_count = ARRAY_SIZE(ph1_sld8_functions),
758 .mux_bits = 8,
759 .reg_stride = 4,
760 .load_pinctrl = false,
761};
762
763static struct pinctrl_desc ph1_sld8_pinctrl_desc = {
764 .name = DRIVER_NAME,
765 .pins = ph1_sld8_pins,
766 .npins = ARRAY_SIZE(ph1_sld8_pins),
767 .owner = THIS_MODULE,
768};
769
770static int ph1_sld8_pinctrl_probe(struct platform_device *pdev)
771{
772 return uniphier_pinctrl_probe(pdev, &ph1_sld8_pinctrl_desc,
773 &ph1_sld8_pindata);
774}
775
776static const struct of_device_id ph1_sld8_pinctrl_match[] = {
777 { .compatible = "socionext,ph1-sld8-pinctrl" },
778 { /* sentinel */ }
779};
780MODULE_DEVICE_TABLE(of, ph1_sld8_pinctrl_match);
781
782static struct platform_driver ph1_sld8_pinctrl_driver = {
783 .probe = ph1_sld8_pinctrl_probe,
784 .remove = uniphier_pinctrl_remove,
785 .driver = {
786 .name = DRIVER_NAME,
787 .of_match_table = ph1_sld8_pinctrl_match,
788 },
789};
790module_platform_driver(ph1_sld8_pinctrl_driver);
791
792MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>");
793MODULE_DESCRIPTION("UniPhier PH1-sLD8 pinctrl driver");
794MODULE_LICENSE("GPL");