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