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_ld20_pins[] = {
0015     UNIPHIER_PINCTRL_PIN(0, "XECS1", UNIPHIER_PIN_IECTRL_EXIST,
0016                  0, UNIPHIER_PIN_DRV_3BIT,
0017                  0, UNIPHIER_PIN_PULL_UP),
0018     UNIPHIER_PINCTRL_PIN(1, "ERXW", UNIPHIER_PIN_IECTRL_EXIST,
0019                  1, UNIPHIER_PIN_DRV_3BIT,
0020                  1, UNIPHIER_PIN_PULL_UP),
0021     UNIPHIER_PINCTRL_PIN(2, "XERWE1", UNIPHIER_PIN_IECTRL_EXIST,
0022                  2, UNIPHIER_PIN_DRV_3BIT,
0023                  2, UNIPHIER_PIN_PULL_UP),
0024     UNIPHIER_PINCTRL_PIN(3, "XNFWP", UNIPHIER_PIN_IECTRL_EXIST,
0025                  3, UNIPHIER_PIN_DRV_3BIT,
0026                  3, UNIPHIER_PIN_PULL_DOWN),
0027     UNIPHIER_PINCTRL_PIN(4, "XNFCE0", UNIPHIER_PIN_IECTRL_EXIST,
0028                  4, UNIPHIER_PIN_DRV_3BIT,
0029                  4, UNIPHIER_PIN_PULL_UP),
0030     UNIPHIER_PINCTRL_PIN(5, "NFRYBY0", UNIPHIER_PIN_IECTRL_EXIST,
0031                  5, UNIPHIER_PIN_DRV_3BIT,
0032                  5, UNIPHIER_PIN_PULL_UP),
0033     UNIPHIER_PINCTRL_PIN(6, "XNFRE", UNIPHIER_PIN_IECTRL_EXIST,
0034                  6, UNIPHIER_PIN_DRV_3BIT,
0035                  6, UNIPHIER_PIN_PULL_UP),
0036     UNIPHIER_PINCTRL_PIN(7, "XNFWE", UNIPHIER_PIN_IECTRL_EXIST,
0037                  7, UNIPHIER_PIN_DRV_3BIT,
0038                  7, UNIPHIER_PIN_PULL_UP),
0039     UNIPHIER_PINCTRL_PIN(8, "NFALE", UNIPHIER_PIN_IECTRL_EXIST,
0040                  8, UNIPHIER_PIN_DRV_3BIT,
0041                  8, UNIPHIER_PIN_PULL_UP),
0042     UNIPHIER_PINCTRL_PIN(9, "NFCLE", UNIPHIER_PIN_IECTRL_EXIST,
0043                  9, UNIPHIER_PIN_DRV_3BIT,
0044                  9, UNIPHIER_PIN_PULL_UP),
0045     UNIPHIER_PINCTRL_PIN(10, "NFD0", UNIPHIER_PIN_IECTRL_EXIST,
0046                  10, UNIPHIER_PIN_DRV_3BIT,
0047                  10, UNIPHIER_PIN_PULL_UP),
0048     UNIPHIER_PINCTRL_PIN(11, "NFD1", UNIPHIER_PIN_IECTRL_EXIST,
0049                  11, UNIPHIER_PIN_DRV_3BIT,
0050                  11, UNIPHIER_PIN_PULL_UP),
0051     UNIPHIER_PINCTRL_PIN(12, "NFD2", UNIPHIER_PIN_IECTRL_EXIST,
0052                  12, UNIPHIER_PIN_DRV_3BIT,
0053                  12, UNIPHIER_PIN_PULL_UP),
0054     UNIPHIER_PINCTRL_PIN(13, "NFD3", UNIPHIER_PIN_IECTRL_EXIST,
0055                  13, UNIPHIER_PIN_DRV_3BIT,
0056                  13, UNIPHIER_PIN_PULL_UP),
0057     UNIPHIER_PINCTRL_PIN(14, "NFD4", UNIPHIER_PIN_IECTRL_EXIST,
0058                  14, UNIPHIER_PIN_DRV_3BIT,
0059                  14, UNIPHIER_PIN_PULL_UP),
0060     UNIPHIER_PINCTRL_PIN(15, "NFD5", UNIPHIER_PIN_IECTRL_EXIST,
0061                  15, UNIPHIER_PIN_DRV_3BIT,
0062                  15, UNIPHIER_PIN_PULL_UP),
0063     UNIPHIER_PINCTRL_PIN(16, "NFD6", UNIPHIER_PIN_IECTRL_EXIST,
0064                  16, UNIPHIER_PIN_DRV_3BIT,
0065                  16, UNIPHIER_PIN_PULL_UP),
0066     UNIPHIER_PINCTRL_PIN(17, "NFD7", UNIPHIER_PIN_IECTRL_EXIST,
0067                  17, UNIPHIER_PIN_DRV_3BIT,
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(30, "MDC", UNIPHIER_PIN_IECTRL_EXIST,
0106                  18, UNIPHIER_PIN_DRV_3BIT,
0107                  30, UNIPHIER_PIN_PULL_DOWN),
0108     UNIPHIER_PINCTRL_PIN(31, "MDIO", UNIPHIER_PIN_IECTRL_EXIST,
0109                  19, UNIPHIER_PIN_DRV_3BIT,
0110                  31, UNIPHIER_PIN_PULL_DOWN),
0111     UNIPHIER_PINCTRL_PIN(32, "MDIO_INTL", UNIPHIER_PIN_IECTRL_EXIST,
0112                  20, UNIPHIER_PIN_DRV_3BIT,
0113                  32, UNIPHIER_PIN_PULL_DOWN),
0114     UNIPHIER_PINCTRL_PIN(33, "PHYRSTL", UNIPHIER_PIN_IECTRL_EXIST,
0115                  21, UNIPHIER_PIN_DRV_3BIT,
0116                  33, UNIPHIER_PIN_PULL_DOWN),
0117     UNIPHIER_PINCTRL_PIN(34, "RGMII_RXCLK", UNIPHIER_PIN_IECTRL_EXIST,
0118                  22, UNIPHIER_PIN_DRV_3BIT,
0119                  34, UNIPHIER_PIN_PULL_DOWN),
0120     UNIPHIER_PINCTRL_PIN(35, "RGMII_RXD0", UNIPHIER_PIN_IECTRL_EXIST,
0121                  23, UNIPHIER_PIN_DRV_3BIT,
0122                  35, UNIPHIER_PIN_PULL_DOWN),
0123     UNIPHIER_PINCTRL_PIN(36, "RGMII_RXD1", UNIPHIER_PIN_IECTRL_EXIST,
0124                  24, UNIPHIER_PIN_DRV_3BIT,
0125                  36, UNIPHIER_PIN_PULL_DOWN),
0126     UNIPHIER_PINCTRL_PIN(37, "RGMII_RXD2", UNIPHIER_PIN_IECTRL_EXIST,
0127                  25, UNIPHIER_PIN_DRV_3BIT,
0128                  37, UNIPHIER_PIN_PULL_DOWN),
0129     UNIPHIER_PINCTRL_PIN(38, "RGMII_RXD3", UNIPHIER_PIN_IECTRL_EXIST,
0130                  26, UNIPHIER_PIN_DRV_3BIT,
0131                  38, UNIPHIER_PIN_PULL_DOWN),
0132     UNIPHIER_PINCTRL_PIN(39, "RGMII_RXCTL", UNIPHIER_PIN_IECTRL_EXIST,
0133                  27, UNIPHIER_PIN_DRV_3BIT,
0134                  39, UNIPHIER_PIN_PULL_DOWN),
0135     UNIPHIER_PINCTRL_PIN(40, "RGMII_TXCLK", UNIPHIER_PIN_IECTRL_EXIST,
0136                  28, UNIPHIER_PIN_DRV_3BIT,
0137                  40, UNIPHIER_PIN_PULL_DOWN),
0138     UNIPHIER_PINCTRL_PIN(41, "RGMII_TXD0", UNIPHIER_PIN_IECTRL_EXIST,
0139                  29, UNIPHIER_PIN_DRV_3BIT,
0140                  41, UNIPHIER_PIN_PULL_DOWN),
0141     UNIPHIER_PINCTRL_PIN(42, "RGMII_TXD1", UNIPHIER_PIN_IECTRL_EXIST,
0142                  30, UNIPHIER_PIN_DRV_3BIT,
0143                  42, UNIPHIER_PIN_PULL_DOWN),
0144     UNIPHIER_PINCTRL_PIN(43, "RGMII_TXD2", UNIPHIER_PIN_IECTRL_EXIST,
0145                  31, UNIPHIER_PIN_DRV_3BIT,
0146                  43, UNIPHIER_PIN_PULL_DOWN),
0147     UNIPHIER_PINCTRL_PIN(44, "RGMII_TXD3", UNIPHIER_PIN_IECTRL_EXIST,
0148                  32, UNIPHIER_PIN_DRV_3BIT,
0149                  44, UNIPHIER_PIN_PULL_DOWN),
0150     UNIPHIER_PINCTRL_PIN(45, "RGMII_TXCTL", UNIPHIER_PIN_IECTRL_EXIST,
0151                  33, UNIPHIER_PIN_DRV_3BIT,
0152                  45, UNIPHIER_PIN_PULL_DOWN),
0153     UNIPHIER_PINCTRL_PIN(46, "USB0VBUS", UNIPHIER_PIN_IECTRL_EXIST,
0154                  34, UNIPHIER_PIN_DRV_3BIT,
0155                  46, UNIPHIER_PIN_PULL_DOWN),
0156     UNIPHIER_PINCTRL_PIN(47, "USB0OD", UNIPHIER_PIN_IECTRL_EXIST,
0157                  35, UNIPHIER_PIN_DRV_3BIT,
0158                  47, UNIPHIER_PIN_PULL_UP),
0159     UNIPHIER_PINCTRL_PIN(48, "USB1VBUS", UNIPHIER_PIN_IECTRL_EXIST,
0160                  36, UNIPHIER_PIN_DRV_3BIT,
0161                  48, UNIPHIER_PIN_PULL_DOWN),
0162     UNIPHIER_PINCTRL_PIN(49, "USB1OD", UNIPHIER_PIN_IECTRL_EXIST,
0163                  37, UNIPHIER_PIN_DRV_3BIT,
0164                  49, UNIPHIER_PIN_PULL_UP),
0165     UNIPHIER_PINCTRL_PIN(50, "USB2VBUS", UNIPHIER_PIN_IECTRL_EXIST,
0166                  38, UNIPHIER_PIN_DRV_3BIT,
0167                  50, UNIPHIER_PIN_PULL_DOWN),
0168     UNIPHIER_PINCTRL_PIN(51, "USB2OD", UNIPHIER_PIN_IECTRL_EXIST,
0169                  39, UNIPHIER_PIN_DRV_3BIT,
0170                  51, UNIPHIER_PIN_PULL_UP),
0171     UNIPHIER_PINCTRL_PIN(52, "USB3VBUS", UNIPHIER_PIN_IECTRL_EXIST,
0172                  40, UNIPHIER_PIN_DRV_3BIT,
0173                  52, UNIPHIER_PIN_PULL_DOWN),
0174     UNIPHIER_PINCTRL_PIN(53, "USB3OD", UNIPHIER_PIN_IECTRL_EXIST,
0175                  41, UNIPHIER_PIN_DRV_3BIT,
0176                  53, UNIPHIER_PIN_PULL_UP),
0177     UNIPHIER_PINCTRL_PIN(54, "TXD0", UNIPHIER_PIN_IECTRL_EXIST,
0178                  42, UNIPHIER_PIN_DRV_3BIT,
0179                  54, UNIPHIER_PIN_PULL_UP),
0180     UNIPHIER_PINCTRL_PIN(55, "RXD0", UNIPHIER_PIN_IECTRL_EXIST,
0181                  43, UNIPHIER_PIN_DRV_3BIT,
0182                  55, UNIPHIER_PIN_PULL_UP),
0183     UNIPHIER_PINCTRL_PIN(56, "SPISYNC0", UNIPHIER_PIN_IECTRL_EXIST,
0184                  44, UNIPHIER_PIN_DRV_3BIT,
0185                  56, UNIPHIER_PIN_PULL_DOWN),
0186     UNIPHIER_PINCTRL_PIN(57, "SPISCLK0", UNIPHIER_PIN_IECTRL_EXIST,
0187                  45, UNIPHIER_PIN_DRV_3BIT,
0188                  57, UNIPHIER_PIN_PULL_DOWN),
0189     UNIPHIER_PINCTRL_PIN(58, "SPITXD0", UNIPHIER_PIN_IECTRL_EXIST,
0190                  46, UNIPHIER_PIN_DRV_3BIT,
0191                  58, UNIPHIER_PIN_PULL_DOWN),
0192     UNIPHIER_PINCTRL_PIN(59, "SPIRXD0", UNIPHIER_PIN_IECTRL_EXIST,
0193                  47, UNIPHIER_PIN_DRV_3BIT,
0194                  59, UNIPHIER_PIN_PULL_DOWN),
0195     UNIPHIER_PINCTRL_PIN(60, "AGCI", UNIPHIER_PIN_IECTRL_EXIST,
0196                  48, UNIPHIER_PIN_DRV_3BIT,
0197                  60, UNIPHIER_PIN_PULL_DOWN),
0198     UNIPHIER_PINCTRL_PIN(61, "DMDSDA0", UNIPHIER_PIN_IECTRL_EXIST,
0199                  -1, UNIPHIER_PIN_DRV_FIXED4,
0200                  -1, UNIPHIER_PIN_PULL_NONE),
0201     UNIPHIER_PINCTRL_PIN(62, "DMDSCL0", UNIPHIER_PIN_IECTRL_EXIST,
0202                  -1, UNIPHIER_PIN_DRV_FIXED4,
0203                  -1, UNIPHIER_PIN_PULL_NONE),
0204     UNIPHIER_PINCTRL_PIN(63, "SDA0", UNIPHIER_PIN_IECTRL_EXIST,
0205                  -1, UNIPHIER_PIN_DRV_FIXED4,
0206                  -1, UNIPHIER_PIN_PULL_NONE),
0207     UNIPHIER_PINCTRL_PIN(64, "SCL0", UNIPHIER_PIN_IECTRL_EXIST,
0208                  -1, UNIPHIER_PIN_DRV_FIXED4,
0209                  -1, UNIPHIER_PIN_PULL_NONE),
0210     UNIPHIER_PINCTRL_PIN(65, "SDA1", UNIPHIER_PIN_IECTRL_EXIST,
0211                  -1, UNIPHIER_PIN_DRV_FIXED4,
0212                  -1, UNIPHIER_PIN_PULL_NONE),
0213     UNIPHIER_PINCTRL_PIN(66, "SCL1", UNIPHIER_PIN_IECTRL_EXIST,
0214                  -1, UNIPHIER_PIN_DRV_FIXED4,
0215                  -1, UNIPHIER_PIN_PULL_NONE),
0216     UNIPHIER_PINCTRL_PIN(67, "HIN", UNIPHIER_PIN_IECTRL_EXIST,
0217                  -1, UNIPHIER_PIN_DRV_FIXED4,
0218                  -1, UNIPHIER_PIN_PULL_NONE),
0219     UNIPHIER_PINCTRL_PIN(68, "VIN", UNIPHIER_PIN_IECTRL_EXIST,
0220                  -1, UNIPHIER_PIN_DRV_FIXED4,
0221                  -1, UNIPHIER_PIN_PULL_NONE),
0222     UNIPHIER_PINCTRL_PIN(69, "PCA00", UNIPHIER_PIN_IECTRL_EXIST,
0223                  49, UNIPHIER_PIN_DRV_3BIT,
0224                  69, UNIPHIER_PIN_PULL_DOWN),
0225     UNIPHIER_PINCTRL_PIN(70, "PCA01", UNIPHIER_PIN_IECTRL_EXIST,
0226                  50, UNIPHIER_PIN_DRV_3BIT,
0227                  70, UNIPHIER_PIN_PULL_DOWN),
0228     UNIPHIER_PINCTRL_PIN(71, "PCA02", UNIPHIER_PIN_IECTRL_EXIST,
0229                  51, UNIPHIER_PIN_DRV_3BIT,
0230                  71, UNIPHIER_PIN_PULL_DOWN),
0231     UNIPHIER_PINCTRL_PIN(72, "PCA03", UNIPHIER_PIN_IECTRL_EXIST,
0232                  52, UNIPHIER_PIN_DRV_3BIT,
0233                  72, UNIPHIER_PIN_PULL_DOWN),
0234     UNIPHIER_PINCTRL_PIN(73, "PCA04", UNIPHIER_PIN_IECTRL_EXIST,
0235                  53, UNIPHIER_PIN_DRV_3BIT,
0236                  73, UNIPHIER_PIN_PULL_DOWN),
0237     UNIPHIER_PINCTRL_PIN(74, "PCA05", UNIPHIER_PIN_IECTRL_EXIST,
0238                  54, UNIPHIER_PIN_DRV_3BIT,
0239                  74, UNIPHIER_PIN_PULL_DOWN),
0240     UNIPHIER_PINCTRL_PIN(75, "PCA06", UNIPHIER_PIN_IECTRL_EXIST,
0241                  55, UNIPHIER_PIN_DRV_3BIT,
0242                  75, UNIPHIER_PIN_PULL_DOWN),
0243     UNIPHIER_PINCTRL_PIN(76, "PCA07", UNIPHIER_PIN_IECTRL_EXIST,
0244                  56, UNIPHIER_PIN_DRV_3BIT,
0245                  76, UNIPHIER_PIN_PULL_DOWN),
0246     UNIPHIER_PINCTRL_PIN(77, "PCA08", UNIPHIER_PIN_IECTRL_EXIST,
0247                  57, UNIPHIER_PIN_DRV_3BIT,
0248                  77, UNIPHIER_PIN_PULL_DOWN),
0249     UNIPHIER_PINCTRL_PIN(78, "PCA09", UNIPHIER_PIN_IECTRL_EXIST,
0250                  58, UNIPHIER_PIN_DRV_3BIT,
0251                  78, UNIPHIER_PIN_PULL_DOWN),
0252     UNIPHIER_PINCTRL_PIN(79, "PCA10", UNIPHIER_PIN_IECTRL_EXIST,
0253                  59, UNIPHIER_PIN_DRV_3BIT,
0254                  79, UNIPHIER_PIN_PULL_DOWN),
0255     UNIPHIER_PINCTRL_PIN(80, "PCA11", UNIPHIER_PIN_IECTRL_EXIST,
0256                  60, UNIPHIER_PIN_DRV_3BIT,
0257                  80, UNIPHIER_PIN_PULL_DOWN),
0258     UNIPHIER_PINCTRL_PIN(81, "PCA12", UNIPHIER_PIN_IECTRL_EXIST,
0259                  61, UNIPHIER_PIN_DRV_3BIT,
0260                  81, UNIPHIER_PIN_PULL_DOWN),
0261     UNIPHIER_PINCTRL_PIN(82, "PCA13", UNIPHIER_PIN_IECTRL_EXIST,
0262                  62, UNIPHIER_PIN_DRV_3BIT,
0263                  82, UNIPHIER_PIN_PULL_DOWN),
0264     UNIPHIER_PINCTRL_PIN(83, "PCA14", UNIPHIER_PIN_IECTRL_EXIST,
0265                  63, UNIPHIER_PIN_DRV_3BIT,
0266                  83, UNIPHIER_PIN_PULL_DOWN),
0267     UNIPHIER_PINCTRL_PIN(84, "PC0READY", UNIPHIER_PIN_IECTRL_EXIST,
0268                  0, UNIPHIER_PIN_DRV_1BIT,
0269                  84, UNIPHIER_PIN_PULL_DOWN),
0270     UNIPHIER_PINCTRL_PIN(85, "PC0CD1", UNIPHIER_PIN_IECTRL_EXIST,
0271                  1, UNIPHIER_PIN_DRV_1BIT,
0272                  85, UNIPHIER_PIN_PULL_DOWN),
0273     UNIPHIER_PINCTRL_PIN(86, "PC0CD2", UNIPHIER_PIN_IECTRL_EXIST,
0274                  2, UNIPHIER_PIN_DRV_1BIT,
0275                  86, UNIPHIER_PIN_PULL_DOWN),
0276     UNIPHIER_PINCTRL_PIN(87, "PC0WAIT", UNIPHIER_PIN_IECTRL_EXIST,
0277                  3, UNIPHIER_PIN_DRV_1BIT,
0278                  87, UNIPHIER_PIN_PULL_DOWN),
0279     UNIPHIER_PINCTRL_PIN(88, "PC0RESET", UNIPHIER_PIN_IECTRL_EXIST,
0280                  4, UNIPHIER_PIN_DRV_1BIT,
0281                  88, UNIPHIER_PIN_PULL_DOWN),
0282     UNIPHIER_PINCTRL_PIN(89, "PC0CE1", UNIPHIER_PIN_IECTRL_EXIST,
0283                  5, UNIPHIER_PIN_DRV_1BIT,
0284                  89, UNIPHIER_PIN_PULL_DOWN),
0285     UNIPHIER_PINCTRL_PIN(90, "PC0WE", UNIPHIER_PIN_IECTRL_EXIST,
0286                  6, UNIPHIER_PIN_DRV_1BIT,
0287                  90, UNIPHIER_PIN_PULL_DOWN),
0288     UNIPHIER_PINCTRL_PIN(91, "PC0OE", UNIPHIER_PIN_IECTRL_EXIST,
0289                  7, UNIPHIER_PIN_DRV_1BIT,
0290                  91, UNIPHIER_PIN_PULL_DOWN),
0291     UNIPHIER_PINCTRL_PIN(92, "PC0IOWR", UNIPHIER_PIN_IECTRL_EXIST,
0292                  8, UNIPHIER_PIN_DRV_1BIT,
0293                  92, UNIPHIER_PIN_PULL_DOWN),
0294     UNIPHIER_PINCTRL_PIN(93, "PC0IORD", UNIPHIER_PIN_IECTRL_EXIST,
0295                  9, UNIPHIER_PIN_DRV_1BIT,
0296                  93, UNIPHIER_PIN_PULL_DOWN),
0297     UNIPHIER_PINCTRL_PIN(94, "PCD00", UNIPHIER_PIN_IECTRL_EXIST,
0298                  10, UNIPHIER_PIN_DRV_1BIT,
0299                  94, UNIPHIER_PIN_PULL_DOWN),
0300     UNIPHIER_PINCTRL_PIN(95, "PCD01", UNIPHIER_PIN_IECTRL_EXIST,
0301                  11, UNIPHIER_PIN_DRV_1BIT,
0302                  95, UNIPHIER_PIN_PULL_DOWN),
0303     UNIPHIER_PINCTRL_PIN(96, "PCD02", UNIPHIER_PIN_IECTRL_EXIST,
0304                  12, UNIPHIER_PIN_DRV_1BIT,
0305                  96, UNIPHIER_PIN_PULL_DOWN),
0306     UNIPHIER_PINCTRL_PIN(97, "PCD03", UNIPHIER_PIN_IECTRL_EXIST,
0307                  13, UNIPHIER_PIN_DRV_1BIT,
0308                  97, UNIPHIER_PIN_PULL_DOWN),
0309     UNIPHIER_PINCTRL_PIN(98, "PCD04", UNIPHIER_PIN_IECTRL_EXIST,
0310                  14, UNIPHIER_PIN_DRV_1BIT,
0311                  98, UNIPHIER_PIN_PULL_DOWN),
0312     UNIPHIER_PINCTRL_PIN(99, "PCD05", UNIPHIER_PIN_IECTRL_EXIST,
0313                  15, UNIPHIER_PIN_DRV_1BIT,
0314                  99, UNIPHIER_PIN_PULL_DOWN),
0315     UNIPHIER_PINCTRL_PIN(100, "PCD06", UNIPHIER_PIN_IECTRL_EXIST,
0316                  16, UNIPHIER_PIN_DRV_1BIT,
0317                  100, UNIPHIER_PIN_PULL_DOWN),
0318     UNIPHIER_PINCTRL_PIN(101, "PCD07", UNIPHIER_PIN_IECTRL_EXIST,
0319                  17, UNIPHIER_PIN_DRV_1BIT,
0320                  101, UNIPHIER_PIN_PULL_DOWN),
0321     UNIPHIER_PINCTRL_PIN(102, "HS0BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
0322                  18, UNIPHIER_PIN_DRV_1BIT,
0323                  102, UNIPHIER_PIN_PULL_DOWN),
0324     UNIPHIER_PINCTRL_PIN(103, "HS0SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
0325                  19, UNIPHIER_PIN_DRV_1BIT,
0326                  103, UNIPHIER_PIN_PULL_DOWN),
0327     UNIPHIER_PINCTRL_PIN(104, "HS0VALIN", UNIPHIER_PIN_IECTRL_EXIST,
0328                  20, UNIPHIER_PIN_DRV_1BIT,
0329                  104, UNIPHIER_PIN_PULL_DOWN),
0330     UNIPHIER_PINCTRL_PIN(105, "HS0DIN0", UNIPHIER_PIN_IECTRL_EXIST,
0331                  21, UNIPHIER_PIN_DRV_1BIT,
0332                  105, UNIPHIER_PIN_PULL_DOWN),
0333     UNIPHIER_PINCTRL_PIN(106, "HS0DIN1", UNIPHIER_PIN_IECTRL_EXIST,
0334                  22, UNIPHIER_PIN_DRV_1BIT,
0335                  106, UNIPHIER_PIN_PULL_DOWN),
0336     UNIPHIER_PINCTRL_PIN(107, "HS0DIN2", UNIPHIER_PIN_IECTRL_EXIST,
0337                  23, UNIPHIER_PIN_DRV_1BIT,
0338                  107, UNIPHIER_PIN_PULL_DOWN),
0339     UNIPHIER_PINCTRL_PIN(108, "HS0DIN3", UNIPHIER_PIN_IECTRL_EXIST,
0340                  24, UNIPHIER_PIN_DRV_1BIT,
0341                  108, UNIPHIER_PIN_PULL_DOWN),
0342     UNIPHIER_PINCTRL_PIN(109, "HS0DIN4", UNIPHIER_PIN_IECTRL_EXIST,
0343                  25, UNIPHIER_PIN_DRV_1BIT,
0344                  109, UNIPHIER_PIN_PULL_DOWN),
0345     UNIPHIER_PINCTRL_PIN(110, "HS0DIN5", UNIPHIER_PIN_IECTRL_EXIST,
0346                  26, UNIPHIER_PIN_DRV_1BIT,
0347                  110, UNIPHIER_PIN_PULL_DOWN),
0348     UNIPHIER_PINCTRL_PIN(111, "HS0DIN6", UNIPHIER_PIN_IECTRL_EXIST,
0349                  27, UNIPHIER_PIN_DRV_1BIT,
0350                  111, UNIPHIER_PIN_PULL_DOWN),
0351     UNIPHIER_PINCTRL_PIN(112, "HS0DIN7", UNIPHIER_PIN_IECTRL_EXIST,
0352                  28, UNIPHIER_PIN_DRV_1BIT,
0353                  112, UNIPHIER_PIN_PULL_DOWN),
0354     UNIPHIER_PINCTRL_PIN(113, "HS0BCLKOUT", UNIPHIER_PIN_IECTRL_EXIST,
0355                  64, UNIPHIER_PIN_DRV_3BIT,
0356                  113, UNIPHIER_PIN_PULL_DOWN),
0357     UNIPHIER_PINCTRL_PIN(114, "HS0SYNCOUT", UNIPHIER_PIN_IECTRL_EXIST,
0358                  65, UNIPHIER_PIN_DRV_3BIT,
0359                  114, UNIPHIER_PIN_PULL_DOWN),
0360     UNIPHIER_PINCTRL_PIN(115, "HS0VALOUT", UNIPHIER_PIN_IECTRL_EXIST,
0361                  66, UNIPHIER_PIN_DRV_3BIT,
0362                  115, UNIPHIER_PIN_PULL_DOWN),
0363     UNIPHIER_PINCTRL_PIN(116, "HS0DOUT0", UNIPHIER_PIN_IECTRL_EXIST,
0364                  67, UNIPHIER_PIN_DRV_3BIT,
0365                  116, UNIPHIER_PIN_PULL_DOWN),
0366     UNIPHIER_PINCTRL_PIN(117, "HS0DOUT1", UNIPHIER_PIN_IECTRL_EXIST,
0367                  68, UNIPHIER_PIN_DRV_3BIT,
0368                  117, UNIPHIER_PIN_PULL_DOWN),
0369     UNIPHIER_PINCTRL_PIN(118, "HS0DOUT2", UNIPHIER_PIN_IECTRL_EXIST,
0370                  69, UNIPHIER_PIN_DRV_3BIT,
0371                  118, UNIPHIER_PIN_PULL_DOWN),
0372     UNIPHIER_PINCTRL_PIN(119, "HS0DOUT3", UNIPHIER_PIN_IECTRL_EXIST,
0373                  70, UNIPHIER_PIN_DRV_3BIT,
0374                  119, UNIPHIER_PIN_PULL_DOWN),
0375     UNIPHIER_PINCTRL_PIN(120, "HS0DOUT4", UNIPHIER_PIN_IECTRL_EXIST,
0376                  71, UNIPHIER_PIN_DRV_3BIT,
0377                  120, UNIPHIER_PIN_PULL_DOWN),
0378     UNIPHIER_PINCTRL_PIN(121, "HS0DOUT5", UNIPHIER_PIN_IECTRL_EXIST,
0379                  72, UNIPHIER_PIN_DRV_3BIT,
0380                  121, UNIPHIER_PIN_PULL_DOWN),
0381     UNIPHIER_PINCTRL_PIN(122, "HS0DOUT6", UNIPHIER_PIN_IECTRL_EXIST,
0382                  73, UNIPHIER_PIN_DRV_3BIT,
0383                  122, UNIPHIER_PIN_PULL_DOWN),
0384     UNIPHIER_PINCTRL_PIN(123, "HS0DOUT7", UNIPHIER_PIN_IECTRL_EXIST,
0385                  74, UNIPHIER_PIN_DRV_3BIT,
0386                  123, UNIPHIER_PIN_PULL_DOWN),
0387     UNIPHIER_PINCTRL_PIN(124, "HS1BCLKIN", UNIPHIER_PIN_IECTRL_EXIST,
0388                  75, UNIPHIER_PIN_DRV_3BIT,
0389                  124, UNIPHIER_PIN_PULL_DOWN),
0390     UNIPHIER_PINCTRL_PIN(125, "HS1SYNCIN", UNIPHIER_PIN_IECTRL_EXIST,
0391                  76, UNIPHIER_PIN_DRV_3BIT,
0392                  125, UNIPHIER_PIN_PULL_DOWN),
0393     UNIPHIER_PINCTRL_PIN(126, "HS1VALIN", UNIPHIER_PIN_IECTRL_EXIST,
0394                  77, UNIPHIER_PIN_DRV_3BIT,
0395                  126, UNIPHIER_PIN_PULL_DOWN),
0396     UNIPHIER_PINCTRL_PIN(127, "HS1DIN0", UNIPHIER_PIN_IECTRL_EXIST,
0397                  78, UNIPHIER_PIN_DRV_3BIT,
0398                  127, UNIPHIER_PIN_PULL_DOWN),
0399     UNIPHIER_PINCTRL_PIN(128, "HS1DIN1", UNIPHIER_PIN_IECTRL_EXIST,
0400                  79, UNIPHIER_PIN_DRV_3BIT,
0401                  128, UNIPHIER_PIN_PULL_DOWN),
0402     UNIPHIER_PINCTRL_PIN(129, "HS1DIN2", UNIPHIER_PIN_IECTRL_EXIST,
0403                  80, UNIPHIER_PIN_DRV_3BIT,
0404                  129, UNIPHIER_PIN_PULL_DOWN),
0405     UNIPHIER_PINCTRL_PIN(130, "HS1DIN3", UNIPHIER_PIN_IECTRL_EXIST,
0406                  81, UNIPHIER_PIN_DRV_3BIT,
0407                  130, UNIPHIER_PIN_PULL_DOWN),
0408     UNIPHIER_PINCTRL_PIN(131, "HS1DIN4", UNIPHIER_PIN_IECTRL_EXIST,
0409                  82, UNIPHIER_PIN_DRV_3BIT,
0410                  131, UNIPHIER_PIN_PULL_DOWN),
0411     UNIPHIER_PINCTRL_PIN(132, "HS1DIN5", UNIPHIER_PIN_IECTRL_EXIST,
0412                  83, UNIPHIER_PIN_DRV_3BIT,
0413                  132, UNIPHIER_PIN_PULL_DOWN),
0414     UNIPHIER_PINCTRL_PIN(133, "HS1DIN6", UNIPHIER_PIN_IECTRL_EXIST,
0415                  84, UNIPHIER_PIN_DRV_3BIT,
0416                  133, UNIPHIER_PIN_PULL_DOWN),
0417     UNIPHIER_PINCTRL_PIN(134, "HS1DIN7", UNIPHIER_PIN_IECTRL_EXIST,
0418                  85, UNIPHIER_PIN_DRV_3BIT,
0419                  134, UNIPHIER_PIN_PULL_DOWN),
0420     UNIPHIER_PINCTRL_PIN(135, "AO1IEC", UNIPHIER_PIN_IECTRL_EXIST,
0421                  86, UNIPHIER_PIN_DRV_3BIT,
0422                  135, UNIPHIER_PIN_PULL_DOWN),
0423     UNIPHIER_PINCTRL_PIN(136, "AO1ARC", UNIPHIER_PIN_IECTRL_EXIST,
0424                  87, UNIPHIER_PIN_DRV_3BIT,
0425                  136, UNIPHIER_PIN_PULL_DOWN),
0426     UNIPHIER_PINCTRL_PIN(137, "AO1DACCK", UNIPHIER_PIN_IECTRL_EXIST,
0427                  88, UNIPHIER_PIN_DRV_3BIT,
0428                  137, UNIPHIER_PIN_PULL_DOWN),
0429     UNIPHIER_PINCTRL_PIN(138, "AO1BCK", UNIPHIER_PIN_IECTRL_EXIST,
0430                  89, UNIPHIER_PIN_DRV_3BIT,
0431                  138, UNIPHIER_PIN_PULL_DOWN),
0432     UNIPHIER_PINCTRL_PIN(139, "AO1LRCK", UNIPHIER_PIN_IECTRL_EXIST,
0433                  90, UNIPHIER_PIN_DRV_3BIT,
0434                  139, UNIPHIER_PIN_PULL_DOWN),
0435     UNIPHIER_PINCTRL_PIN(140, "AO1D0", UNIPHIER_PIN_IECTRL_EXIST,
0436                  91, UNIPHIER_PIN_DRV_3BIT,
0437                  140, UNIPHIER_PIN_PULL_DOWN),
0438     UNIPHIER_PINCTRL_PIN(141, "AO1D1", UNIPHIER_PIN_IECTRL_EXIST,
0439                  92, UNIPHIER_PIN_DRV_3BIT,
0440                  141, UNIPHIER_PIN_PULL_DOWN),
0441     UNIPHIER_PINCTRL_PIN(142, "AO1D2", UNIPHIER_PIN_IECTRL_EXIST,
0442                  93, UNIPHIER_PIN_DRV_3BIT,
0443                  142, UNIPHIER_PIN_PULL_DOWN),
0444     UNIPHIER_PINCTRL_PIN(143, "HTPDN0", UNIPHIER_PIN_IECTRL_EXIST,
0445                  94, UNIPHIER_PIN_DRV_3BIT,
0446                  143, UNIPHIER_PIN_PULL_DOWN),
0447     UNIPHIER_PINCTRL_PIN(144, "LOCKN0", UNIPHIER_PIN_IECTRL_EXIST,
0448                  95, UNIPHIER_PIN_DRV_3BIT,
0449                  144, UNIPHIER_PIN_PULL_DOWN),
0450     UNIPHIER_PINCTRL_PIN(145, "HTPDN1", UNIPHIER_PIN_IECTRL_EXIST,
0451                  96, UNIPHIER_PIN_DRV_3BIT,
0452                  145, UNIPHIER_PIN_PULL_DOWN),
0453     UNIPHIER_PINCTRL_PIN(146, "LOCKN1", UNIPHIER_PIN_IECTRL_EXIST,
0454                  97, UNIPHIER_PIN_DRV_3BIT,
0455                  146, UNIPHIER_PIN_PULL_DOWN),
0456     UNIPHIER_PINCTRL_PIN(147, "PWMA", UNIPHIER_PIN_IECTRL_EXIST,
0457                  98, UNIPHIER_PIN_DRV_3BIT,
0458                  147, UNIPHIER_PIN_PULL_DOWN),
0459     UNIPHIER_PINCTRL_PIN(148, "LR_GOUT", UNIPHIER_PIN_IECTRL_EXIST,
0460                  99, UNIPHIER_PIN_DRV_3BIT,
0461                  148, UNIPHIER_PIN_PULL_DOWN),
0462     UNIPHIER_PINCTRL_PIN(149, "XIRQ0", UNIPHIER_PIN_IECTRL_EXIST,
0463                  100, UNIPHIER_PIN_DRV_3BIT,
0464                  149, UNIPHIER_PIN_PULL_DOWN),
0465     UNIPHIER_PINCTRL_PIN(150, "XIRQ1", UNIPHIER_PIN_IECTRL_EXIST,
0466                  101, UNIPHIER_PIN_DRV_3BIT,
0467                  150, UNIPHIER_PIN_PULL_DOWN),
0468     UNIPHIER_PINCTRL_PIN(151, "XIRQ2", UNIPHIER_PIN_IECTRL_EXIST,
0469                  102, UNIPHIER_PIN_DRV_3BIT,
0470                  151, UNIPHIER_PIN_PULL_DOWN),
0471     UNIPHIER_PINCTRL_PIN(152, "XIRQ3", UNIPHIER_PIN_IECTRL_EXIST,
0472                  103, UNIPHIER_PIN_DRV_3BIT,
0473                  152, UNIPHIER_PIN_PULL_DOWN),
0474     UNIPHIER_PINCTRL_PIN(153, "XIRQ4", UNIPHIER_PIN_IECTRL_EXIST,
0475                  104, UNIPHIER_PIN_DRV_3BIT,
0476                  153, UNIPHIER_PIN_PULL_DOWN),
0477     UNIPHIER_PINCTRL_PIN(154, "XIRQ5", UNIPHIER_PIN_IECTRL_EXIST,
0478                  105, UNIPHIER_PIN_DRV_3BIT,
0479                  154, UNIPHIER_PIN_PULL_DOWN),
0480     UNIPHIER_PINCTRL_PIN(155, "XIRQ6", UNIPHIER_PIN_IECTRL_EXIST,
0481                  106, UNIPHIER_PIN_DRV_3BIT,
0482                  155, UNIPHIER_PIN_PULL_DOWN),
0483     UNIPHIER_PINCTRL_PIN(156, "XIRQ7", UNIPHIER_PIN_IECTRL_EXIST,
0484                  107, UNIPHIER_PIN_DRV_3BIT,
0485                  156, UNIPHIER_PIN_PULL_DOWN),
0486     UNIPHIER_PINCTRL_PIN(157, "XIRQ8", UNIPHIER_PIN_IECTRL_EXIST,
0487                  108, UNIPHIER_PIN_DRV_3BIT,
0488                  157, UNIPHIER_PIN_PULL_DOWN),
0489     UNIPHIER_PINCTRL_PIN(158, "XIRQ9", UNIPHIER_PIN_IECTRL_EXIST,
0490                  109, UNIPHIER_PIN_DRV_3BIT,
0491                  158, UNIPHIER_PIN_PULL_DOWN),
0492     UNIPHIER_PINCTRL_PIN(159, "XIRQ10", UNIPHIER_PIN_IECTRL_EXIST,
0493                  110, UNIPHIER_PIN_DRV_3BIT,
0494                  159, UNIPHIER_PIN_PULL_DOWN),
0495     UNIPHIER_PINCTRL_PIN(160, "XIRQ11", UNIPHIER_PIN_IECTRL_EXIST,
0496                  111, UNIPHIER_PIN_DRV_3BIT,
0497                  160, UNIPHIER_PIN_PULL_DOWN),
0498     UNIPHIER_PINCTRL_PIN(161, "XIRQ13", UNIPHIER_PIN_IECTRL_EXIST,
0499                  112, UNIPHIER_PIN_DRV_3BIT,
0500                  161, UNIPHIER_PIN_PULL_DOWN),
0501     UNIPHIER_PINCTRL_PIN(162, "XIRQ14", UNIPHIER_PIN_IECTRL_EXIST,
0502                  113, UNIPHIER_PIN_DRV_3BIT,
0503                  162, UNIPHIER_PIN_PULL_DOWN),
0504     UNIPHIER_PINCTRL_PIN(163, "XIRQ16", UNIPHIER_PIN_IECTRL_EXIST,
0505                  114, UNIPHIER_PIN_DRV_3BIT,
0506                  163, UNIPHIER_PIN_PULL_DOWN),
0507     UNIPHIER_PINCTRL_PIN(164, "XIRQ17", UNIPHIER_PIN_IECTRL_EXIST,
0508                  115, UNIPHIER_PIN_DRV_3BIT,
0509                  164, UNIPHIER_PIN_PULL_DOWN),
0510     UNIPHIER_PINCTRL_PIN(165, "XIRQ18", UNIPHIER_PIN_IECTRL_EXIST,
0511                  116, UNIPHIER_PIN_DRV_3BIT,
0512                  165, UNIPHIER_PIN_PULL_DOWN),
0513     UNIPHIER_PINCTRL_PIN(166, "XIRQ19", UNIPHIER_PIN_IECTRL_EXIST,
0514                  117, UNIPHIER_PIN_DRV_3BIT,
0515                  166, UNIPHIER_PIN_PULL_DOWN),
0516     UNIPHIER_PINCTRL_PIN(167, "XIRQ20", UNIPHIER_PIN_IECTRL_EXIST,
0517                  118, UNIPHIER_PIN_DRV_3BIT,
0518                  167, UNIPHIER_PIN_PULL_DOWN),
0519     UNIPHIER_PINCTRL_PIN(168, "PORT00", UNIPHIER_PIN_IECTRL_EXIST,
0520                  119, UNIPHIER_PIN_DRV_3BIT,
0521                  168, UNIPHIER_PIN_PULL_DOWN),
0522     UNIPHIER_PINCTRL_PIN(169, "PORT01", UNIPHIER_PIN_IECTRL_EXIST,
0523                  120, UNIPHIER_PIN_DRV_3BIT,
0524                  169, UNIPHIER_PIN_PULL_DOWN),
0525     UNIPHIER_PINCTRL_PIN(170, "PORT02", UNIPHIER_PIN_IECTRL_EXIST,
0526                  121, UNIPHIER_PIN_DRV_3BIT,
0527                  170, UNIPHIER_PIN_PULL_DOWN),
0528     UNIPHIER_PINCTRL_PIN(171, "PORT03", UNIPHIER_PIN_IECTRL_EXIST,
0529                  122, UNIPHIER_PIN_DRV_3BIT,
0530                  171, UNIPHIER_PIN_PULL_DOWN),
0531     UNIPHIER_PINCTRL_PIN(172, "PORT04", UNIPHIER_PIN_IECTRL_EXIST,
0532                  123, UNIPHIER_PIN_DRV_3BIT,
0533                  172, UNIPHIER_PIN_PULL_DOWN),
0534     UNIPHIER_PINCTRL_PIN(173, "CK27FO", UNIPHIER_PIN_IECTRL_EXIST,
0535                  124, UNIPHIER_PIN_DRV_3BIT,
0536                  173, UNIPHIER_PIN_PULL_DOWN),
0537     UNIPHIER_PINCTRL_PIN(174, "PHSYNCO", UNIPHIER_PIN_IECTRL_EXIST,
0538                  125, UNIPHIER_PIN_DRV_3BIT,
0539                  174, UNIPHIER_PIN_PULL_DOWN),
0540     UNIPHIER_PINCTRL_PIN(175, "PVSYNCO", UNIPHIER_PIN_IECTRL_EXIST,
0541                  126, UNIPHIER_PIN_DRV_3BIT,
0542                  175, UNIPHIER_PIN_PULL_DOWN),
0543 };
0544 
0545 static const unsigned ain1_pins[] = {150, 151, 152, 153};
0546 static const int ain1_muxvals[] = {4, 4, 4, 4};
0547 static const unsigned ain1_dat2_pins[] = {154};
0548 static const int ain1_dat2_muxvals[] = {4};
0549 static const unsigned ain1_dat4_pins[] = {155, 156};
0550 static const int ain1_dat4_muxvals[] = {4, 4};
0551 static const unsigned ain2_pins[] = {116, 117, 118, 119};
0552 static const int ain2_muxvals[] = {26, 26, 26, 26};
0553 static const unsigned ain2_dat2_pins[] = {120};
0554 static const int ain2_dat2_muxvals[] = {26};
0555 static const unsigned ain2_dat4_pins[] = {121, 122};
0556 static const int ain2_dat4_muxvals[] = {26, 26};
0557 static const unsigned ain3_pins[] = {116, 117, 118, 119};
0558 static const int ain3_muxvals[] = {27, 27, 27, 27};
0559 static const unsigned aout1_pins[] = {137, 138, 139, 140};
0560 static const int aout1_muxvals[] = {0, 0, 0, 0};
0561 static const unsigned aout1_dat2_pins[] = {141};
0562 static const int aout1_dat2_muxvals[] = {0};
0563 static const unsigned aout1_dat4_pins[] = {142, 156};
0564 static const int aout1_dat4_muxvals[] = {0, 1};
0565 static const unsigned aout1b_pins[] = {150, 151, 152, 153};
0566 static const int aout1b_muxvals[] = {1, 1, 1, 1};
0567 static const unsigned aout1b_dat2_pins[] = {154};
0568 static const int aout1b_dat2_muxvals[] = {1};
0569 static const unsigned aout1b_dat4_pins[] = {155, 156};
0570 static const int aout1b_dat4_muxvals[] = {1, 1};
0571 static const unsigned aout2_pins[] = {165, 157, 162, 158};
0572 static const int aout2_muxvals[] = {2, 2, 2, 1};
0573 static const unsigned aout2_dat2_pins[] = {159};
0574 static const int aout2_dat2_muxvals[] = {1};
0575 static const unsigned aout2_dat4_pins[] = {160, 161};
0576 static const int aout2_dat4_muxvals[] = {1, 1};
0577 static const unsigned aout3_pins[] = {166, 167, 168, 163};
0578 static const int aout3_muxvals[] = {2, 2, 2, 1};
0579 static const unsigned aout4_pins[] = {169, 170, 171, 164};
0580 static const int aout4_muxvals[] = {2, 2, 2, 1};
0581 static const unsigned aoutiec1_pins[] = {135, 136};
0582 static const int aoutiec1_muxvals[] = {0, 0};
0583 static const unsigned aoutiec2_pins[] = {135, 136};
0584 static const int aoutiec2_muxvals[] = {1, 1};
0585 static const unsigned int emmc_pins[] = {19, 20, 21, 22, 23, 24, 25};
0586 static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0};
0587 static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29};
0588 static const int emmc_dat8_muxvals[] = {0, 0, 0, 0};
0589 static const unsigned ether_rgmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 38,
0590                         39, 40, 41, 42, 43, 44, 45};
0591 static const int ether_rgmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0592                       0, 0, 0, 0};
0593 static const unsigned ether_rmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 39,
0594                        41, 42, 45};
0595 static const int ether_rmii_muxvals[] = {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1};
0596 static const unsigned hscin0_ci_pins[] = {102, 103, 104, 105, 106, 107, 108,
0597                       109, 110, 111, 112};
0598 static const int hscin0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
0599 static const unsigned hscin0_p_pins[] = {102, 103, 104, 105, 106, 107, 108, 109,
0600                      110, 111, 112};
0601 static const int hscin0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0602 static const unsigned hscin0_s_pins[] = {116, 117, 118, 119};
0603 static const int hscin0_s_muxvals[] = {3, 3, 3, 3};
0604 static const unsigned hscin1_p_pins[] = {124, 125, 126, 127, 128, 129, 130, 131,
0605                      132, 133, 134};
0606 static const int hscin1_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0607 static const unsigned hscin1_s_pins[] = {120, 121, 122, 123};
0608 static const int hscin1_s_muxvals[] = {3, 3, 3, 3};
0609 static const unsigned hscin2_s_pins[] = {124, 125, 126, 127};
0610 static const int hscin2_s_muxvals[] = {3, 3, 3, 3};
0611 static const unsigned hscin3_s_pins[] = {129, 130, 131, 132};
0612 static const int hscin3_s_muxvals[] = {3, 3, 3, 3};
0613 static const unsigned hscin4_s_pins[] = {80, 81, 82, 83};
0614 static const int hscin4_s_muxvals[] = {3, 3, 3, 3};
0615 static const unsigned hscout0_ci_pins[] = {113, 114, 115, 116, 117, 118, 119,
0616                        120, 121, 122, 123};
0617 static const int hscout0_ci_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
0618 static const unsigned hscout0_p_pins[] = {113, 114, 115, 116, 117, 118, 119,
0619                       120, 121, 122, 123};
0620 static const int hscout0_p_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0621 static const unsigned hscout0_s_pins[] = {116, 117, 118, 119};
0622 static const int hscout0_s_muxvals[] = {4, 4, 4, 4};
0623 static const unsigned hscout1_s_pins[] = {120, 121, 122, 123};
0624 static const int hscout1_s_muxvals[] = {4, 4, 4, 4};
0625 static const unsigned i2c0_pins[] = {63, 64};
0626 static const int i2c0_muxvals[] = {0, 0};
0627 static const unsigned i2c1_pins[] = {65, 66};
0628 static const int i2c1_muxvals[] = {0, 0};
0629 static const unsigned i2c3_pins[] = {67, 68};
0630 static const int i2c3_muxvals[] = {1, 1};
0631 static const unsigned i2c4_pins[] = {61, 62};
0632 static const int i2c4_muxvals[] = {1, 1};
0633 static const unsigned nand_pins[] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
0634                      15, 16, 17};
0635 static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0636 static const unsigned sd_pins[] = {10, 11, 12, 13, 14, 15, 16, 17};
0637 static const int sd_muxvals[] = {3, 3, 3, 3, 3, 3, 3, 3};  /* No SDVOLC */
0638 static const unsigned spi0_pins[] = {56, 57, 58, 59};
0639 static const int spi0_muxvals[] = {0, 0, 0, 0};
0640 static const unsigned spi1_pins[] = {169, 170, 171, 172};
0641 static const int spi1_muxvals[] = {1, 1, 1, 1};
0642 static const unsigned spi2_pins[] = {86, 87, 88, 89};
0643 static const int spi2_muxvals[] = {1, 1, 1, 1};
0644 static const unsigned spi3_pins[] = {74, 75, 76, 77};
0645 static const int spi3_muxvals[] = {1, 1, 1, 1};
0646 static const unsigned system_bus_pins[] = {1, 2, 6, 7, 8, 9, 10, 11, 12, 13,
0647                        14, 15, 16, 17};
0648 static const int system_bus_muxvals[] = {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
0649                      2};
0650 static const unsigned system_bus_cs1_pins[] = {0};
0651 static const int system_bus_cs1_muxvals[] = {0};
0652 static const unsigned uart0_pins[] = {54, 55};
0653 static const int uart0_muxvals[] = {0, 0};
0654 static const unsigned uart1_pins[] = {58, 59};
0655 static const int uart1_muxvals[] = {1, 1};
0656 static const unsigned uart2_pins[] = {90, 91};
0657 static const int uart2_muxvals[] = {1, 1};
0658 static const unsigned uart3_pins[] = {94, 95};
0659 static const int uart3_muxvals[] = {1, 1};
0660 static const unsigned uart3_ctsrts_pins[] = {96, 98};
0661 static const int uart3_ctsrts_muxvals[] = {1, 1};
0662 static const unsigned uart3_modem_pins[] = {97, 99, 100, 101};
0663 static const int uart3_modem_muxvals[] = {1, 1, 1, 1};
0664 static const unsigned usb0_pins[] = {46, 47};
0665 static const int usb0_muxvals[] = {0, 0};
0666 static const unsigned usb1_pins[] = {48, 49};
0667 static const int usb1_muxvals[] = {0, 0};
0668 static const unsigned usb2_pins[] = {50, 51};
0669 static const int usb2_muxvals[] = {0, 0};
0670 static const unsigned usb3_pins[] = {52, 53};
0671 static const int usb3_muxvals[] = {0, 0};
0672 static const unsigned int gpio_range0_pins[] = {
0673     168, 169, 170, 171, 172, 173, 174, 175,     /* PORT0x */
0674     0, 1, 2, 3, 4, 5, 6, 7,             /* PORT1x */
0675     8, 9, 10, 11, 12, 13, 14, 15,           /* PORT2x */
0676     16, 17, 18, 30, 31, 32, 33, 34,         /* PORT3x */
0677     35, 36, 37, 38, 39, 40, 41, 42,         /* PORT4x */
0678     43, 44, 45, 46, 47, 48, 49, 50,         /* PORT5x */
0679     51, 52, 53, 54, 55, 56, 57, 58,         /* PORT6x */
0680     59, 60, 69, 70, 71, 72, 73, 74,         /* PORT7x */
0681     75, 76, 77, 78, 79, 80, 81, 82,         /* PORT8x */
0682     83, 84, 85, 86, 87, 88, 89, 90,         /* PORT9x */
0683     91, 92, 93, 94, 95, 96, 97, 98,         /* PORT10x */
0684 };
0685 static const unsigned int gpio_range1_pins[] = {
0686     99, 100, 101, 102, 103, 104, 105, 106,      /* PORT12x */
0687     107, 108, 109, 110, 111, 112, 113, 114,     /* PORT13x */
0688     115, 116, 117, 118, 119, 120, 121, 122,     /* PORT14x */
0689     149, 150, 151, 152, 153, 154, 155, 156,     /* XIRQ0-7 */
0690     157, 158, 159, 160, 85, 161, 162, 84,       /* XIRQ8-15 */
0691     163, 164, 165, 166, 167, 146, 52, 53,       /* XIRQ16-23 */
0692     61, 62, 63, 64, 65, 66, 67, 68,         /* PORT18x */
0693 };
0694 static const unsigned int gpio_range2_pins[] = {
0695     123, 124, 125, 126, 127, 128, 129, 130,     /* PORT20x */
0696     131, 132, 133, 134, 135, 136, 137, 138,     /* PORT21x */
0697     139, 140, 141, 142, 143, 144, 145, 146,     /* PORT22x */
0698     147, 148, 149, 150, 151, 152, 153, 154,     /* PORT23x */
0699     155, 156, 157, 158, 159, 160, 161, 162,     /* PORT24x */
0700     163, 164, 165, 166, 167,            /* PORT250-254 */
0701 };
0702 
0703 static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = {
0704     UNIPHIER_PINCTRL_GROUP(ain1),
0705     UNIPHIER_PINCTRL_GROUP(ain1_dat2),
0706     UNIPHIER_PINCTRL_GROUP(ain1_dat4),
0707     UNIPHIER_PINCTRL_GROUP(ain2),
0708     UNIPHIER_PINCTRL_GROUP(ain2_dat2),
0709     UNIPHIER_PINCTRL_GROUP(ain2_dat4),
0710     UNIPHIER_PINCTRL_GROUP(ain3),
0711     UNIPHIER_PINCTRL_GROUP(aout1),
0712     UNIPHIER_PINCTRL_GROUP(aout1_dat2),
0713     UNIPHIER_PINCTRL_GROUP(aout1_dat4),
0714     UNIPHIER_PINCTRL_GROUP(aout1b),
0715     UNIPHIER_PINCTRL_GROUP(aout1b_dat2),
0716     UNIPHIER_PINCTRL_GROUP(aout1b_dat4),
0717     UNIPHIER_PINCTRL_GROUP(aout2),
0718     UNIPHIER_PINCTRL_GROUP(aout2_dat2),
0719     UNIPHIER_PINCTRL_GROUP(aout2_dat4),
0720     UNIPHIER_PINCTRL_GROUP(aout3),
0721     UNIPHIER_PINCTRL_GROUP(aout4),
0722     UNIPHIER_PINCTRL_GROUP(aoutiec1),
0723     UNIPHIER_PINCTRL_GROUP(aoutiec2),
0724     UNIPHIER_PINCTRL_GROUP(emmc),
0725     UNIPHIER_PINCTRL_GROUP(emmc_dat8),
0726     UNIPHIER_PINCTRL_GROUP(ether_rgmii),
0727     UNIPHIER_PINCTRL_GROUP(ether_rmii),
0728     UNIPHIER_PINCTRL_GROUP(hscin0_ci),
0729     UNIPHIER_PINCTRL_GROUP(hscin0_p),
0730     UNIPHIER_PINCTRL_GROUP(hscin0_s),
0731     UNIPHIER_PINCTRL_GROUP(hscin1_p),
0732     UNIPHIER_PINCTRL_GROUP(hscin1_s),
0733     UNIPHIER_PINCTRL_GROUP(hscin2_s),
0734     UNIPHIER_PINCTRL_GROUP(hscin3_s),
0735     UNIPHIER_PINCTRL_GROUP(hscin4_s),
0736     UNIPHIER_PINCTRL_GROUP(hscout0_ci),
0737     UNIPHIER_PINCTRL_GROUP(hscout0_p),
0738     UNIPHIER_PINCTRL_GROUP(hscout0_s),
0739     UNIPHIER_PINCTRL_GROUP(hscout1_s),
0740     UNIPHIER_PINCTRL_GROUP(i2c0),
0741     UNIPHIER_PINCTRL_GROUP(i2c1),
0742     UNIPHIER_PINCTRL_GROUP(i2c3),
0743     UNIPHIER_PINCTRL_GROUP(i2c4),
0744     UNIPHIER_PINCTRL_GROUP(nand),
0745     UNIPHIER_PINCTRL_GROUP(sd),
0746     UNIPHIER_PINCTRL_GROUP(spi0),
0747     UNIPHIER_PINCTRL_GROUP(spi1),
0748     UNIPHIER_PINCTRL_GROUP(spi2),
0749     UNIPHIER_PINCTRL_GROUP(spi3),
0750     UNIPHIER_PINCTRL_GROUP(system_bus),
0751     UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
0752     UNIPHIER_PINCTRL_GROUP(uart0),
0753     UNIPHIER_PINCTRL_GROUP(uart1),
0754     UNIPHIER_PINCTRL_GROUP(uart2),
0755     UNIPHIER_PINCTRL_GROUP(uart3),
0756     UNIPHIER_PINCTRL_GROUP(uart3_ctsrts),
0757     UNIPHIER_PINCTRL_GROUP(uart3_modem),
0758     UNIPHIER_PINCTRL_GROUP(usb0),
0759     UNIPHIER_PINCTRL_GROUP(usb1),
0760     UNIPHIER_PINCTRL_GROUP(usb2),
0761     UNIPHIER_PINCTRL_GROUP(usb3),
0762     UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range0),
0763     UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range1),
0764     UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2),
0765 };
0766 
0767 static const char * const ain1_groups[] = {"ain1", "ain1_dat2",
0768                        "ain1_dat4"};
0769 static const char * const ain2_groups[] = {"ain2", "ain2_dat2",
0770                        "ain2_dat4"};
0771 static const char * const ain3_groups[] = {"ain3"};
0772 static const char * const aout1_groups[] = {"aout1", "aout1_dat2",
0773                         "aout1_dat4",
0774                         "aout1b", "aout1b_dat2",
0775                         "aout1b_dat4"};
0776 static const char * const aout2_groups[] = {"aout2", "aout2_dat2",
0777                         "aout2_dat4"};
0778 static const char * const aout3_groups[] = {"aout3"};
0779 static const char * const aout4_groups[] = {"aout4"};
0780 static const char * const aoutiec1_groups[] = {"aoutiec1"};
0781 static const char * const aoutiec2_groups[] = {"aoutiec2"};
0782 static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
0783 static const char * const ether_rgmii_groups[] = {"ether_rgmii"};
0784 static const char * const ether_rmii_groups[] = {"ether_rmii"};
0785 static const char * const hscin0_groups[] = {"hscin0_ci",
0786                          "hscin0_p",
0787                          "hscin0_s"};
0788 static const char * const hscin1_groups[] = {"hscin1_p", "hscin1_s"};
0789 static const char * const hscin2_groups[] = {"hscin2_s"};
0790 static const char * const hscin3_groups[] = {"hscin3_s"};
0791 static const char * const hscin4_groups[] = {"hscin4_s"};
0792 static const char * const hscout0_groups[] = {"hscout0_ci",
0793                           "hscout0_p",
0794                           "hscout0_s"};
0795 static const char * const hscout1_groups[] = {"hscout1_s"};
0796 static const char * const i2c0_groups[] = {"i2c0"};
0797 static const char * const i2c1_groups[] = {"i2c1"};
0798 static const char * const i2c3_groups[] = {"i2c3"};
0799 static const char * const i2c4_groups[] = {"i2c4"};
0800 static const char * const nand_groups[] = {"nand"};
0801 static const char * const sd_groups[] = {"sd"};
0802 static const char * const spi0_groups[] = {"spi0"};
0803 static const char * const spi1_groups[] = {"spi1"};
0804 static const char * const spi2_groups[] = {"spi2"};
0805 static const char * const spi3_groups[] = {"spi3"};
0806 static const char * const system_bus_groups[] = {"system_bus",
0807                          "system_bus_cs1"};
0808 static const char * const uart0_groups[] = {"uart0"};
0809 static const char * const uart1_groups[] = {"uart1"};
0810 static const char * const uart2_groups[] = {"uart2"};
0811 static const char * const uart3_groups[] = {"uart3", "uart3_ctsrts",
0812                         "uart3_modem"};
0813 static const char * const usb0_groups[] = {"usb0"};
0814 static const char * const usb1_groups[] = {"usb1"};
0815 static const char * const usb2_groups[] = {"usb2"};
0816 static const char * const usb3_groups[] = {"usb3"};
0817 
0818 static const struct uniphier_pinmux_function uniphier_ld20_functions[] = {
0819     UNIPHIER_PINMUX_FUNCTION(ain1),
0820     UNIPHIER_PINMUX_FUNCTION(ain2),
0821     UNIPHIER_PINMUX_FUNCTION(ain3),
0822     UNIPHIER_PINMUX_FUNCTION(aout1),
0823     UNIPHIER_PINMUX_FUNCTION(aout2),
0824     UNIPHIER_PINMUX_FUNCTION(aout3),
0825     UNIPHIER_PINMUX_FUNCTION(aout4),
0826     UNIPHIER_PINMUX_FUNCTION(aoutiec1),
0827     UNIPHIER_PINMUX_FUNCTION(aoutiec2),
0828     UNIPHIER_PINMUX_FUNCTION(emmc),
0829     UNIPHIER_PINMUX_FUNCTION(ether_rgmii),
0830     UNIPHIER_PINMUX_FUNCTION(ether_rmii),
0831     UNIPHIER_PINMUX_FUNCTION(hscin0),
0832     UNIPHIER_PINMUX_FUNCTION(hscin1),
0833     UNIPHIER_PINMUX_FUNCTION(hscin2),
0834     UNIPHIER_PINMUX_FUNCTION(hscin3),
0835     UNIPHIER_PINMUX_FUNCTION(hscin4),
0836     UNIPHIER_PINMUX_FUNCTION(hscout0),
0837     UNIPHIER_PINMUX_FUNCTION(hscout1),
0838     UNIPHIER_PINMUX_FUNCTION(i2c0),
0839     UNIPHIER_PINMUX_FUNCTION(i2c1),
0840     UNIPHIER_PINMUX_FUNCTION(i2c3),
0841     UNIPHIER_PINMUX_FUNCTION(i2c4),
0842     UNIPHIER_PINMUX_FUNCTION(nand),
0843     UNIPHIER_PINMUX_FUNCTION(sd),
0844     UNIPHIER_PINMUX_FUNCTION(spi0),
0845     UNIPHIER_PINMUX_FUNCTION(spi1),
0846     UNIPHIER_PINMUX_FUNCTION(spi2),
0847     UNIPHIER_PINMUX_FUNCTION(spi3),
0848     UNIPHIER_PINMUX_FUNCTION(system_bus),
0849     UNIPHIER_PINMUX_FUNCTION(uart0),
0850     UNIPHIER_PINMUX_FUNCTION(uart1),
0851     UNIPHIER_PINMUX_FUNCTION(uart2),
0852     UNIPHIER_PINMUX_FUNCTION(uart3),
0853     UNIPHIER_PINMUX_FUNCTION(usb0),
0854     UNIPHIER_PINMUX_FUNCTION(usb1),
0855     UNIPHIER_PINMUX_FUNCTION(usb2),
0856     UNIPHIER_PINMUX_FUNCTION(usb3),
0857 };
0858 
0859 static int uniphier_ld20_get_gpio_muxval(unsigned int pin,
0860                      unsigned int gpio_offset)
0861 {
0862     if (gpio_offset == 132 || gpio_offset == 135)   /* XIRQ12, 15 */
0863         return 13;
0864 
0865     if (gpio_offset >= 120 && gpio_offset <= 143)   /* XIRQx */
0866         return 14;
0867 
0868     return 15;
0869 }
0870 
0871 static const struct uniphier_pinctrl_socdata uniphier_ld20_pindata = {
0872     .pins = uniphier_ld20_pins,
0873     .npins = ARRAY_SIZE(uniphier_ld20_pins),
0874     .groups = uniphier_ld20_groups,
0875     .groups_count = ARRAY_SIZE(uniphier_ld20_groups),
0876     .functions = uniphier_ld20_functions,
0877     .functions_count = ARRAY_SIZE(uniphier_ld20_functions),
0878     .get_gpio_muxval = uniphier_ld20_get_gpio_muxval,
0879     .caps = UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL,
0880 };
0881 
0882 static int uniphier_ld20_pinctrl_probe(struct platform_device *pdev)
0883 {
0884     return uniphier_pinctrl_probe(pdev, &uniphier_ld20_pindata);
0885 }
0886 
0887 static const struct of_device_id uniphier_ld20_pinctrl_match[] = {
0888     { .compatible = "socionext,uniphier-ld20-pinctrl" },
0889     { /* sentinel */ }
0890 };
0891 
0892 static struct platform_driver uniphier_ld20_pinctrl_driver = {
0893     .probe = uniphier_ld20_pinctrl_probe,
0894     .driver = {
0895         .name = "uniphier-ld20-pinctrl",
0896         .of_match_table = uniphier_ld20_pinctrl_match,
0897         .pm = &uniphier_pinctrl_pm_ops,
0898     },
0899 };
0900 builtin_platform_driver(uniphier_ld20_pinctrl_driver);