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_ld4_pins[] = {
0015 UNIPHIER_PINCTRL_PIN(0, "EA1", UNIPHIER_PIN_IECTRL_NONE,
0016 8, UNIPHIER_PIN_DRV_1BIT,
0017 8, UNIPHIER_PIN_PULL_DOWN),
0018 UNIPHIER_PINCTRL_PIN(1, "EA2", UNIPHIER_PIN_IECTRL_NONE,
0019 9, UNIPHIER_PIN_DRV_1BIT,
0020 9, UNIPHIER_PIN_PULL_DOWN),
0021 UNIPHIER_PINCTRL_PIN(2, "EA3", UNIPHIER_PIN_IECTRL_NONE,
0022 10, UNIPHIER_PIN_DRV_1BIT,
0023 10, UNIPHIER_PIN_PULL_DOWN),
0024 UNIPHIER_PINCTRL_PIN(3, "EA4", UNIPHIER_PIN_IECTRL_NONE,
0025 11, UNIPHIER_PIN_DRV_1BIT,
0026 11, UNIPHIER_PIN_PULL_DOWN),
0027 UNIPHIER_PINCTRL_PIN(4, "EA5", UNIPHIER_PIN_IECTRL_NONE,
0028 12, UNIPHIER_PIN_DRV_1BIT,
0029 12, UNIPHIER_PIN_PULL_DOWN),
0030 UNIPHIER_PINCTRL_PIN(5, "EA6", UNIPHIER_PIN_IECTRL_NONE,
0031 13, UNIPHIER_PIN_DRV_1BIT,
0032 13, UNIPHIER_PIN_PULL_DOWN),
0033 UNIPHIER_PINCTRL_PIN(6, "EA7", UNIPHIER_PIN_IECTRL_NONE,
0034 14, UNIPHIER_PIN_DRV_1BIT,
0035 14, UNIPHIER_PIN_PULL_DOWN),
0036 UNIPHIER_PINCTRL_PIN(7, "EA8", 0,
0037 15, UNIPHIER_PIN_DRV_1BIT,
0038 15, UNIPHIER_PIN_PULL_DOWN),
0039 UNIPHIER_PINCTRL_PIN(8, "EA9", 0,
0040 16, UNIPHIER_PIN_DRV_1BIT,
0041 16, UNIPHIER_PIN_PULL_DOWN),
0042 UNIPHIER_PINCTRL_PIN(9, "EA10", 0,
0043 17, UNIPHIER_PIN_DRV_1BIT,
0044 17, UNIPHIER_PIN_PULL_DOWN),
0045 UNIPHIER_PINCTRL_PIN(10, "EA11", 0,
0046 18, UNIPHIER_PIN_DRV_1BIT,
0047 18, UNIPHIER_PIN_PULL_DOWN),
0048 UNIPHIER_PINCTRL_PIN(11, "EA12", 0,
0049 19, UNIPHIER_PIN_DRV_1BIT,
0050 19, UNIPHIER_PIN_PULL_DOWN),
0051 UNIPHIER_PINCTRL_PIN(12, "EA13", 0,
0052 20, UNIPHIER_PIN_DRV_1BIT,
0053 20, UNIPHIER_PIN_PULL_DOWN),
0054 UNIPHIER_PINCTRL_PIN(13, "EA14", 0,
0055 21, UNIPHIER_PIN_DRV_1BIT,
0056 21, UNIPHIER_PIN_PULL_DOWN),
0057 UNIPHIER_PINCTRL_PIN(14, "EA15", 0,
0058 22, UNIPHIER_PIN_DRV_1BIT,
0059 22, UNIPHIER_PIN_PULL_DOWN),
0060 UNIPHIER_PINCTRL_PIN(15, "ECLK", UNIPHIER_PIN_IECTRL_NONE,
0061 23, UNIPHIER_PIN_DRV_1BIT,
0062 23, UNIPHIER_PIN_PULL_DOWN),
0063 UNIPHIER_PINCTRL_PIN(16, "XERWE0", UNIPHIER_PIN_IECTRL_NONE,
0064 24, UNIPHIER_PIN_DRV_1BIT,
0065 24, UNIPHIER_PIN_PULL_UP),
0066 UNIPHIER_PINCTRL_PIN(17, "XERWE1", UNIPHIER_PIN_IECTRL_NONE,
0067 25, UNIPHIER_PIN_DRV_1BIT,
0068 25, UNIPHIER_PIN_PULL_UP),
0069 UNIPHIER_PINCTRL_PIN(18, "ES0", UNIPHIER_PIN_IECTRL_NONE,
0070 27, UNIPHIER_PIN_DRV_1BIT,
0071 27, UNIPHIER_PIN_PULL_UP),
0072 UNIPHIER_PINCTRL_PIN(19, "ES1", UNIPHIER_PIN_IECTRL_NONE,
0073 28, UNIPHIER_PIN_DRV_1BIT,
0074 28, UNIPHIER_PIN_PULL_UP),
0075 UNIPHIER_PINCTRL_PIN(20, "ES2", UNIPHIER_PIN_IECTRL_NONE,
0076 29, UNIPHIER_PIN_DRV_1BIT,
0077 29, UNIPHIER_PIN_PULL_UP),
0078 UNIPHIER_PINCTRL_PIN(21, "XERST", UNIPHIER_PIN_IECTRL_NONE,
0079 38, UNIPHIER_PIN_DRV_1BIT,
0080 38, UNIPHIER_PIN_PULL_UP),
0081 UNIPHIER_PINCTRL_PIN(22, "MMCCLK", UNIPHIER_PIN_IECTRL_NONE,
0082 0, UNIPHIER_PIN_DRV_2BIT,
0083 146, UNIPHIER_PIN_PULL_UP),
0084 UNIPHIER_PINCTRL_PIN(23, "MMCCMD", UNIPHIER_PIN_IECTRL_NONE,
0085 1, UNIPHIER_PIN_DRV_2BIT,
0086 147, UNIPHIER_PIN_PULL_UP),
0087 UNIPHIER_PINCTRL_PIN(24, "MMCDAT0", UNIPHIER_PIN_IECTRL_NONE,
0088 2, UNIPHIER_PIN_DRV_2BIT,
0089 148, UNIPHIER_PIN_PULL_UP),
0090 UNIPHIER_PINCTRL_PIN(25, "MMCDAT1", UNIPHIER_PIN_IECTRL_NONE,
0091 3, UNIPHIER_PIN_DRV_2BIT,
0092 149, UNIPHIER_PIN_PULL_UP),
0093 UNIPHIER_PINCTRL_PIN(26, "MMCDAT2", UNIPHIER_PIN_IECTRL_NONE,
0094 4, UNIPHIER_PIN_DRV_2BIT,
0095 150, UNIPHIER_PIN_PULL_UP),
0096 UNIPHIER_PINCTRL_PIN(27, "MMCDAT3", UNIPHIER_PIN_IECTRL_NONE,
0097 5, UNIPHIER_PIN_DRV_2BIT,
0098 151, UNIPHIER_PIN_PULL_UP),
0099 UNIPHIER_PINCTRL_PIN(28, "MMCDAT4", UNIPHIER_PIN_IECTRL_NONE,
0100 6, UNIPHIER_PIN_DRV_2BIT,
0101 152, UNIPHIER_PIN_PULL_UP),
0102 UNIPHIER_PINCTRL_PIN(29, "MMCDAT5", UNIPHIER_PIN_IECTRL_NONE,
0103 7, UNIPHIER_PIN_DRV_2BIT,
0104 153, UNIPHIER_PIN_PULL_UP),
0105 UNIPHIER_PINCTRL_PIN(30, "MMCDAT6", UNIPHIER_PIN_IECTRL_NONE,
0106 8, UNIPHIER_PIN_DRV_2BIT,
0107 154, UNIPHIER_PIN_PULL_UP),
0108 UNIPHIER_PINCTRL_PIN(31, "MMCDAT7", UNIPHIER_PIN_IECTRL_NONE,
0109 9, UNIPHIER_PIN_DRV_2BIT,
0110 155, UNIPHIER_PIN_PULL_UP),
0111 UNIPHIER_PINCTRL_PIN(32, "RMII_RXD0", 6,
0112 39, UNIPHIER_PIN_DRV_1BIT,
0113 39, UNIPHIER_PIN_PULL_DOWN),
0114 UNIPHIER_PINCTRL_PIN(33, "RMII_RXD1", 6,
0115 40, UNIPHIER_PIN_DRV_1BIT,
0116 40, UNIPHIER_PIN_PULL_DOWN),
0117 UNIPHIER_PINCTRL_PIN(34, "RMII_CRS_DV", 6,
0118 41, UNIPHIER_PIN_DRV_1BIT,
0119 41, UNIPHIER_PIN_PULL_DOWN),
0120 UNIPHIER_PINCTRL_PIN(35, "RMII_RXER", 6,
0121 42, UNIPHIER_PIN_DRV_1BIT,
0122 42, UNIPHIER_PIN_PULL_DOWN),
0123 UNIPHIER_PINCTRL_PIN(36, "RMII_REFCLK", 6,
0124 43, UNIPHIER_PIN_DRV_1BIT,
0125 43, UNIPHIER_PIN_PULL_DOWN),
0126 UNIPHIER_PINCTRL_PIN(37, "RMII_TXD0", 6,
0127 44, UNIPHIER_PIN_DRV_1BIT,
0128 44, UNIPHIER_PIN_PULL_DOWN),
0129 UNIPHIER_PINCTRL_PIN(38, "RMII_TXD1", 6,
0130 45, UNIPHIER_PIN_DRV_1BIT,
0131 45, UNIPHIER_PIN_PULL_DOWN),
0132 UNIPHIER_PINCTRL_PIN(39, "RMII_TXEN", 6,
0133 46, UNIPHIER_PIN_DRV_1BIT,
0134 46, UNIPHIER_PIN_PULL_DOWN),
0135 UNIPHIER_PINCTRL_PIN(40, "MDC", 6,
0136 47, UNIPHIER_PIN_DRV_1BIT,
0137 47, UNIPHIER_PIN_PULL_DOWN),
0138 UNIPHIER_PINCTRL_PIN(41, "MDIO", 6,
0139 48, UNIPHIER_PIN_DRV_1BIT,
0140 48, UNIPHIER_PIN_PULL_DOWN),
0141 UNIPHIER_PINCTRL_PIN(42, "MDIO_INTL", 6,
0142 49, UNIPHIER_PIN_DRV_1BIT,
0143 49, UNIPHIER_PIN_PULL_DOWN),
0144 UNIPHIER_PINCTRL_PIN(43, "PHYRSTL", 6,
0145 50, UNIPHIER_PIN_DRV_1BIT,
0146 50, UNIPHIER_PIN_PULL_DOWN),
0147 UNIPHIER_PINCTRL_PIN(44, "SDCLK", UNIPHIER_PIN_IECTRL_NONE,
0148 10, UNIPHIER_PIN_DRV_2BIT,
0149 156, UNIPHIER_PIN_PULL_UP),
0150 UNIPHIER_PINCTRL_PIN(45, "SDCMD", UNIPHIER_PIN_IECTRL_NONE,
0151 11, UNIPHIER_PIN_DRV_2BIT,
0152 157, UNIPHIER_PIN_PULL_UP),
0153 UNIPHIER_PINCTRL_PIN(46, "SDDAT0", UNIPHIER_PIN_IECTRL_NONE,
0154 12, UNIPHIER_PIN_DRV_2BIT,
0155 158, UNIPHIER_PIN_PULL_UP),
0156 UNIPHIER_PINCTRL_PIN(47, "SDDAT1", UNIPHIER_PIN_IECTRL_NONE,
0157 13, UNIPHIER_PIN_DRV_2BIT,
0158 159, UNIPHIER_PIN_PULL_UP),
0159 UNIPHIER_PINCTRL_PIN(48, "SDDAT2", UNIPHIER_PIN_IECTRL_NONE,
0160 14, UNIPHIER_PIN_DRV_2BIT,
0161 160, UNIPHIER_PIN_PULL_UP),
0162 UNIPHIER_PINCTRL_PIN(49, "SDDAT3", UNIPHIER_PIN_IECTRL_NONE,
0163 15, UNIPHIER_PIN_DRV_2BIT,
0164 161, UNIPHIER_PIN_PULL_UP),
0165 UNIPHIER_PINCTRL_PIN(50, "SDCD", UNIPHIER_PIN_IECTRL_NONE,
0166 51, UNIPHIER_PIN_DRV_1BIT,
0167 51, UNIPHIER_PIN_PULL_UP),
0168 UNIPHIER_PINCTRL_PIN(51, "SDWP", UNIPHIER_PIN_IECTRL_NONE,
0169 52, UNIPHIER_PIN_DRV_1BIT,
0170 52, UNIPHIER_PIN_PULL_UP),
0171 UNIPHIER_PINCTRL_PIN(52, "SDVOLC", UNIPHIER_PIN_IECTRL_NONE,
0172 53, UNIPHIER_PIN_DRV_1BIT,
0173 53, UNIPHIER_PIN_PULL_UP),
0174 UNIPHIER_PINCTRL_PIN(53, "USB0VBUS", 0,
0175 54, UNIPHIER_PIN_DRV_1BIT,
0176 54, UNIPHIER_PIN_PULL_DOWN),
0177 UNIPHIER_PINCTRL_PIN(54, "USB0OD", 0,
0178 55, UNIPHIER_PIN_DRV_1BIT,
0179 55, UNIPHIER_PIN_PULL_DOWN),
0180 UNIPHIER_PINCTRL_PIN(55, "USB1VBUS", 0,
0181 56, UNIPHIER_PIN_DRV_1BIT,
0182 56, UNIPHIER_PIN_PULL_DOWN),
0183 UNIPHIER_PINCTRL_PIN(56, "USB1OD", 0,
0184 57, UNIPHIER_PIN_DRV_1BIT,
0185 57, UNIPHIER_PIN_PULL_DOWN),
0186 UNIPHIER_PINCTRL_PIN(57, "PCRESET", 0,
0187 58, UNIPHIER_PIN_DRV_1BIT,
0188 58, UNIPHIER_PIN_PULL_DOWN),
0189 UNIPHIER_PINCTRL_PIN(58, "PCREG", 0,
0190 59, UNIPHIER_PIN_DRV_1BIT,
0191 59, UNIPHIER_PIN_PULL_DOWN),
0192 UNIPHIER_PINCTRL_PIN(59, "PCCE2", 0,
0193 60, UNIPHIER_PIN_DRV_1BIT,
0194 60, UNIPHIER_PIN_PULL_DOWN),
0195 UNIPHIER_PINCTRL_PIN(60, "PCVS1", 0,
0196 61, UNIPHIER_PIN_DRV_1BIT,
0197 61, UNIPHIER_PIN_PULL_DOWN),
0198 UNIPHIER_PINCTRL_PIN(61, "PCCD2", 0,
0199 62, UNIPHIER_PIN_DRV_1BIT,
0200 62, UNIPHIER_PIN_PULL_DOWN),
0201 UNIPHIER_PINCTRL_PIN(62, "PCCD1", 0,
0202 63, UNIPHIER_PIN_DRV_1BIT,
0203 63, UNIPHIER_PIN_PULL_DOWN),
0204 UNIPHIER_PINCTRL_PIN(63, "PCREADY", 0,
0205 64, UNIPHIER_PIN_DRV_1BIT,
0206 64, UNIPHIER_PIN_PULL_DOWN),
0207 UNIPHIER_PINCTRL_PIN(64, "PCDOE", 0,
0208 65, UNIPHIER_PIN_DRV_1BIT,
0209 65, UNIPHIER_PIN_PULL_DOWN),
0210 UNIPHIER_PINCTRL_PIN(65, "PCCE1", 0,
0211 66, UNIPHIER_PIN_DRV_1BIT,
0212 66, UNIPHIER_PIN_PULL_DOWN),
0213 UNIPHIER_PINCTRL_PIN(66, "PCWE", 0,
0214 67, UNIPHIER_PIN_DRV_1BIT,
0215 67, UNIPHIER_PIN_PULL_DOWN),
0216 UNIPHIER_PINCTRL_PIN(67, "PCOE", 0,
0217 68, UNIPHIER_PIN_DRV_1BIT,
0218 68, UNIPHIER_PIN_PULL_DOWN),
0219 UNIPHIER_PINCTRL_PIN(68, "PCWAIT", 0,
0220 69, UNIPHIER_PIN_DRV_1BIT,
0221 69, UNIPHIER_PIN_PULL_DOWN),
0222 UNIPHIER_PINCTRL_PIN(69, "PCIOWR", 0,
0223 70, UNIPHIER_PIN_DRV_1BIT,
0224 70, UNIPHIER_PIN_PULL_DOWN),
0225 UNIPHIER_PINCTRL_PIN(70, "PCIORD", 0,
0226 71, UNIPHIER_PIN_DRV_1BIT,
0227 71, UNIPHIER_PIN_PULL_DOWN),
0228 UNIPHIER_PINCTRL_PIN(71, "HS0DIN0", 0,
0229 72, UNIPHIER_PIN_DRV_1BIT,
0230 72, UNIPHIER_PIN_PULL_DOWN),
0231 UNIPHIER_PINCTRL_PIN(72, "HS0DIN1", 0,
0232 73, UNIPHIER_PIN_DRV_1BIT,
0233 73, UNIPHIER_PIN_PULL_DOWN),
0234 UNIPHIER_PINCTRL_PIN(73, "HS0DIN2", 0,
0235 74, UNIPHIER_PIN_DRV_1BIT,
0236 74, UNIPHIER_PIN_PULL_DOWN),
0237 UNIPHIER_PINCTRL_PIN(74, "HS0DIN3", 0,
0238 75, UNIPHIER_PIN_DRV_1BIT,
0239 75, UNIPHIER_PIN_PULL_DOWN),
0240 UNIPHIER_PINCTRL_PIN(75, "HS0DIN4", 0,
0241 76, UNIPHIER_PIN_DRV_1BIT,
0242 76, UNIPHIER_PIN_PULL_DOWN),
0243 UNIPHIER_PINCTRL_PIN(76, "HS0DIN5", 0,
0244 77, UNIPHIER_PIN_DRV_1BIT,
0245 77, UNIPHIER_PIN_PULL_DOWN),
0246 UNIPHIER_PINCTRL_PIN(77, "HS0DIN6", 0,
0247 78, UNIPHIER_PIN_DRV_1BIT,
0248 78, UNIPHIER_PIN_PULL_DOWN),
0249 UNIPHIER_PINCTRL_PIN(78, "HS0DIN7", 0,
0250 79, UNIPHIER_PIN_DRV_1BIT,
0251 79, UNIPHIER_PIN_PULL_DOWN),
0252 UNIPHIER_PINCTRL_PIN(79, "HS0BCLKIN", 0,
0253 80, UNIPHIER_PIN_DRV_1BIT,
0254 80, UNIPHIER_PIN_PULL_DOWN),
0255 UNIPHIER_PINCTRL_PIN(80, "HS0VALIN", 0,
0256 81, UNIPHIER_PIN_DRV_1BIT,
0257 81, UNIPHIER_PIN_PULL_DOWN),
0258 UNIPHIER_PINCTRL_PIN(81, "HS0SYNCIN", 0,
0259 82, UNIPHIER_PIN_DRV_1BIT,
0260 82, UNIPHIER_PIN_PULL_DOWN),
0261 UNIPHIER_PINCTRL_PIN(82, "HSDOUT0", 0,
0262 83, UNIPHIER_PIN_DRV_1BIT,
0263 83, UNIPHIER_PIN_PULL_DOWN),
0264 UNIPHIER_PINCTRL_PIN(83, "HSDOUT1", 0,
0265 84, UNIPHIER_PIN_DRV_1BIT,
0266 84, UNIPHIER_PIN_PULL_DOWN),
0267 UNIPHIER_PINCTRL_PIN(84, "HSDOUT2", 0,
0268 85, UNIPHIER_PIN_DRV_1BIT,
0269 85, UNIPHIER_PIN_PULL_DOWN),
0270 UNIPHIER_PINCTRL_PIN(85, "HSDOUT3", 0,
0271 86, UNIPHIER_PIN_DRV_1BIT,
0272 86, UNIPHIER_PIN_PULL_DOWN),
0273 UNIPHIER_PINCTRL_PIN(86, "HSDOUT4", 0,
0274 87, UNIPHIER_PIN_DRV_1BIT,
0275 87, UNIPHIER_PIN_PULL_DOWN),
0276 UNIPHIER_PINCTRL_PIN(87, "HSDOUT5", 0,
0277 88, UNIPHIER_PIN_DRV_1BIT,
0278 88, UNIPHIER_PIN_PULL_DOWN),
0279 UNIPHIER_PINCTRL_PIN(88, "HSDOUT6", 0,
0280 89, UNIPHIER_PIN_DRV_1BIT,
0281 89, UNIPHIER_PIN_PULL_DOWN),
0282 UNIPHIER_PINCTRL_PIN(89, "HSDOUT7", 0,
0283 90, UNIPHIER_PIN_DRV_1BIT,
0284 90, UNIPHIER_PIN_PULL_DOWN),
0285 UNIPHIER_PINCTRL_PIN(90, "HSBCLKOUT", 0,
0286 91, UNIPHIER_PIN_DRV_1BIT,
0287 91, UNIPHIER_PIN_PULL_DOWN),
0288 UNIPHIER_PINCTRL_PIN(91, "HSVALOUT", 0,
0289 92, UNIPHIER_PIN_DRV_1BIT,
0290 92, UNIPHIER_PIN_PULL_DOWN),
0291 UNIPHIER_PINCTRL_PIN(92, "HSSYNCOUT", 0,
0292 93, UNIPHIER_PIN_DRV_1BIT,
0293 93, UNIPHIER_PIN_PULL_DOWN),
0294 UNIPHIER_PINCTRL_PIN(93, "AGCI", 3,
0295 -1, UNIPHIER_PIN_DRV_FIXED4,
0296 162, UNIPHIER_PIN_PULL_DOWN),
0297 UNIPHIER_PINCTRL_PIN(94, "AGCR", 4,
0298 -1, UNIPHIER_PIN_DRV_FIXED4,
0299 163, UNIPHIER_PIN_PULL_DOWN),
0300 UNIPHIER_PINCTRL_PIN(95, "AGCBS", 5,
0301 -1, UNIPHIER_PIN_DRV_FIXED4,
0302 164, UNIPHIER_PIN_PULL_DOWN),
0303 UNIPHIER_PINCTRL_PIN(96, "IECOUT", 0,
0304 94, UNIPHIER_PIN_DRV_1BIT,
0305 94, UNIPHIER_PIN_PULL_DOWN),
0306 UNIPHIER_PINCTRL_PIN(97, "ASMCK", 0,
0307 95, UNIPHIER_PIN_DRV_1BIT,
0308 95, UNIPHIER_PIN_PULL_DOWN),
0309 UNIPHIER_PINCTRL_PIN(98, "ABCKO", UNIPHIER_PIN_IECTRL_NONE,
0310 96, UNIPHIER_PIN_DRV_1BIT,
0311 96, UNIPHIER_PIN_PULL_DOWN),
0312 UNIPHIER_PINCTRL_PIN(99, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE,
0313 97, UNIPHIER_PIN_DRV_1BIT,
0314 97, UNIPHIER_PIN_PULL_DOWN),
0315 UNIPHIER_PINCTRL_PIN(100, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE,
0316 98, UNIPHIER_PIN_DRV_1BIT,
0317 98, UNIPHIER_PIN_PULL_DOWN),
0318 UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0,
0319 99, UNIPHIER_PIN_DRV_1BIT,
0320 99, UNIPHIER_PIN_PULL_DOWN),
0321 UNIPHIER_PINCTRL_PIN(102, "SDA0", UNIPHIER_PIN_IECTRL_NONE,
0322 -1, UNIPHIER_PIN_DRV_FIXED4,
0323 -1, UNIPHIER_PIN_PULL_NONE),
0324 UNIPHIER_PINCTRL_PIN(103, "SCL0", UNIPHIER_PIN_IECTRL_NONE,
0325 -1, UNIPHIER_PIN_DRV_FIXED4,
0326 -1, UNIPHIER_PIN_PULL_NONE),
0327 UNIPHIER_PINCTRL_PIN(104, "SDA1", UNIPHIER_PIN_IECTRL_NONE,
0328 -1, UNIPHIER_PIN_DRV_FIXED4,
0329 -1, UNIPHIER_PIN_PULL_NONE),
0330 UNIPHIER_PINCTRL_PIN(105, "SCL1", UNIPHIER_PIN_IECTRL_NONE,
0331 -1, UNIPHIER_PIN_DRV_FIXED4,
0332 -1, UNIPHIER_PIN_PULL_NONE),
0333 UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", UNIPHIER_PIN_IECTRL_NONE,
0334 -1, UNIPHIER_PIN_DRV_FIXED4,
0335 -1, UNIPHIER_PIN_PULL_NONE),
0336 UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", UNIPHIER_PIN_IECTRL_NONE,
0337 -1, UNIPHIER_PIN_DRV_FIXED4,
0338 -1, UNIPHIER_PIN_PULL_NONE),
0339 UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", UNIPHIER_PIN_IECTRL_NONE,
0340 -1, UNIPHIER_PIN_DRV_FIXED4,
0341 -1, UNIPHIER_PIN_PULL_NONE),
0342 UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", UNIPHIER_PIN_IECTRL_NONE,
0343 -1, UNIPHIER_PIN_DRV_FIXED4,
0344 -1, UNIPHIER_PIN_PULL_NONE),
0345 UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE,
0346 100, UNIPHIER_PIN_DRV_1BIT,
0347 100, UNIPHIER_PIN_PULL_UP),
0348 UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE,
0349 101, UNIPHIER_PIN_DRV_1BIT,
0350 101, UNIPHIER_PIN_PULL_UP),
0351 UNIPHIER_PINCTRL_PIN(112, "HIN", 1,
0352 -1, UNIPHIER_PIN_DRV_FIXED5,
0353 -1, UNIPHIER_PIN_PULL_NONE),
0354 UNIPHIER_PINCTRL_PIN(113, "VIN", 2,
0355 -1, UNIPHIER_PIN_DRV_FIXED5,
0356 -1, UNIPHIER_PIN_PULL_NONE),
0357 UNIPHIER_PINCTRL_PIN(114, "TCON0", UNIPHIER_PIN_IECTRL_NONE,
0358 102, UNIPHIER_PIN_DRV_1BIT,
0359 102, UNIPHIER_PIN_PULL_DOWN),
0360 UNIPHIER_PINCTRL_PIN(115, "TCON1", UNIPHIER_PIN_IECTRL_NONE,
0361 103, UNIPHIER_PIN_DRV_1BIT,
0362 103, UNIPHIER_PIN_PULL_DOWN),
0363 UNIPHIER_PINCTRL_PIN(116, "TCON2", UNIPHIER_PIN_IECTRL_NONE,
0364 104, UNIPHIER_PIN_DRV_1BIT,
0365 104, UNIPHIER_PIN_PULL_DOWN),
0366 UNIPHIER_PINCTRL_PIN(117, "TCON3", UNIPHIER_PIN_IECTRL_NONE,
0367 105, UNIPHIER_PIN_DRV_1BIT,
0368 105, UNIPHIER_PIN_PULL_DOWN),
0369 UNIPHIER_PINCTRL_PIN(118, "TCON4", UNIPHIER_PIN_IECTRL_NONE,
0370 106, UNIPHIER_PIN_DRV_1BIT,
0371 106, UNIPHIER_PIN_PULL_DOWN),
0372 UNIPHIER_PINCTRL_PIN(119, "TCON5", UNIPHIER_PIN_IECTRL_NONE,
0373 107, UNIPHIER_PIN_DRV_1BIT,
0374 107, UNIPHIER_PIN_PULL_DOWN),
0375 UNIPHIER_PINCTRL_PIN(120, "TCON6", 0,
0376 108, UNIPHIER_PIN_DRV_1BIT,
0377 108, UNIPHIER_PIN_PULL_DOWN),
0378 UNIPHIER_PINCTRL_PIN(121, "TCON7", 0,
0379 109, UNIPHIER_PIN_DRV_1BIT,
0380 109, UNIPHIER_PIN_PULL_DOWN),
0381 UNIPHIER_PINCTRL_PIN(122, "PWMA", 0,
0382 110, UNIPHIER_PIN_DRV_1BIT,
0383 110, UNIPHIER_PIN_PULL_DOWN),
0384 UNIPHIER_PINCTRL_PIN(123, "XIRQ1", 0,
0385 111, UNIPHIER_PIN_DRV_1BIT,
0386 111, UNIPHIER_PIN_PULL_DOWN),
0387 UNIPHIER_PINCTRL_PIN(124, "XIRQ2", 0,
0388 112, UNIPHIER_PIN_DRV_1BIT,
0389 112, UNIPHIER_PIN_PULL_DOWN),
0390 UNIPHIER_PINCTRL_PIN(125, "XIRQ3", 0,
0391 113, UNIPHIER_PIN_DRV_1BIT,
0392 113, UNIPHIER_PIN_PULL_DOWN),
0393 UNIPHIER_PINCTRL_PIN(126, "XIRQ4", 0,
0394 114, UNIPHIER_PIN_DRV_1BIT,
0395 114, UNIPHIER_PIN_PULL_DOWN),
0396 UNIPHIER_PINCTRL_PIN(127, "XIRQ5", 0,
0397 115, UNIPHIER_PIN_DRV_1BIT,
0398 115, UNIPHIER_PIN_PULL_DOWN),
0399 UNIPHIER_PINCTRL_PIN(128, "XIRQ6", 0,
0400 116, UNIPHIER_PIN_DRV_1BIT,
0401 116, UNIPHIER_PIN_PULL_DOWN),
0402 UNIPHIER_PINCTRL_PIN(129, "XIRQ7", 0,
0403 117, UNIPHIER_PIN_DRV_1BIT,
0404 117, UNIPHIER_PIN_PULL_DOWN),
0405 UNIPHIER_PINCTRL_PIN(130, "XIRQ8", 0,
0406 118, UNIPHIER_PIN_DRV_1BIT,
0407 118, UNIPHIER_PIN_PULL_DOWN),
0408 UNIPHIER_PINCTRL_PIN(131, "XIRQ9", 0,
0409 119, UNIPHIER_PIN_DRV_1BIT,
0410 119, UNIPHIER_PIN_PULL_DOWN),
0411 UNIPHIER_PINCTRL_PIN(132, "XIRQ10", 0,
0412 120, UNIPHIER_PIN_DRV_1BIT,
0413 120, UNIPHIER_PIN_PULL_DOWN),
0414 UNIPHIER_PINCTRL_PIN(133, "XIRQ11", 0,
0415 121, UNIPHIER_PIN_DRV_1BIT,
0416 121, UNIPHIER_PIN_PULL_DOWN),
0417 UNIPHIER_PINCTRL_PIN(134, "XIRQ14", 0,
0418 122, UNIPHIER_PIN_DRV_1BIT,
0419 122, UNIPHIER_PIN_PULL_DOWN),
0420 UNIPHIER_PINCTRL_PIN(135, "PORT00", 0,
0421 123, UNIPHIER_PIN_DRV_1BIT,
0422 123, UNIPHIER_PIN_PULL_DOWN),
0423 UNIPHIER_PINCTRL_PIN(136, "PORT01", 0,
0424 124, UNIPHIER_PIN_DRV_1BIT,
0425 124, UNIPHIER_PIN_PULL_DOWN),
0426 UNIPHIER_PINCTRL_PIN(137, "PORT02", 0,
0427 125, UNIPHIER_PIN_DRV_1BIT,
0428 125, UNIPHIER_PIN_PULL_DOWN),
0429 UNIPHIER_PINCTRL_PIN(138, "PORT03", 0,
0430 126, UNIPHIER_PIN_DRV_1BIT,
0431 126, UNIPHIER_PIN_PULL_DOWN),
0432 UNIPHIER_PINCTRL_PIN(139, "PORT04", 0,
0433 127, UNIPHIER_PIN_DRV_1BIT,
0434 127, UNIPHIER_PIN_PULL_DOWN),
0435 UNIPHIER_PINCTRL_PIN(140, "PORT05", 0,
0436 128, UNIPHIER_PIN_DRV_1BIT,
0437 128, UNIPHIER_PIN_PULL_DOWN),
0438 UNIPHIER_PINCTRL_PIN(141, "PORT06", 0,
0439 129, UNIPHIER_PIN_DRV_1BIT,
0440 129, UNIPHIER_PIN_PULL_DOWN),
0441 UNIPHIER_PINCTRL_PIN(142, "PORT07", 0,
0442 130, UNIPHIER_PIN_DRV_1BIT,
0443 130, UNIPHIER_PIN_PULL_DOWN),
0444 UNIPHIER_PINCTRL_PIN(143, "PORT10", 0,
0445 131, UNIPHIER_PIN_DRV_1BIT,
0446 131, UNIPHIER_PIN_PULL_DOWN),
0447 UNIPHIER_PINCTRL_PIN(144, "PORT11", 0,
0448 132, UNIPHIER_PIN_DRV_1BIT,
0449 132, UNIPHIER_PIN_PULL_DOWN),
0450 UNIPHIER_PINCTRL_PIN(145, "PORT12", 0,
0451 133, UNIPHIER_PIN_DRV_1BIT,
0452 133, UNIPHIER_PIN_PULL_DOWN),
0453 UNIPHIER_PINCTRL_PIN(146, "PORT13", 0,
0454 134, UNIPHIER_PIN_DRV_1BIT,
0455 134, UNIPHIER_PIN_PULL_DOWN),
0456 UNIPHIER_PINCTRL_PIN(147, "PORT14", 0,
0457 135, UNIPHIER_PIN_DRV_1BIT,
0458 135, UNIPHIER_PIN_PULL_DOWN),
0459 UNIPHIER_PINCTRL_PIN(148, "PORT15", 0,
0460 136, UNIPHIER_PIN_DRV_1BIT,
0461 136, UNIPHIER_PIN_PULL_DOWN),
0462 UNIPHIER_PINCTRL_PIN(149, "PORT16", 0,
0463 137, UNIPHIER_PIN_DRV_1BIT,
0464 137, UNIPHIER_PIN_PULL_DOWN),
0465 UNIPHIER_PINCTRL_PIN(150, "PORT17", UNIPHIER_PIN_IECTRL_NONE,
0466 138, UNIPHIER_PIN_DRV_1BIT,
0467 138, UNIPHIER_PIN_PULL_DOWN),
0468 UNIPHIER_PINCTRL_PIN(151, "PORT20", 0,
0469 139, UNIPHIER_PIN_DRV_1BIT,
0470 139, UNIPHIER_PIN_PULL_DOWN),
0471 UNIPHIER_PINCTRL_PIN(152, "PORT21", 0,
0472 140, UNIPHIER_PIN_DRV_1BIT,
0473 140, UNIPHIER_PIN_PULL_DOWN),
0474 UNIPHIER_PINCTRL_PIN(153, "PORT22", 0,
0475 141, UNIPHIER_PIN_DRV_1BIT,
0476 141, UNIPHIER_PIN_PULL_DOWN),
0477 UNIPHIER_PINCTRL_PIN(154, "PORT23", 0,
0478 142, UNIPHIER_PIN_DRV_1BIT,
0479 142, UNIPHIER_PIN_PULL_DOWN),
0480 UNIPHIER_PINCTRL_PIN(155, "PORT24", UNIPHIER_PIN_IECTRL_NONE,
0481 143, UNIPHIER_PIN_DRV_1BIT,
0482 143, UNIPHIER_PIN_PULL_DOWN),
0483 UNIPHIER_PINCTRL_PIN(156, "PORT25", 0,
0484 144, UNIPHIER_PIN_DRV_1BIT,
0485 144, UNIPHIER_PIN_PULL_DOWN),
0486 UNIPHIER_PINCTRL_PIN(157, "PORT26", 0,
0487 145, UNIPHIER_PIN_DRV_1BIT,
0488 145, UNIPHIER_PIN_PULL_DOWN),
0489 UNIPHIER_PINCTRL_PIN(158, "XNFRE", UNIPHIER_PIN_IECTRL_NONE,
0490 31, UNIPHIER_PIN_DRV_1BIT,
0491 31, UNIPHIER_PIN_PULL_UP),
0492 UNIPHIER_PINCTRL_PIN(159, "XNFWE", UNIPHIER_PIN_IECTRL_NONE,
0493 32, UNIPHIER_PIN_DRV_1BIT,
0494 32, UNIPHIER_PIN_PULL_UP),
0495 UNIPHIER_PINCTRL_PIN(160, "NFALE", UNIPHIER_PIN_IECTRL_NONE,
0496 33, UNIPHIER_PIN_DRV_1BIT,
0497 33, UNIPHIER_PIN_PULL_DOWN),
0498 UNIPHIER_PINCTRL_PIN(161, "NFCLE", UNIPHIER_PIN_IECTRL_NONE,
0499 34, UNIPHIER_PIN_DRV_1BIT,
0500 34, UNIPHIER_PIN_PULL_DOWN),
0501 UNIPHIER_PINCTRL_PIN(162, "XNFWP", UNIPHIER_PIN_IECTRL_NONE,
0502 35, UNIPHIER_PIN_DRV_1BIT,
0503 35, UNIPHIER_PIN_PULL_DOWN),
0504 UNIPHIER_PINCTRL_PIN(163, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE,
0505 36, UNIPHIER_PIN_DRV_1BIT,
0506 36, UNIPHIER_PIN_PULL_UP),
0507 UNIPHIER_PINCTRL_PIN(164, "NANDRYBY0", UNIPHIER_PIN_IECTRL_NONE,
0508 37, UNIPHIER_PIN_DRV_1BIT,
0509 37, UNIPHIER_PIN_PULL_UP),
0510
0511 UNIPHIER_PINCTRL_PIN(165, "ED0", -1,
0512 0, UNIPHIER_PIN_DRV_1BIT,
0513 0, UNIPHIER_PIN_PULL_DOWN),
0514 UNIPHIER_PINCTRL_PIN(166, "ED1", -1,
0515 1, UNIPHIER_PIN_DRV_1BIT,
0516 1, UNIPHIER_PIN_PULL_DOWN),
0517 UNIPHIER_PINCTRL_PIN(167, "ED2", -1,
0518 2, UNIPHIER_PIN_DRV_1BIT,
0519 2, UNIPHIER_PIN_PULL_DOWN),
0520 UNIPHIER_PINCTRL_PIN(168, "ED3", -1,
0521 3, UNIPHIER_PIN_DRV_1BIT,
0522 3, UNIPHIER_PIN_PULL_DOWN),
0523 UNIPHIER_PINCTRL_PIN(169, "ED4", -1,
0524 4, UNIPHIER_PIN_DRV_1BIT,
0525 4, UNIPHIER_PIN_PULL_DOWN),
0526 UNIPHIER_PINCTRL_PIN(170, "ED5", -1,
0527 5, UNIPHIER_PIN_DRV_1BIT,
0528 5, UNIPHIER_PIN_PULL_DOWN),
0529 UNIPHIER_PINCTRL_PIN(171, "ED6", -1,
0530 6, UNIPHIER_PIN_DRV_1BIT,
0531 6, UNIPHIER_PIN_PULL_DOWN),
0532 UNIPHIER_PINCTRL_PIN(172, "ED7", -1,
0533 7, UNIPHIER_PIN_DRV_1BIT,
0534 7, UNIPHIER_PIN_PULL_DOWN),
0535 UNIPHIER_PINCTRL_PIN(173, "ERXW", -1,
0536 26, UNIPHIER_PIN_DRV_1BIT,
0537 26, UNIPHIER_PIN_PULL_UP),
0538 UNIPHIER_PINCTRL_PIN(174, "XECS1", -1,
0539 30, UNIPHIER_PIN_DRV_1BIT,
0540 30, UNIPHIER_PIN_PULL_UP),
0541 };
0542
0543 static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27};
0544 static const int emmc_muxvals[] = {0, 1, 1, 1, 1, 1, 1};
0545 static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31};
0546 static const int emmc_dat8_muxvals[] = {1, 1, 1, 1};
0547 static const unsigned ether_mii_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40,
0548 41, 42, 43, 136, 137, 138, 139, 140,
0549 141, 142};
0550 static const int ether_mii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0551 4, 4, 4, 4, 4, 4, 4};
0552 static const unsigned ether_rmii_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40,
0553 41, 42, 43};
0554 static const int ether_rmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0555 static const unsigned i2c0_pins[] = {102, 103};
0556 static const int i2c0_muxvals[] = {0, 0};
0557 static const unsigned i2c1_pins[] = {104, 105};
0558 static const int i2c1_muxvals[] = {0, 0};
0559 static const unsigned i2c2_pins[] = {108, 109};
0560 static const int i2c2_muxvals[] = {2, 2};
0561 static const unsigned i2c3_pins[] = {108, 109};
0562 static const int i2c3_muxvals[] = {3, 3};
0563 static const unsigned nand_pins[] = {24, 25, 26, 27, 28, 29, 30, 31, 158, 159,
0564 160, 161, 162, 163, 164};
0565 static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0566 static const unsigned nand_cs1_pins[] = {22, 23};
0567 static const int nand_cs1_muxvals[] = {0, 0};
0568 static const unsigned sd_pins[] = {44, 45, 46, 47, 48, 49, 50, 51, 52};
0569 static const int sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
0570 static const unsigned spi0_pins[] = {135, 136, 137, 138};
0571 static const int spi0_muxvals[] = {12, 12, 12, 12};
0572 static const unsigned system_bus_pins[] = {16, 17, 18, 19, 20, 165, 166, 167,
0573 168, 169, 170, 171, 172, 173};
0574 static const int system_bus_muxvals[] = {0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1,
0575 -1, -1, -1};
0576 static const unsigned system_bus_cs0_pins[] = {155};
0577 static const int system_bus_cs0_muxvals[] = {1};
0578 static const unsigned system_bus_cs1_pins[] = {174};
0579 static const int system_bus_cs1_muxvals[] = {-1};
0580 static const unsigned system_bus_cs2_pins[] = {64};
0581 static const int system_bus_cs2_muxvals[] = {1};
0582 static const unsigned system_bus_cs3_pins[] = {156};
0583 static const int system_bus_cs3_muxvals[] = {1};
0584 static const unsigned uart0_pins[] = {85, 88};
0585 static const int uart0_muxvals[] = {1, 1};
0586 static const unsigned uart0_ctsrts_pins[] = {86, 89};
0587 static const int uart0_ctsrts_muxvals[] = {1, 1};
0588 static const unsigned uart0_modem_pins[] = {87};
0589 static const int uart0_modem_muxvals[] = {1};
0590 static const unsigned uart1_pins[] = {155, 156};
0591 static const int uart1_muxvals[] = {13, 13};
0592 static const unsigned uart1b_pins[] = {69, 70};
0593 static const int uart1b_muxvals[] = {23, 23};
0594 static const unsigned uart2_pins[] = {128, 129};
0595 static const int uart2_muxvals[] = {13, 13};
0596 static const unsigned uart3_pins[] = {110, 111};
0597 static const int uart3_muxvals[] = {1, 1};
0598 static const unsigned usb0_pins[] = {53, 54};
0599 static const int usb0_muxvals[] = {0, 0};
0600 static const unsigned usb1_pins[] = {55, 56};
0601 static const int usb1_muxvals[] = {0, 0};
0602 static const unsigned usb2_pins[] = {155, 156};
0603 static const int usb2_muxvals[] = {4, 4};
0604 static const unsigned usb2b_pins[] = {67, 68};
0605 static const int usb2b_muxvals[] = {23, 23};
0606 static const unsigned int gpio_range_pins[] = {
0607 135, 136, 137, 138, 139, 140, 141, 142,
0608 143, 144, 145, 146, 147, 148, 149, 150,
0609 151, 152, 153, 154, 155, 156, 157, 0,
0610 1, 2, 3, 4, 5, 120, 121, 122,
0611 24, 25, 26, 27, 28, 29, 30, 31,
0612 40, 41, 42, 43, 44, 45, 46, 47,
0613 48, 49, 50, 51, 52, 53, 54, 55,
0614 56, 85, 84, 59, 82, 61, 64, 65,
0615 8, 9, 10, 11, 12, 13, 14, 15,
0616 66, 67, 68, 69, 70, 71, 72, 73,
0617 74, 75, 89, 86, 78, 79, 80, 81,
0618 60, 83, 58, 57, 88, 87, 77, 76,
0619 90, 91, 92, 93, 94, 95, 96, 97,
0620 98, 99, 100, 6, 101, 114, 115, 116,
0621 103, 108, 21, 22, 23, 117, 118, 119,
0622 151, 123, 124, 125, 126, 127, 128, 129,
0623 130, 131, 132, 133, 62, 7, 134, 63,
0624 };
0625
0626 static const struct uniphier_pinctrl_group uniphier_ld4_groups[] = {
0627 UNIPHIER_PINCTRL_GROUP(emmc),
0628 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
0629 UNIPHIER_PINCTRL_GROUP(ether_mii),
0630 UNIPHIER_PINCTRL_GROUP(ether_rmii),
0631 UNIPHIER_PINCTRL_GROUP(i2c0),
0632 UNIPHIER_PINCTRL_GROUP(i2c1),
0633 UNIPHIER_PINCTRL_GROUP(i2c2),
0634 UNIPHIER_PINCTRL_GROUP(i2c3),
0635 UNIPHIER_PINCTRL_GROUP(nand),
0636 UNIPHIER_PINCTRL_GROUP(nand_cs1),
0637 UNIPHIER_PINCTRL_GROUP(sd),
0638 UNIPHIER_PINCTRL_GROUP(spi0),
0639 UNIPHIER_PINCTRL_GROUP(system_bus),
0640 UNIPHIER_PINCTRL_GROUP(system_bus_cs0),
0641 UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
0642 UNIPHIER_PINCTRL_GROUP(system_bus_cs2),
0643 UNIPHIER_PINCTRL_GROUP(system_bus_cs3),
0644 UNIPHIER_PINCTRL_GROUP(uart0),
0645 UNIPHIER_PINCTRL_GROUP(uart0_ctsrts),
0646 UNIPHIER_PINCTRL_GROUP(uart0_modem),
0647 UNIPHIER_PINCTRL_GROUP(uart1),
0648 UNIPHIER_PINCTRL_GROUP(uart1b),
0649 UNIPHIER_PINCTRL_GROUP(uart2),
0650 UNIPHIER_PINCTRL_GROUP(uart3),
0651 UNIPHIER_PINCTRL_GROUP(usb0),
0652 UNIPHIER_PINCTRL_GROUP(usb1),
0653 UNIPHIER_PINCTRL_GROUP(usb2),
0654 UNIPHIER_PINCTRL_GROUP(usb2b),
0655 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range),
0656 };
0657
0658 static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
0659 static const char * const ether_mii_groups[] = {"ether_mii"};
0660 static const char * const ether_rmii_groups[] = {"ether_rmii"};
0661 static const char * const i2c0_groups[] = {"i2c0"};
0662 static const char * const i2c1_groups[] = {"i2c1"};
0663 static const char * const i2c2_groups[] = {"i2c2"};
0664 static const char * const i2c3_groups[] = {"i2c3"};
0665 static const char * const nand_groups[] = {"nand", "nand_cs1"};
0666 static const char * const sd_groups[] = {"sd"};
0667 static const char * const spi0_groups[] = {"spi0"};
0668 static const char * const system_bus_groups[] = {"system_bus",
0669 "system_bus_cs0",
0670 "system_bus_cs1",
0671 "system_bus_cs2",
0672 "system_bus_cs3"};
0673 static const char * const uart0_groups[] = {"uart0", "uart0_ctsrts",
0674 "uart0_modem"};
0675 static const char * const uart1_groups[] = {"uart1", "uart1b"};
0676 static const char * const uart2_groups[] = {"uart2"};
0677 static const char * const uart3_groups[] = {"uart3"};
0678 static const char * const usb0_groups[] = {"usb0"};
0679 static const char * const usb1_groups[] = {"usb1"};
0680 static const char * const usb2_groups[] = {"usb2", "usb2b"};
0681
0682 static const struct uniphier_pinmux_function uniphier_ld4_functions[] = {
0683 UNIPHIER_PINMUX_FUNCTION(emmc),
0684 UNIPHIER_PINMUX_FUNCTION(ether_mii),
0685 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
0686 UNIPHIER_PINMUX_FUNCTION(i2c0),
0687 UNIPHIER_PINMUX_FUNCTION(i2c1),
0688 UNIPHIER_PINMUX_FUNCTION(i2c2),
0689 UNIPHIER_PINMUX_FUNCTION(i2c3),
0690 UNIPHIER_PINMUX_FUNCTION(nand),
0691 UNIPHIER_PINMUX_FUNCTION(sd),
0692 UNIPHIER_PINMUX_FUNCTION(spi0),
0693 UNIPHIER_PINMUX_FUNCTION(system_bus),
0694 UNIPHIER_PINMUX_FUNCTION(uart0),
0695 UNIPHIER_PINMUX_FUNCTION(uart1),
0696 UNIPHIER_PINMUX_FUNCTION(uart2),
0697 UNIPHIER_PINMUX_FUNCTION(uart3),
0698 UNIPHIER_PINMUX_FUNCTION(usb0),
0699 UNIPHIER_PINMUX_FUNCTION(usb1),
0700 UNIPHIER_PINMUX_FUNCTION(usb2),
0701 };
0702
0703 static int uniphier_ld4_get_gpio_muxval(unsigned int pin,
0704 unsigned int gpio_offset)
0705 {
0706 switch (gpio_offset) {
0707 case 0 ... 22:
0708 case 121 ... 131:
0709 case 134:
0710 return 0;
0711 case 120:
0712 case 132:
0713 case 135:
0714 return 14;
0715 default:
0716 return 15;
0717 }
0718 }
0719
0720 static const struct uniphier_pinctrl_socdata uniphier_ld4_pindata = {
0721 .pins = uniphier_ld4_pins,
0722 .npins = ARRAY_SIZE(uniphier_ld4_pins),
0723 .groups = uniphier_ld4_groups,
0724 .groups_count = ARRAY_SIZE(uniphier_ld4_groups),
0725 .functions = uniphier_ld4_functions,
0726 .functions_count = ARRAY_SIZE(uniphier_ld4_functions),
0727 .get_gpio_muxval = uniphier_ld4_get_gpio_muxval,
0728 .caps = 0,
0729 };
0730
0731 static int uniphier_ld4_pinctrl_probe(struct platform_device *pdev)
0732 {
0733 return uniphier_pinctrl_probe(pdev, &uniphier_ld4_pindata);
0734 }
0735
0736 static const struct of_device_id uniphier_ld4_pinctrl_match[] = {
0737 { .compatible = "socionext,uniphier-ld4-pinctrl" },
0738 { }
0739 };
0740
0741 static struct platform_driver uniphier_ld4_pinctrl_driver = {
0742 .probe = uniphier_ld4_pinctrl_probe,
0743 .driver = {
0744 .name = "uniphier-ld4-pinctrl",
0745 .of_match_table = uniphier_ld4_pinctrl_match,
0746 .pm = &uniphier_pinctrl_pm_ops,
0747 },
0748 };
0749 builtin_platform_driver(uniphier_ld4_pinctrl_driver);