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