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