Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0+
0002 //
0003 // Copyright (C) 2016-2017 Socionext Inc.
0004 //   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
0005 
0006 #include <linux/kernel.h>
0007 #include <linux/init.h>
0008 #include <linux/mod_devicetable.h>
0009 #include <linux/pinctrl/pinctrl.h>
0010 #include <linux/platform_device.h>
0011 
0012 #include "pinctrl-uniphier.h"
0013 
0014 static const struct pinctrl_pin_desc uniphier_ld11_pins[] = {
0015     UNIPHIER_PINCTRL_PIN(0, "XECS1", UNIPHIER_PIN_IECTRL_EXIST,
0016                  0, UNIPHIER_PIN_DRV_1BIT,
0017                  0, UNIPHIER_PIN_PULL_UP),
0018     UNIPHIER_PINCTRL_PIN(1, "ERXW", UNIPHIER_PIN_IECTRL_NONE,
0019                  1, UNIPHIER_PIN_DRV_1BIT,
0020                  1, UNIPHIER_PIN_PULL_UP),
0021     UNIPHIER_PINCTRL_PIN(2, "XERWE1", UNIPHIER_PIN_IECTRL_NONE,
0022                  2, UNIPHIER_PIN_DRV_1BIT,
0023                  2, UNIPHIER_PIN_PULL_UP),
0024     UNIPHIER_PINCTRL_PIN(3, "XNFWP", UNIPHIER_PIN_IECTRL_EXIST,
0025                  3, UNIPHIER_PIN_DRV_1BIT,
0026                  3, UNIPHIER_PIN_PULL_DOWN),
0027     UNIPHIER_PINCTRL_PIN(4, "XNFCE0", UNIPHIER_PIN_IECTRL_EXIST,
0028                  4, UNIPHIER_PIN_DRV_1BIT,
0029                  4, UNIPHIER_PIN_PULL_UP),
0030     UNIPHIER_PINCTRL_PIN(5, "NFRYBY0", UNIPHIER_PIN_IECTRL_EXIST,
0031                  5, UNIPHIER_PIN_DRV_1BIT,
0032                  5, UNIPHIER_PIN_PULL_UP),
0033     UNIPHIER_PINCTRL_PIN(6, "XNFRE", UNIPHIER_PIN_IECTRL_NONE,
0034                  6, UNIPHIER_PIN_DRV_1BIT,
0035                  6, UNIPHIER_PIN_PULL_UP),
0036     UNIPHIER_PINCTRL_PIN(7, "XNFWE", UNIPHIER_PIN_IECTRL_NONE,
0037                  7, UNIPHIER_PIN_DRV_1BIT,
0038                  7, UNIPHIER_PIN_PULL_UP),
0039     UNIPHIER_PINCTRL_PIN(8, "NFALE", UNIPHIER_PIN_IECTRL_NONE,
0040                  8, UNIPHIER_PIN_DRV_1BIT,
0041                  8, UNIPHIER_PIN_PULL_UP),
0042     UNIPHIER_PINCTRL_PIN(9, "NFCLE", UNIPHIER_PIN_IECTRL_NONE,
0043                  9, UNIPHIER_PIN_DRV_1BIT,
0044                  9, UNIPHIER_PIN_PULL_UP),
0045     UNIPHIER_PINCTRL_PIN(10, "NFD0", UNIPHIER_PIN_IECTRL_EXIST,
0046                  10, UNIPHIER_PIN_DRV_1BIT,
0047                  10, UNIPHIER_PIN_PULL_UP),
0048     UNIPHIER_PINCTRL_PIN(11, "NFD1", UNIPHIER_PIN_IECTRL_EXIST,
0049                  11, UNIPHIER_PIN_DRV_1BIT,
0050                  11, UNIPHIER_PIN_PULL_UP),
0051     UNIPHIER_PINCTRL_PIN(12, "NFD2", UNIPHIER_PIN_IECTRL_EXIST,
0052                  12, UNIPHIER_PIN_DRV_1BIT,
0053                  12, UNIPHIER_PIN_PULL_UP),
0054     UNIPHIER_PINCTRL_PIN(13, "NFD3", UNIPHIER_PIN_IECTRL_EXIST,
0055                  13, UNIPHIER_PIN_DRV_1BIT,
0056                  13, UNIPHIER_PIN_PULL_UP),
0057     UNIPHIER_PINCTRL_PIN(14, "NFD4", UNIPHIER_PIN_IECTRL_EXIST,
0058                  14, UNIPHIER_PIN_DRV_1BIT,
0059                  14, UNIPHIER_PIN_PULL_UP),
0060     UNIPHIER_PINCTRL_PIN(15, "NFD5", UNIPHIER_PIN_IECTRL_EXIST,
0061                  15, UNIPHIER_PIN_DRV_1BIT,
0062                  15, UNIPHIER_PIN_PULL_UP),
0063     UNIPHIER_PINCTRL_PIN(16, "NFD6", UNIPHIER_PIN_IECTRL_EXIST,
0064                  16, UNIPHIER_PIN_DRV_1BIT,
0065                  16, UNIPHIER_PIN_PULL_UP),
0066     UNIPHIER_PINCTRL_PIN(17, "NFD7", UNIPHIER_PIN_IECTRL_EXIST,
0067                  17, UNIPHIER_PIN_DRV_1BIT,
0068                  17, UNIPHIER_PIN_PULL_UP),
0069     UNIPHIER_PINCTRL_PIN(18, "XERST", UNIPHIER_PIN_IECTRL_EXIST,
0070                  0, UNIPHIER_PIN_DRV_2BIT,
0071                  18, UNIPHIER_PIN_PULL_UP),
0072     UNIPHIER_PINCTRL_PIN(19, "MMCCLK", UNIPHIER_PIN_IECTRL_EXIST,
0073                  1, UNIPHIER_PIN_DRV_2BIT,
0074                  19, UNIPHIER_PIN_PULL_UP),
0075     UNIPHIER_PINCTRL_PIN(20, "MMCCMD", UNIPHIER_PIN_IECTRL_EXIST,
0076                  2, UNIPHIER_PIN_DRV_2BIT,
0077                  20, UNIPHIER_PIN_PULL_UP),
0078     UNIPHIER_PINCTRL_PIN(21, "MMCDS", UNIPHIER_PIN_IECTRL_EXIST,
0079                  3, UNIPHIER_PIN_DRV_2BIT,
0080                  21, UNIPHIER_PIN_PULL_UP),
0081     UNIPHIER_PINCTRL_PIN(22, "MMCDAT0", UNIPHIER_PIN_IECTRL_EXIST,
0082                  4, UNIPHIER_PIN_DRV_2BIT,
0083                  22, UNIPHIER_PIN_PULL_UP),
0084     UNIPHIER_PINCTRL_PIN(23, "MMCDAT1", UNIPHIER_PIN_IECTRL_EXIST,
0085                  5, UNIPHIER_PIN_DRV_2BIT,
0086                  23, UNIPHIER_PIN_PULL_UP),
0087     UNIPHIER_PINCTRL_PIN(24, "MMCDAT2", UNIPHIER_PIN_IECTRL_EXIST,
0088                  6, UNIPHIER_PIN_DRV_2BIT,
0089                  24, UNIPHIER_PIN_PULL_UP),
0090     UNIPHIER_PINCTRL_PIN(25, "MMCDAT3", UNIPHIER_PIN_IECTRL_EXIST,
0091                  7, UNIPHIER_PIN_DRV_2BIT,
0092                  25, UNIPHIER_PIN_PULL_UP),
0093     UNIPHIER_PINCTRL_PIN(26, "MMCDAT4", UNIPHIER_PIN_IECTRL_EXIST,
0094                  8, UNIPHIER_PIN_DRV_2BIT,
0095                  26, UNIPHIER_PIN_PULL_UP),
0096     UNIPHIER_PINCTRL_PIN(27, "MMCDAT5", UNIPHIER_PIN_IECTRL_EXIST,
0097                  9, UNIPHIER_PIN_DRV_2BIT,
0098                  27, UNIPHIER_PIN_PULL_UP),
0099     UNIPHIER_PINCTRL_PIN(28, "MMCDAT6", UNIPHIER_PIN_IECTRL_EXIST,
0100                  10, UNIPHIER_PIN_DRV_2BIT,
0101                  28, UNIPHIER_PIN_PULL_UP),
0102     UNIPHIER_PINCTRL_PIN(29, "MMCDAT7", UNIPHIER_PIN_IECTRL_EXIST,
0103                  11, UNIPHIER_PIN_DRV_2BIT,
0104                  29, UNIPHIER_PIN_PULL_UP),
0105     UNIPHIER_PINCTRL_PIN(46, "USB0VBUS", UNIPHIER_PIN_IECTRL_EXIST,
0106                  46, UNIPHIER_PIN_DRV_1BIT,
0107                  46, UNIPHIER_PIN_PULL_DOWN),
0108     UNIPHIER_PINCTRL_PIN(47, "USB0OD", UNIPHIER_PIN_IECTRL_NONE,
0109                  47, UNIPHIER_PIN_DRV_1BIT,
0110                  47, UNIPHIER_PIN_PULL_UP),
0111     UNIPHIER_PINCTRL_PIN(48, "USB1VBUS", UNIPHIER_PIN_IECTRL_EXIST,
0112                  48, UNIPHIER_PIN_DRV_1BIT,
0113                  48, UNIPHIER_PIN_PULL_DOWN),
0114     UNIPHIER_PINCTRL_PIN(49, "USB1OD", UNIPHIER_PIN_IECTRL_EXIST,
0115                  49, UNIPHIER_PIN_DRV_1BIT,
0116                  49, UNIPHIER_PIN_PULL_UP),
0117     UNIPHIER_PINCTRL_PIN(50, "USB2VBUS", UNIPHIER_PIN_IECTRL_EXIST,
0118                  50, UNIPHIER_PIN_DRV_1BIT,
0119                  50, UNIPHIER_PIN_PULL_DOWN),
0120     UNIPHIER_PINCTRL_PIN(51, "USB2OD", UNIPHIER_PIN_IECTRL_EXIST,
0121                  51, UNIPHIER_PIN_DRV_1BIT,
0122                  51, UNIPHIER_PIN_PULL_UP),
0123     UNIPHIER_PINCTRL_PIN(54, "TXD0", UNIPHIER_PIN_IECTRL_EXIST,
0124                  54, UNIPHIER_PIN_DRV_1BIT,
0125                  54, UNIPHIER_PIN_PULL_UP),
0126     UNIPHIER_PINCTRL_PIN(55, "RXD0", UNIPHIER_PIN_IECTRL_EXIST,
0127                  55, UNIPHIER_PIN_DRV_1BIT,
0128                  55, UNIPHIER_PIN_PULL_UP),
0129     UNIPHIER_PINCTRL_PIN(56, "SPISYNC0", UNIPHIER_PIN_IECTRL_EXIST,
0130                  56, UNIPHIER_PIN_DRV_1BIT,
0131                  56, UNIPHIER_PIN_PULL_DOWN),
0132     UNIPHIER_PINCTRL_PIN(57, "SPISCLK0", UNIPHIER_PIN_IECTRL_EXIST,
0133                  57, UNIPHIER_PIN_DRV_1BIT,
0134                  57, UNIPHIER_PIN_PULL_DOWN),
0135     UNIPHIER_PINCTRL_PIN(58, "SPITXD0", UNIPHIER_PIN_IECTRL_EXIST,
0136                  58, UNIPHIER_PIN_DRV_1BIT,
0137                  58, UNIPHIER_PIN_PULL_DOWN),
0138     UNIPHIER_PINCTRL_PIN(59, "SPIRXD0", UNIPHIER_PIN_IECTRL_EXIST,
0139                  59, UNIPHIER_PIN_DRV_1BIT,
0140                  59, UNIPHIER_PIN_PULL_DOWN),
0141     UNIPHIER_PINCTRL_PIN(60, "AGCI", UNIPHIER_PIN_IECTRL_EXIST,
0142                  60, UNIPHIER_PIN_DRV_1BIT,
0143                  60, UNIPHIER_PIN_PULL_DOWN),
0144     UNIPHIER_PINCTRL_PIN(61, "DMDSDA0", UNIPHIER_PIN_IECTRL_EXIST,
0145                  -1, UNIPHIER_PIN_DRV_FIXED4,
0146                  -1, UNIPHIER_PIN_PULL_NONE),
0147     UNIPHIER_PINCTRL_PIN(62, "DMDSCL0", UNIPHIER_PIN_IECTRL_EXIST,
0148                  -1, UNIPHIER_PIN_DRV_FIXED4,
0149                  -1, UNIPHIER_PIN_PULL_NONE),
0150     UNIPHIER_PINCTRL_PIN(63, "SDA0", UNIPHIER_PIN_IECTRL_EXIST,
0151                  -1, UNIPHIER_PIN_DRV_FIXED4,
0152                  -1, UNIPHIER_PIN_PULL_NONE),
0153     UNIPHIER_PINCTRL_PIN(64, "SCL0", UNIPHIER_PIN_IECTRL_EXIST,
0154                  -1, UNIPHIER_PIN_DRV_FIXED4,
0155                  -1, UNIPHIER_PIN_PULL_NONE),
0156     UNIPHIER_PINCTRL_PIN(65, "SDA1", UNIPHIER_PIN_IECTRL_EXIST,
0157                  -1, UNIPHIER_PIN_DRV_FIXED4,
0158                  -1, UNIPHIER_PIN_PULL_NONE),
0159     UNIPHIER_PINCTRL_PIN(66, "SCL1", UNIPHIER_PIN_IECTRL_EXIST,
0160                  -1, UNIPHIER_PIN_DRV_FIXED4,
0161                  -1, UNIPHIER_PIN_PULL_NONE),
0162     UNIPHIER_PINCTRL_PIN(67, "HIN", UNIPHIER_PIN_IECTRL_EXIST,
0163                  -1, UNIPHIER_PIN_DRV_FIXED5,
0164                  -1, UNIPHIER_PIN_PULL_NONE),
0165     UNIPHIER_PINCTRL_PIN(68, "VIN", UNIPHIER_PIN_IECTRL_EXIST,
0166                  -1, UNIPHIER_PIN_DRV_FIXED5,
0167                  -1, UNIPHIER_PIN_PULL_NONE),
0168     UNIPHIER_PINCTRL_PIN(69, "PCA00", UNIPHIER_PIN_IECTRL_EXIST,
0169                  69, UNIPHIER_PIN_DRV_1BIT,
0170                  69, UNIPHIER_PIN_PULL_DOWN),
0171     UNIPHIER_PINCTRL_PIN(70, "PCA01", UNIPHIER_PIN_IECTRL_EXIST,
0172                  70, UNIPHIER_PIN_DRV_1BIT,
0173                  70, UNIPHIER_PIN_PULL_DOWN),
0174     UNIPHIER_PINCTRL_PIN(71, "PCA02", UNIPHIER_PIN_IECTRL_EXIST,
0175                  71, UNIPHIER_PIN_DRV_1BIT,
0176                  71, UNIPHIER_PIN_PULL_DOWN),
0177     UNIPHIER_PINCTRL_PIN(72, "PCA03", UNIPHIER_PIN_IECTRL_EXIST,
0178                  72, UNIPHIER_PIN_DRV_1BIT,
0179                  72, UNIPHIER_PIN_PULL_DOWN),
0180     UNIPHIER_PINCTRL_PIN(73, "PCA04", UNIPHIER_PIN_IECTRL_EXIST,
0181                  73, UNIPHIER_PIN_DRV_1BIT,
0182                  73, UNIPHIER_PIN_PULL_DOWN),
0183     UNIPHIER_PINCTRL_PIN(74, "PCA05", UNIPHIER_PIN_IECTRL_EXIST,
0184                  74, UNIPHIER_PIN_DRV_1BIT,
0185                  74, UNIPHIER_PIN_PULL_DOWN),
0186     UNIPHIER_PINCTRL_PIN(75, "PCA06", UNIPHIER_PIN_IECTRL_EXIST,
0187                  75, UNIPHIER_PIN_DRV_1BIT,
0188                  75, UNIPHIER_PIN_PULL_DOWN),
0189     UNIPHIER_PINCTRL_PIN(76, "PCA07", UNIPHIER_PIN_IECTRL_EXIST,
0190                  76, UNIPHIER_PIN_DRV_1BIT,
0191                  76, UNIPHIER_PIN_PULL_DOWN),
0192     UNIPHIER_PINCTRL_PIN(77, "PCA08", UNIPHIER_PIN_IECTRL_EXIST,
0193                  77, UNIPHIER_PIN_DRV_1BIT,
0194                  77, UNIPHIER_PIN_PULL_DOWN),
0195     UNIPHIER_PINCTRL_PIN(78, "PCA09", UNIPHIER_PIN_IECTRL_EXIST,
0196                  78, UNIPHIER_PIN_DRV_1BIT,
0197                  78, UNIPHIER_PIN_PULL_DOWN),
0198     UNIPHIER_PINCTRL_PIN(79, "PCA10", UNIPHIER_PIN_IECTRL_EXIST,
0199                  79, UNIPHIER_PIN_DRV_1BIT,
0200                  79, UNIPHIER_PIN_PULL_DOWN),
0201     UNIPHIER_PINCTRL_PIN(80, "PCA11", UNIPHIER_PIN_IECTRL_EXIST,
0202                  80, UNIPHIER_PIN_DRV_1BIT,
0203                  80, UNIPHIER_PIN_PULL_DOWN),
0204     UNIPHIER_PINCTRL_PIN(81, "PCA12", UNIPHIER_PIN_IECTRL_EXIST,
0205                  81, UNIPHIER_PIN_DRV_1BIT,
0206                  81, UNIPHIER_PIN_PULL_DOWN),
0207     UNIPHIER_PINCTRL_PIN(82, "PCA13", UNIPHIER_PIN_IECTRL_EXIST,
0208                  82, UNIPHIER_PIN_DRV_1BIT,
0209                  82, UNIPHIER_PIN_PULL_DOWN),
0210     UNIPHIER_PINCTRL_PIN(83, "PCA14", UNIPHIER_PIN_IECTRL_EXIST,
0211                  83, UNIPHIER_PIN_DRV_1BIT,
0212                  83, UNIPHIER_PIN_PULL_DOWN),
0213     UNIPHIER_PINCTRL_PIN(84, "PC0READY", UNIPHIER_PIN_IECTRL_EXIST,
0214                  84, UNIPHIER_PIN_DRV_1BIT,
0215                  84, UNIPHIER_PIN_PULL_DOWN),
0216     UNIPHIER_PINCTRL_PIN(85, "PC0CD1", UNIPHIER_PIN_IECTRL_EXIST,
0217                  85, UNIPHIER_PIN_DRV_1BIT,
0218                  85, UNIPHIER_PIN_PULL_DOWN),
0219     UNIPHIER_PINCTRL_PIN(86, "PC0CD2", UNIPHIER_PIN_IECTRL_EXIST,
0220                  86, UNIPHIER_PIN_DRV_1BIT,
0221                  86, UNIPHIER_PIN_PULL_DOWN),
0222     UNIPHIER_PINCTRL_PIN(87, "PC0WAIT", UNIPHIER_PIN_IECTRL_EXIST,
0223                  87, UNIPHIER_PIN_DRV_1BIT,
0224                  87, UNIPHIER_PIN_PULL_DOWN),
0225     UNIPHIER_PINCTRL_PIN(88, "PC0RESET", UNIPHIER_PIN_IECTRL_EXIST,
0226                  88, UNIPHIER_PIN_DRV_1BIT,
0227                  88, UNIPHIER_PIN_PULL_DOWN),
0228     UNIPHIER_PINCTRL_PIN(89, "PC0CE1", UNIPHIER_PIN_IECTRL_EXIST,
0229                  89, UNIPHIER_PIN_DRV_1BIT,
0230                  89, UNIPHIER_PIN_PULL_DOWN),
0231     UNIPHIER_PINCTRL_PIN(90, "PC0WE", UNIPHIER_PIN_IECTRL_EXIST,
0232                  90, UNIPHIER_PIN_DRV_1BIT,
0233                  90, UNIPHIER_PIN_PULL_DOWN),
0234     UNIPHIER_PINCTRL_PIN(91, "PC0OE", UNIPHIER_PIN_IECTRL_EXIST,
0235                  91, UNIPHIER_PIN_DRV_1BIT,
0236                  91, UNIPHIER_PIN_PULL_DOWN),
0237     UNIPHIER_PINCTRL_PIN(92, "PC0IOWR", UNIPHIER_PIN_IECTRL_EXIST,
0238                  92, UNIPHIER_PIN_DRV_1BIT,
0239                  92, UNIPHIER_PIN_PULL_DOWN),
0240     UNIPHIER_PINCTRL_PIN(93, "PC0IORD", UNIPHIER_PIN_IECTRL_EXIST,
0241                  93, UNIPHIER_PIN_DRV_1BIT,
0242                  93, UNIPHIER_PIN_PULL_DOWN),
0243     UNIPHIER_PINCTRL_PIN(94, "PCD00", UNIPHIER_PIN_IECTRL_EXIST,
0244                  94, UNIPHIER_PIN_DRV_1BIT,
0245                  94, UNIPHIER_PIN_PULL_DOWN),
0246     UNIPHIER_PINCTRL_PIN(95, "PCD01", UNIPHIER_PIN_IECTRL_EXIST,
0247                  95, UNIPHIER_PIN_DRV_1BIT,
0248                  95, UNIPHIER_PIN_PULL_DOWN),
0249     UNIPHIER_PINCTRL_PIN(96, "PCD02", UNIPHIER_PIN_IECTRL_EXIST,
0250                  96, UNIPHIER_PIN_DRV_1BIT,
0251                  96, UNIPHIER_PIN_PULL_DOWN),
0252     UNIPHIER_PINCTRL_PIN(97, "PCD03", UNIPHIER_PIN_IECTRL_EXIST,
0253                  97, UNIPHIER_PIN_DRV_1BIT,
0254                  97, UNIPHIER_PIN_PULL_DOWN),
0255     UNIPHIER_PINCTRL_PIN(98, "PCD04", UNIPHIER_PIN_IECTRL_EXIST,
0256                  98, UNIPHIER_PIN_DRV_1BIT,
0257                  98, UNIPHIER_PIN_PULL_DOWN),
0258     UNIPHIER_PINCTRL_PIN(99, "PCD05", UNIPHIER_PIN_IECTRL_EXIST,
0259                  99, UNIPHIER_PIN_DRV_1BIT,
0260                  99, UNIPHIER_PIN_PULL_DOWN),
0261     UNIPHIER_PINCTRL_PIN(100, "PCD06", UNIPHIER_PIN_IECTRL_EXIST,
0262                  100, UNIPHIER_PIN_DRV_1BIT,
0263                  100, UNIPHIER_PIN_PULL_DOWN),
0264     UNIPHIER_PINCTRL_PIN(101, "PCD07", UNIPHIER_PIN_IECTRL_EXIST,
0265                  101, UNIPHIER_PIN_DRV_1BIT,
0266                  101, UNIPHIER_PIN_PULL_DOWN),
0267     UNIPHIER_PINCTRL_PIN(102, "HS0BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
0268                  102, UNIPHIER_PIN_DRV_1BIT,
0269                  102, UNIPHIER_PIN_PULL_DOWN),
0270     UNIPHIER_PINCTRL_PIN(103, "HS0SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
0271                  103, UNIPHIER_PIN_DRV_1BIT,
0272                  103, UNIPHIER_PIN_PULL_DOWN),
0273     UNIPHIER_PINCTRL_PIN(104, "HS0VALIN", UNIPHIER_PIN_IECTRL_EXIST,
0274                  104, UNIPHIER_PIN_DRV_1BIT,
0275                  104, UNIPHIER_PIN_PULL_DOWN),
0276     UNIPHIER_PINCTRL_PIN(105, "HS0DIN0", UNIPHIER_PIN_IECTRL_EXIST,
0277                  105, UNIPHIER_PIN_DRV_1BIT,
0278                  105, UNIPHIER_PIN_PULL_DOWN),
0279     UNIPHIER_PINCTRL_PIN(106, "HS0DIN1", UNIPHIER_PIN_IECTRL_EXIST,
0280                  106, UNIPHIER_PIN_DRV_1BIT,
0281                  106, UNIPHIER_PIN_PULL_DOWN),
0282     UNIPHIER_PINCTRL_PIN(107, "HS0DIN2", UNIPHIER_PIN_IECTRL_EXIST,
0283                  107, UNIPHIER_PIN_DRV_1BIT,
0284                  107, UNIPHIER_PIN_PULL_DOWN),
0285     UNIPHIER_PINCTRL_PIN(108, "HS0DIN3", UNIPHIER_PIN_IECTRL_EXIST,
0286                  108, UNIPHIER_PIN_DRV_1BIT,
0287                  108, UNIPHIER_PIN_PULL_DOWN),
0288     UNIPHIER_PINCTRL_PIN(109, "HS0DIN4", UNIPHIER_PIN_IECTRL_EXIST,
0289                  109, UNIPHIER_PIN_DRV_1BIT,
0290                  109, UNIPHIER_PIN_PULL_DOWN),
0291     UNIPHIER_PINCTRL_PIN(110, "HS0DIN5", UNIPHIER_PIN_IECTRL_EXIST,
0292                  110, UNIPHIER_PIN_DRV_1BIT,
0293                  110, UNIPHIER_PIN_PULL_DOWN),
0294     UNIPHIER_PINCTRL_PIN(111, "HS0DIN6", UNIPHIER_PIN_IECTRL_EXIST,
0295                  111, UNIPHIER_PIN_DRV_1BIT,
0296                  111, UNIPHIER_PIN_PULL_DOWN),
0297     UNIPHIER_PINCTRL_PIN(112, "HS0DIN7", UNIPHIER_PIN_IECTRL_EXIST,
0298                  112, UNIPHIER_PIN_DRV_1BIT,
0299                  112, UNIPHIER_PIN_PULL_DOWN),
0300     UNIPHIER_PINCTRL_PIN(113, "HS0BCLKOUT", UNIPHIER_PIN_IECTRL_EXIST,
0301                  113, UNIPHIER_PIN_DRV_1BIT,
0302                  113, UNIPHIER_PIN_PULL_DOWN),
0303     UNIPHIER_PINCTRL_PIN(114, "HS0SYNCOUT", UNIPHIER_PIN_IECTRL_EXIST,
0304                  114, UNIPHIER_PIN_DRV_1BIT,
0305                  114, UNIPHIER_PIN_PULL_DOWN),
0306     UNIPHIER_PINCTRL_PIN(115, "HS0VALOUT", UNIPHIER_PIN_IECTRL_EXIST,
0307                  115, UNIPHIER_PIN_DRV_1BIT,
0308                  115, UNIPHIER_PIN_PULL_DOWN),
0309     UNIPHIER_PINCTRL_PIN(116, "HS0DOUT0", UNIPHIER_PIN_IECTRL_EXIST,
0310                  116, UNIPHIER_PIN_DRV_1BIT,
0311                  116, UNIPHIER_PIN_PULL_DOWN),
0312     UNIPHIER_PINCTRL_PIN(117, "HS0DOUT1", UNIPHIER_PIN_IECTRL_EXIST,
0313                  117, UNIPHIER_PIN_DRV_1BIT,
0314                  117, UNIPHIER_PIN_PULL_DOWN),
0315     UNIPHIER_PINCTRL_PIN(118, "HS0DOUT2", UNIPHIER_PIN_IECTRL_EXIST,
0316                  118, UNIPHIER_PIN_DRV_1BIT,
0317                  118, UNIPHIER_PIN_PULL_DOWN),
0318     UNIPHIER_PINCTRL_PIN(119, "HS0DOUT3", UNIPHIER_PIN_IECTRL_EXIST,
0319                  119, UNIPHIER_PIN_DRV_1BIT,
0320                  119, UNIPHIER_PIN_PULL_DOWN),
0321     UNIPHIER_PINCTRL_PIN(120, "HS0DOUT4", UNIPHIER_PIN_IECTRL_EXIST,
0322                  120, UNIPHIER_PIN_DRV_1BIT,
0323                  120, UNIPHIER_PIN_PULL_DOWN),
0324     UNIPHIER_PINCTRL_PIN(121, "HS0DOUT5", UNIPHIER_PIN_IECTRL_EXIST,
0325                  121, UNIPHIER_PIN_DRV_1BIT,
0326                  121, UNIPHIER_PIN_PULL_DOWN),
0327     UNIPHIER_PINCTRL_PIN(122, "HS0DOUT6", UNIPHIER_PIN_IECTRL_EXIST,
0328                  122, UNIPHIER_PIN_DRV_1BIT,
0329                  122, UNIPHIER_PIN_PULL_DOWN),
0330     UNIPHIER_PINCTRL_PIN(123, "HS0DOUT7", UNIPHIER_PIN_IECTRL_EXIST,
0331                  123, UNIPHIER_PIN_DRV_1BIT,
0332                  123, UNIPHIER_PIN_PULL_DOWN),
0333     UNIPHIER_PINCTRL_PIN(124, "HS1BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
0334                  124, UNIPHIER_PIN_DRV_1BIT,
0335                  124, UNIPHIER_PIN_PULL_DOWN),
0336     UNIPHIER_PINCTRL_PIN(125, "HS1SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
0337                  125, UNIPHIER_PIN_DRV_1BIT,
0338                  125, UNIPHIER_PIN_PULL_DOWN),
0339     UNIPHIER_PINCTRL_PIN(126, "HS1VALIN", UNIPHIER_PIN_IECTRL_EXIST,
0340                  126, UNIPHIER_PIN_DRV_1BIT,
0341                  126, UNIPHIER_PIN_PULL_DOWN),
0342     UNIPHIER_PINCTRL_PIN(127, "HS1DIN0", UNIPHIER_PIN_IECTRL_EXIST,
0343                  127, UNIPHIER_PIN_DRV_1BIT,
0344                  127, UNIPHIER_PIN_PULL_DOWN),
0345     UNIPHIER_PINCTRL_PIN(128, "HS1DIN1", UNIPHIER_PIN_IECTRL_EXIST,
0346                  128, UNIPHIER_PIN_DRV_1BIT,
0347                  128, UNIPHIER_PIN_PULL_DOWN),
0348     UNIPHIER_PINCTRL_PIN(129, "HS1DIN2", UNIPHIER_PIN_IECTRL_EXIST,
0349                  129, UNIPHIER_PIN_DRV_1BIT,
0350                  129, UNIPHIER_PIN_PULL_DOWN),
0351     UNIPHIER_PINCTRL_PIN(130, "HS1DIN3", UNIPHIER_PIN_IECTRL_EXIST,
0352                  130, UNIPHIER_PIN_DRV_1BIT,
0353                  130, UNIPHIER_PIN_PULL_DOWN),
0354     UNIPHIER_PINCTRL_PIN(131, "HS1DIN4", UNIPHIER_PIN_IECTRL_EXIST,
0355                  131, UNIPHIER_PIN_DRV_1BIT,
0356                  131, UNIPHIER_PIN_PULL_DOWN),
0357     UNIPHIER_PINCTRL_PIN(132, "HS1DIN5", UNIPHIER_PIN_IECTRL_EXIST,
0358                  132, UNIPHIER_PIN_DRV_1BIT,
0359                  132, UNIPHIER_PIN_PULL_DOWN),
0360     UNIPHIER_PINCTRL_PIN(133, "HS1DIN6", UNIPHIER_PIN_IECTRL_EXIST,
0361                  133, UNIPHIER_PIN_DRV_1BIT,
0362                  133, UNIPHIER_PIN_PULL_DOWN),
0363     UNIPHIER_PINCTRL_PIN(134, "HS1DIN7", UNIPHIER_PIN_IECTRL_EXIST,
0364                  134, UNIPHIER_PIN_DRV_1BIT,
0365                  134, UNIPHIER_PIN_PULL_DOWN),
0366     UNIPHIER_PINCTRL_PIN(135, "AO1IEC", UNIPHIER_PIN_IECTRL_EXIST,
0367                  135, UNIPHIER_PIN_DRV_1BIT,
0368                  135, UNIPHIER_PIN_PULL_DOWN),
0369     UNIPHIER_PINCTRL_PIN(136, "AO1ARC", UNIPHIER_PIN_IECTRL_EXIST,
0370                  136, UNIPHIER_PIN_DRV_1BIT,
0371                  136, UNIPHIER_PIN_PULL_DOWN),
0372     UNIPHIER_PINCTRL_PIN(137, "AO1DACCK", UNIPHIER_PIN_IECTRL_EXIST,
0373                  137, UNIPHIER_PIN_DRV_1BIT,
0374                  137, UNIPHIER_PIN_PULL_DOWN),
0375     UNIPHIER_PINCTRL_PIN(138, "AO1BCK", UNIPHIER_PIN_IECTRL_EXIST,
0376                  138, UNIPHIER_PIN_DRV_1BIT,
0377                  138, UNIPHIER_PIN_PULL_DOWN),
0378     UNIPHIER_PINCTRL_PIN(139, "AO1LRCK", UNIPHIER_PIN_IECTRL_EXIST,
0379                  139, UNIPHIER_PIN_DRV_1BIT,
0380                  139, UNIPHIER_PIN_PULL_DOWN),
0381     UNIPHIER_PINCTRL_PIN(140, "AO1D0", UNIPHIER_PIN_IECTRL_EXIST,
0382                  140, UNIPHIER_PIN_DRV_1BIT,
0383                  140, UNIPHIER_PIN_PULL_DOWN),
0384     UNIPHIER_PINCTRL_PIN(141, "AO1D1", UNIPHIER_PIN_IECTRL_EXIST,
0385                  141, UNIPHIER_PIN_DRV_1BIT,
0386                  141, UNIPHIER_PIN_PULL_DOWN),
0387     UNIPHIER_PINCTRL_PIN(142, "AO1D2", UNIPHIER_PIN_IECTRL_EXIST,
0388                  142, UNIPHIER_PIN_DRV_1BIT,
0389                  142, UNIPHIER_PIN_PULL_DOWN),
0390     UNIPHIER_PINCTRL_PIN(143, "XIRQ9", UNIPHIER_PIN_IECTRL_EXIST,
0391                  143, UNIPHIER_PIN_DRV_1BIT,
0392                  143, UNIPHIER_PIN_PULL_DOWN),
0393     UNIPHIER_PINCTRL_PIN(144, "XIRQ10", UNIPHIER_PIN_IECTRL_EXIST,
0394                  144, UNIPHIER_PIN_DRV_1BIT,
0395                  144, UNIPHIER_PIN_PULL_DOWN),
0396     UNIPHIER_PINCTRL_PIN(145, "XIRQ11", UNIPHIER_PIN_IECTRL_EXIST,
0397                  145, UNIPHIER_PIN_DRV_1BIT,
0398                  145, UNIPHIER_PIN_PULL_DOWN),
0399     UNIPHIER_PINCTRL_PIN(146, "XIRQ13", UNIPHIER_PIN_IECTRL_EXIST,
0400                  146, UNIPHIER_PIN_DRV_1BIT,
0401                  146, UNIPHIER_PIN_PULL_DOWN),
0402     UNIPHIER_PINCTRL_PIN(147, "PWMA", UNIPHIER_PIN_IECTRL_EXIST,
0403                  147, UNIPHIER_PIN_DRV_1BIT,
0404                  147, UNIPHIER_PIN_PULL_DOWN),
0405     UNIPHIER_PINCTRL_PIN(148, "LR_GOUT", UNIPHIER_PIN_IECTRL_EXIST,
0406                  148, UNIPHIER_PIN_DRV_1BIT,
0407                  148, UNIPHIER_PIN_PULL_DOWN),
0408     UNIPHIER_PINCTRL_PIN(149, "XIRQ0", UNIPHIER_PIN_IECTRL_EXIST,
0409                  149, UNIPHIER_PIN_DRV_1BIT,
0410                  149, UNIPHIER_PIN_PULL_DOWN),
0411     UNIPHIER_PINCTRL_PIN(150, "XIRQ1", UNIPHIER_PIN_IECTRL_EXIST,
0412                  150, UNIPHIER_PIN_DRV_1BIT,
0413                  150, UNIPHIER_PIN_PULL_DOWN),
0414     UNIPHIER_PINCTRL_PIN(151, "XIRQ2", UNIPHIER_PIN_IECTRL_EXIST,
0415                  151, UNIPHIER_PIN_DRV_1BIT,
0416                  151, UNIPHIER_PIN_PULL_DOWN),
0417     UNIPHIER_PINCTRL_PIN(152, "XIRQ3", UNIPHIER_PIN_IECTRL_EXIST,
0418                  152, UNIPHIER_PIN_DRV_1BIT,
0419                  152, UNIPHIER_PIN_PULL_DOWN),
0420     UNIPHIER_PINCTRL_PIN(153, "XIRQ4", UNIPHIER_PIN_IECTRL_EXIST,
0421                  153, UNIPHIER_PIN_DRV_1BIT,
0422                  153, UNIPHIER_PIN_PULL_DOWN),
0423     UNIPHIER_PINCTRL_PIN(154, "XIRQ5", UNIPHIER_PIN_IECTRL_EXIST,
0424                  154, UNIPHIER_PIN_DRV_1BIT,
0425                  154, UNIPHIER_PIN_PULL_DOWN),
0426     UNIPHIER_PINCTRL_PIN(155, "XIRQ6", UNIPHIER_PIN_IECTRL_EXIST,
0427                  155, UNIPHIER_PIN_DRV_1BIT,
0428                  155, UNIPHIER_PIN_PULL_DOWN),
0429     UNIPHIER_PINCTRL_PIN(156, "XIRQ7", UNIPHIER_PIN_IECTRL_EXIST,
0430                  156, UNIPHIER_PIN_DRV_1BIT,
0431                  156, UNIPHIER_PIN_PULL_DOWN),
0432     UNIPHIER_PINCTRL_PIN(157, "XIRQ8", UNIPHIER_PIN_IECTRL_EXIST,
0433                  157, UNIPHIER_PIN_DRV_1BIT,
0434                  157, UNIPHIER_PIN_PULL_DOWN),
0435     UNIPHIER_PINCTRL_PIN(158, "AGCBS", UNIPHIER_PIN_IECTRL_EXIST,
0436                  158, UNIPHIER_PIN_DRV_1BIT,
0437                  158, UNIPHIER_PIN_PULL_DOWN),
0438     UNIPHIER_PINCTRL_PIN(159, "XIRQ21", UNIPHIER_PIN_IECTRL_EXIST,
0439                  159, UNIPHIER_PIN_DRV_1BIT,
0440                  159, UNIPHIER_PIN_PULL_DOWN),
0441     UNIPHIER_PINCTRL_PIN(160, "XIRQ22", UNIPHIER_PIN_IECTRL_EXIST,
0442                  160, UNIPHIER_PIN_DRV_1BIT,
0443                  160, UNIPHIER_PIN_PULL_DOWN),
0444     UNIPHIER_PINCTRL_PIN(161, "XIRQ23", UNIPHIER_PIN_IECTRL_EXIST,
0445                  161, UNIPHIER_PIN_DRV_1BIT,
0446                  161, UNIPHIER_PIN_PULL_DOWN),
0447     UNIPHIER_PINCTRL_PIN(162, "CH2CLK", UNIPHIER_PIN_IECTRL_EXIST,
0448                  162, UNIPHIER_PIN_DRV_1BIT,
0449                  162, UNIPHIER_PIN_PULL_DOWN),
0450     UNIPHIER_PINCTRL_PIN(163, "CH2PSYNC", UNIPHIER_PIN_IECTRL_EXIST,
0451                  163, UNIPHIER_PIN_DRV_1BIT,
0452                  163, UNIPHIER_PIN_PULL_DOWN),
0453     UNIPHIER_PINCTRL_PIN(164, "CH2VAL", UNIPHIER_PIN_IECTRL_EXIST,
0454                  164, UNIPHIER_PIN_DRV_1BIT,
0455                  164, UNIPHIER_PIN_PULL_DOWN),
0456     UNIPHIER_PINCTRL_PIN(165, "CH2DATA", UNIPHIER_PIN_IECTRL_EXIST,
0457                  165, UNIPHIER_PIN_DRV_1BIT,
0458                  165, UNIPHIER_PIN_PULL_DOWN),
0459     UNIPHIER_PINCTRL_PIN(166, "CK25O", UNIPHIER_PIN_IECTRL_EXIST,
0460                  166, UNIPHIER_PIN_DRV_1BIT,
0461                  166, UNIPHIER_PIN_PULL_DOWN),
0462 };
0463 
0464 static const unsigned ain1_pins[] = {151, 152, 153, 154};
0465 static const int ain1_muxvals[] = {4, 4, 4, 4};
0466 static const unsigned ain1_dat2_pins[] = {155};
0467 static const int ain1_dat2_muxvals[] = {4};
0468 static const unsigned ain1_dat4_pins[] = {156, 157};
0469 static const int ain1_dat4_muxvals[] = {4, 4};
0470 static const unsigned aout1_pins[] = {137, 138, 139, 140};
0471 static const int aout1_muxvals[] = {0, 0, 0, 0};
0472 static const unsigned aout1_dat2_pins[] = {141};
0473 static const int aout1_dat2_muxvals[] = {0};
0474 static const unsigned aout1_dat4_pins[] = {142, 143};
0475 static const int aout1_dat4_muxvals[] = {0, 3};
0476 static const unsigned ainiec1_pins[] = {150};
0477 static const int ainiec1_muxvals[] = {4};
0478 static const unsigned ainiec1b_pins[] = {141};
0479 static const int ainiec1b_muxvals[] = {4};
0480 static const unsigned aoutiec1_pins[] = {135, 136};
0481 static const int aoutiec1_muxvals[] = {0, 0};
0482 static const unsigned aoutiec2_pins[] = {135, 136};
0483 static const int aoutiec2_muxvals[] = {1, 1};
0484 static const unsigned int emmc_pins[] = {19, 20, 21, 22, 23, 24, 25};
0485 static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0};
0486 static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29};
0487 static const int emmc_dat8_muxvals[] = {0, 0, 0, 0};
0488 static const unsigned ether_rmii_pins[] = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
0489                        16, 17};
0490 static const int ether_rmii_muxvals[] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4};
0491 static const unsigned hscin0_ci_pins[] = {102, 103, 104, 105, 106, 107, 108,
0492                       109, 110, 111, 112};
0493 static const int hscin0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
0494 static const unsigned hscin0_p_pins[] = {102, 103, 104, 105, 106, 107, 108, 109,
0495                      110, 111, 112};
0496 static const int hscin0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0497 static const unsigned hscin0_s_pins[] = {116, 117, 118, 119};
0498 static const int hscin0_s_muxvals[] = {3, 3, 3, 3};
0499 static const unsigned hscin1_p_pins[] = {124, 125, 126, 127, 128, 129, 130, 131,
0500                      132, 133, 134};
0501 static const int hscin1_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0502 static const unsigned hscin1_s_pins[] = {120, 121, 122, 123};
0503 static const int hscin1_s_muxvals[] = {3, 3, 3, 3};
0504 static const unsigned hscin2_s_pins[] = {124, 125, 126, 127};
0505 static const int hscin2_s_muxvals[] = {3, 3, 3, 3};
0506 static const unsigned hscout0_ci_pins[] = {113, 114, 115, 116, 117, 118, 119,
0507                        120, 121, 122, 123};
0508 static const int hscout0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
0509 static const unsigned hscout0_p_pins[] = {113, 114, 115, 116, 117, 118, 119,
0510                       120, 121, 122, 123};
0511 static const int hscout0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0512 static const unsigned hscout0_s_pins[] = {116, 117, 118, 119};
0513 static const int hscout0_s_muxvals[] = {4, 4, 4, 4};
0514 static const unsigned hscout1_s_pins[] = {120, 121, 122, 123};
0515 static const int hscout1_s_muxvals[] = {4, 4, 4, 4};
0516 static const unsigned i2c0_pins[] = {63, 64};
0517 static const int i2c0_muxvals[] = {0, 0};
0518 static const unsigned i2c1_pins[] = {65, 66};
0519 static const int i2c1_muxvals[] = {0, 0};
0520 static const unsigned i2c3_pins[] = {67, 68};
0521 static const int i2c3_muxvals[] = {1, 1};
0522 static const unsigned i2c4_pins[] = {61, 62};
0523 static const int i2c4_muxvals[] = {1, 1};
0524 static const unsigned nand_pins[] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
0525                      15, 16, 17};
0526 static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0527 static const unsigned spi0_pins[] = {56, 57, 58, 59};
0528 static const int spi0_muxvals[] = {0, 0, 0, 0};
0529 static const unsigned spi1_pins[] = {169, 170, 171, 172};
0530 static const int spi1_muxvals[] = {1, 1, 1, 1};
0531 static const unsigned system_bus_pins[] = {1, 2, 6, 7, 8, 9, 10, 11, 12, 13,
0532                        14, 15, 16, 17};
0533 static const int system_bus_muxvals[] = {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
0534                      2};
0535 static const unsigned system_bus_cs1_pins[] = {0};
0536 static const int system_bus_cs1_muxvals[] = {0};
0537 static const unsigned uart0_pins[] = {54, 55};
0538 static const int uart0_muxvals[] = {0, 0};
0539 static const unsigned uart1_pins[] = {58, 59};
0540 static const int uart1_muxvals[] = {1, 1};
0541 static const unsigned uart2_pins[] = {90, 91};
0542 static const int uart2_muxvals[] = {1, 1};
0543 static const unsigned uart3_pins[] = {94, 95};
0544 static const int uart3_muxvals[] = {1, 1};
0545 static const unsigned uart3_ctsrts_pins[] = {96, 98};
0546 static const int uart3_ctsrts_muxvals[] = {1, 1};
0547 static const unsigned uart3_modem_pins[] = {97, 99, 100, 101};
0548 static const int uart3_modem_muxvals[] = {1, 1, 1, 1};
0549 static const unsigned usb0_pins[] = {46, 47};
0550 static const int usb0_muxvals[] = {0, 0};
0551 static const unsigned usb1_pins[] = {48, 49};
0552 static const int usb1_muxvals[] = {0, 0};
0553 static const unsigned usb2_pins[] = {50, 51};
0554 static const int usb2_muxvals[] = {0, 0};
0555 static const unsigned int gpio_range0_pins[] = {
0556     159, 160, 161, 162, 163, 164, 165, 166,     /* PORT0x */
0557     0, 1, 2, 3, 4, 5, 6, 7,             /* PORT1x */
0558     8, 9, 10, 11, 12, 13, 14, 15,           /* PORT2x */
0559     16, 17, 18,                 /* PORT30-32 */
0560 };
0561 static const unsigned int gpio_range1_pins[] = {
0562     46, 47, 48, 49, 50,             /* PORT53-57 */
0563     51,                     /* PORT60 */
0564 };
0565 static const unsigned int gpio_range2_pins[] = {
0566     54, 55, 56, 57, 58,             /* PORT63-67 */
0567     59, 60, 69, 70, 71, 72, 73, 74,         /* PORT7x */
0568     75, 76, 77, 78, 79, 80, 81, 82,         /* PORT8x */
0569     83, 84, 85, 86, 87, 88, 89, 90,         /* PORT9x */
0570     91, 92, 93, 94, 95, 96, 97, 98,         /* PORT10x */
0571 };
0572 static const unsigned int gpio_range3_pins[] = {
0573     99, 100, 101, 102, 103, 104, 105, 106,      /* PORT12x */
0574     107, 108, 109, 110, 111, 112, 113, 114,     /* PORT13x */
0575     115, 116, 117, 118, 119, 120, 121, 122,     /* PORT14x */
0576     149, 150, 151, 152, 153, 154, 155, 156,     /* XIRQ0-7 */
0577     157, 143, 144, 145, 85, 146, 158, 84,       /* XIRQ8-15 */
0578     141, 142, 148, 50, 51, 159, 160, 161,       /* XIRQ16-23 */
0579     61, 62, 63, 64, 65, 66, 67, 68,         /* PORT18x */
0580 };
0581 static const unsigned int gpio_range4_pins[] = {
0582     123, 124, 125, 126, 127, 128, 129, 130,     /* PORT20x */
0583     131, 132, 133, 134, 135, 136, 137, 138,     /* PORT21x */
0584     139, 140, 141, 142,             /* PORT220-223 */
0585 };
0586 static const unsigned int gpio_range5_pins[] = {
0587     147, 148, 149, 150, 151, 152, 153, 154,     /* PORT23x */
0588     155, 156, 157, 143, 144, 145, 146, 158,     /* PORT24x */
0589 };
0590 
0591 static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = {
0592     UNIPHIER_PINCTRL_GROUP(ain1),
0593     UNIPHIER_PINCTRL_GROUP(ain1_dat2),
0594     UNIPHIER_PINCTRL_GROUP(ain1_dat4),
0595     UNIPHIER_PINCTRL_GROUP(aout1),
0596     UNIPHIER_PINCTRL_GROUP(aout1_dat2),
0597     UNIPHIER_PINCTRL_GROUP(aout1_dat4),
0598     UNIPHIER_PINCTRL_GROUP(ainiec1),
0599     UNIPHIER_PINCTRL_GROUP(ainiec1b),
0600     UNIPHIER_PINCTRL_GROUP(aoutiec1),
0601     UNIPHIER_PINCTRL_GROUP(aoutiec2),
0602     UNIPHIER_PINCTRL_GROUP(emmc),
0603     UNIPHIER_PINCTRL_GROUP(emmc_dat8),
0604     UNIPHIER_PINCTRL_GROUP(ether_rmii),
0605     UNIPHIER_PINCTRL_GROUP(hscin0_ci),
0606     UNIPHIER_PINCTRL_GROUP(hscin0_p),
0607     UNIPHIER_PINCTRL_GROUP(hscin0_s),
0608     UNIPHIER_PINCTRL_GROUP(hscin1_p),
0609     UNIPHIER_PINCTRL_GROUP(hscin1_s),
0610     UNIPHIER_PINCTRL_GROUP(hscin2_s),
0611     UNIPHIER_PINCTRL_GROUP(hscout0_ci),
0612     UNIPHIER_PINCTRL_GROUP(hscout0_p),
0613     UNIPHIER_PINCTRL_GROUP(hscout0_s),
0614     UNIPHIER_PINCTRL_GROUP(hscout1_s),
0615     UNIPHIER_PINCTRL_GROUP(i2c0),
0616     UNIPHIER_PINCTRL_GROUP(i2c1),
0617     UNIPHIER_PINCTRL_GROUP(i2c3),
0618     UNIPHIER_PINCTRL_GROUP(i2c4),
0619     UNIPHIER_PINCTRL_GROUP(nand),
0620     UNIPHIER_PINCTRL_GROUP(spi0),
0621     UNIPHIER_PINCTRL_GROUP(spi1),
0622     UNIPHIER_PINCTRL_GROUP(system_bus),
0623     UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
0624     UNIPHIER_PINCTRL_GROUP(uart0),
0625     UNIPHIER_PINCTRL_GROUP(uart1),
0626     UNIPHIER_PINCTRL_GROUP(uart2),
0627     UNIPHIER_PINCTRL_GROUP(uart3),
0628     UNIPHIER_PINCTRL_GROUP(uart3_ctsrts),
0629     UNIPHIER_PINCTRL_GROUP(uart3_modem),
0630     UNIPHIER_PINCTRL_GROUP(usb0),
0631     UNIPHIER_PINCTRL_GROUP(usb1),
0632     UNIPHIER_PINCTRL_GROUP(usb2),
0633     UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range0),
0634     UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range1),
0635     UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2),
0636     UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range3),
0637     UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range4),
0638     UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range5),
0639 };
0640 
0641 static const char * const ain1_groups[] = {"ain1", "ain1_dat2",
0642                        "ain1_dat4"};
0643 static const char * const aout1_groups[] = {"aout1", "aout1_dat2",
0644                         "aout1_dat4"};
0645 static const char * const ainiec1_groups[] = {"ainiec1", "ainiec1b"};
0646 static const char * const aoutiec1_groups[] = {"aoutiec1"};
0647 static const char * const aoutiec2_groups[] = {"aoutiec2"};
0648 static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
0649 static const char * const ether_rmii_groups[] = {"ether_rmii"};
0650 static const char * const hscin0_groups[] = {"hscin0_ci",
0651                          "hscin0_p",
0652                          "hscin0_s"};
0653 static const char * const hscin1_groups[] = {"hscin1_p", "hscin1_s"};
0654 static const char * const hscin2_groups[] = {"hscin2_s"};
0655 static const char * const hscout0_groups[] = {"hscout0_ci",
0656                           "hscout0_p",
0657                           "hscout0_s"};
0658 static const char * const hscout1_groups[] = {"hscout1_s"};
0659 static const char * const i2c0_groups[] = {"i2c0"};
0660 static const char * const i2c1_groups[] = {"i2c1"};
0661 static const char * const i2c3_groups[] = {"i2c3"};
0662 static const char * const i2c4_groups[] = {"i2c4"};
0663 static const char * const nand_groups[] = {"nand"};
0664 static const char * const spi0_groups[] = {"spi0"};
0665 static const char * const spi1_groups[] = {"spi1"};
0666 static const char * const system_bus_groups[] = {"system_bus",
0667                          "system_bus_cs1"};
0668 static const char * const uart0_groups[] = {"uart0"};
0669 static const char * const uart1_groups[] = {"uart1"};
0670 static const char * const uart2_groups[] = {"uart2"};
0671 static const char * const uart3_groups[] = {"uart3", "uart3_ctsrts",
0672                         "uart3_modem"};
0673 static const char * const usb0_groups[] = {"usb0"};
0674 static const char * const usb1_groups[] = {"usb1"};
0675 static const char * const usb2_groups[] = {"usb2"};
0676 
0677 static const struct uniphier_pinmux_function uniphier_ld11_functions[] = {
0678     UNIPHIER_PINMUX_FUNCTION(ain1),
0679     UNIPHIER_PINMUX_FUNCTION(aout1),
0680     UNIPHIER_PINMUX_FUNCTION(ainiec1),
0681     UNIPHIER_PINMUX_FUNCTION(aoutiec1),
0682     UNIPHIER_PINMUX_FUNCTION(aoutiec2),
0683     UNIPHIER_PINMUX_FUNCTION(emmc),
0684     UNIPHIER_PINMUX_FUNCTION(ether_rmii),
0685     UNIPHIER_PINMUX_FUNCTION(hscin0),
0686     UNIPHIER_PINMUX_FUNCTION(hscin1),
0687     UNIPHIER_PINMUX_FUNCTION(hscin2),
0688     UNIPHIER_PINMUX_FUNCTION(hscout0),
0689     UNIPHIER_PINMUX_FUNCTION(hscout1),
0690     UNIPHIER_PINMUX_FUNCTION(i2c0),
0691     UNIPHIER_PINMUX_FUNCTION(i2c1),
0692     UNIPHIER_PINMUX_FUNCTION(i2c3),
0693     UNIPHIER_PINMUX_FUNCTION(i2c4),
0694     UNIPHIER_PINMUX_FUNCTION(nand),
0695     UNIPHIER_PINMUX_FUNCTION(spi0),
0696     UNIPHIER_PINMUX_FUNCTION(spi1),
0697     UNIPHIER_PINMUX_FUNCTION(system_bus),
0698     UNIPHIER_PINMUX_FUNCTION(uart0),
0699     UNIPHIER_PINMUX_FUNCTION(uart1),
0700     UNIPHIER_PINMUX_FUNCTION(uart2),
0701     UNIPHIER_PINMUX_FUNCTION(uart3),
0702     UNIPHIER_PINMUX_FUNCTION(usb0),
0703     UNIPHIER_PINMUX_FUNCTION(usb1),
0704     UNIPHIER_PINMUX_FUNCTION(usb2),
0705 };
0706 
0707 static int uniphier_ld11_get_gpio_muxval(unsigned int pin,
0708                      unsigned int gpio_offset)
0709 {
0710     if (gpio_offset == 132 || gpio_offset == 135)   /* XIRQ12, 15 */
0711         return 13;
0712 
0713     if (gpio_offset >= 120 && gpio_offset <= 143)   /* XIRQx */
0714         return 14;
0715 
0716     return 15;
0717 }
0718 
0719 static const struct uniphier_pinctrl_socdata uniphier_ld11_pindata = {
0720     .pins = uniphier_ld11_pins,
0721     .npins = ARRAY_SIZE(uniphier_ld11_pins),
0722     .groups = uniphier_ld11_groups,
0723     .groups_count = ARRAY_SIZE(uniphier_ld11_groups),
0724     .functions = uniphier_ld11_functions,
0725     .functions_count = ARRAY_SIZE(uniphier_ld11_functions),
0726     .get_gpio_muxval = uniphier_ld11_get_gpio_muxval,
0727     .caps = UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL,
0728 };
0729 
0730 static int uniphier_ld11_pinctrl_probe(struct platform_device *pdev)
0731 {
0732     return uniphier_pinctrl_probe(pdev, &uniphier_ld11_pindata);
0733 }
0734 
0735 static const struct of_device_id uniphier_ld11_pinctrl_match[] = {
0736     { .compatible = "socionext,uniphier-ld11-pinctrl" },
0737     { /* sentinel */ }
0738 };
0739 
0740 static struct platform_driver uniphier_ld11_pinctrl_driver = {
0741     .probe = uniphier_ld11_pinctrl_probe,
0742     .driver = {
0743         .name = "uniphier-ld11-pinctrl",
0744         .of_match_table = uniphier_ld11_pinctrl_match,
0745         .pm = &uniphier_pinctrl_pm_ops,
0746     },
0747 };
0748 builtin_platform_driver(uniphier_ld11_pinctrl_driver);