0001
0002
0003
0004
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};
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,
0674 0, 1, 2, 3, 4, 5, 6, 7,
0675 8, 9, 10, 11, 12, 13, 14, 15,
0676 16, 17, 18, 30, 31, 32, 33, 34,
0677 35, 36, 37, 38, 39, 40, 41, 42,
0678 43, 44, 45, 46, 47, 48, 49, 50,
0679 51, 52, 53, 54, 55, 56, 57, 58,
0680 59, 60, 69, 70, 71, 72, 73, 74,
0681 75, 76, 77, 78, 79, 80, 81, 82,
0682 83, 84, 85, 86, 87, 88, 89, 90,
0683 91, 92, 93, 94, 95, 96, 97, 98,
0684 };
0685 static const unsigned int gpio_range1_pins[] = {
0686 99, 100, 101, 102, 103, 104, 105, 106,
0687 107, 108, 109, 110, 111, 112, 113, 114,
0688 115, 116, 117, 118, 119, 120, 121, 122,
0689 149, 150, 151, 152, 153, 154, 155, 156,
0690 157, 158, 159, 160, 85, 161, 162, 84,
0691 163, 164, 165, 166, 167, 146, 52, 53,
0692 61, 62, 63, 64, 65, 66, 67, 68,
0693 };
0694 static const unsigned int gpio_range2_pins[] = {
0695 123, 124, 125, 126, 127, 128, 129, 130,
0696 131, 132, 133, 134, 135, 136, 137, 138,
0697 139, 140, 141, 142, 143, 144, 145, 146,
0698 147, 148, 149, 150, 151, 152, 153, 154,
0699 155, 156, 157, 158, 159, 160, 161, 162,
0700 163, 164, 165, 166, 167,
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)
0863 return 13;
0864
0865 if (gpio_offset >= 120 && gpio_offset <= 143)
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 { }
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);