0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include <linux/init.h>
0014 #include <linux/platform_device.h>
0015 #include <linux/of.h>
0016 #include <linux/of_device.h>
0017 #include <linux/pinctrl/pinctrl.h>
0018
0019 #include "pinctrl-sunxi.h"
0020
0021 static const struct sunxi_desc_pin sun4i_a10_pins[] = {
0022 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 0),
0023 SUNXI_FUNCTION(0x0, "gpio_in"),
0024 SUNXI_FUNCTION(0x1, "gpio_out"),
0025 SUNXI_FUNCTION(0x2, "emac"),
0026 SUNXI_FUNCTION(0x3, "spi1"),
0027 SUNXI_FUNCTION(0x4, "uart2"),
0028 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0029 PINCTRL_SUN7I_A20 |
0030 PINCTRL_SUN8I_R40)),
0031 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 1),
0032 SUNXI_FUNCTION(0x0, "gpio_in"),
0033 SUNXI_FUNCTION(0x1, "gpio_out"),
0034 SUNXI_FUNCTION(0x2, "emac"),
0035 SUNXI_FUNCTION(0x3, "spi1"),
0036 SUNXI_FUNCTION(0x4, "uart2"),
0037 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0038 PINCTRL_SUN7I_A20 |
0039 PINCTRL_SUN8I_R40)),
0040 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 2),
0041 SUNXI_FUNCTION(0x0, "gpio_in"),
0042 SUNXI_FUNCTION(0x1, "gpio_out"),
0043 SUNXI_FUNCTION(0x2, "emac"),
0044 SUNXI_FUNCTION(0x3, "spi1"),
0045 SUNXI_FUNCTION(0x4, "uart2"),
0046 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0047 PINCTRL_SUN7I_A20 |
0048 PINCTRL_SUN8I_R40)),
0049 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 3),
0050 SUNXI_FUNCTION(0x0, "gpio_in"),
0051 SUNXI_FUNCTION(0x1, "gpio_out"),
0052 SUNXI_FUNCTION(0x2, "emac"),
0053 SUNXI_FUNCTION(0x3, "spi1"),
0054 SUNXI_FUNCTION(0x4, "uart2"),
0055 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0056 PINCTRL_SUN7I_A20 |
0057 PINCTRL_SUN8I_R40)),
0058 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 4),
0059 SUNXI_FUNCTION(0x0, "gpio_in"),
0060 SUNXI_FUNCTION(0x1, "gpio_out"),
0061 SUNXI_FUNCTION(0x2, "emac"),
0062 SUNXI_FUNCTION(0x3, "spi1"),
0063 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0064 PINCTRL_SUN7I_A20 |
0065 PINCTRL_SUN8I_R40)),
0066 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 5),
0067 SUNXI_FUNCTION(0x0, "gpio_in"),
0068 SUNXI_FUNCTION(0x1, "gpio_out"),
0069 SUNXI_FUNCTION(0x2, "emac"),
0070 SUNXI_FUNCTION(0x3, "spi3"),
0071 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0072 PINCTRL_SUN7I_A20 |
0073 PINCTRL_SUN8I_R40)),
0074 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 6),
0075 SUNXI_FUNCTION(0x0, "gpio_in"),
0076 SUNXI_FUNCTION(0x1, "gpio_out"),
0077 SUNXI_FUNCTION(0x2, "emac"),
0078 SUNXI_FUNCTION(0x3, "spi3"),
0079 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0080 PINCTRL_SUN7I_A20 |
0081 PINCTRL_SUN8I_R40)),
0082 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 7),
0083 SUNXI_FUNCTION(0x0, "gpio_in"),
0084 SUNXI_FUNCTION(0x1, "gpio_out"),
0085 SUNXI_FUNCTION(0x2, "emac"),
0086 SUNXI_FUNCTION(0x3, "spi3"),
0087 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0088 PINCTRL_SUN7I_A20 |
0089 PINCTRL_SUN8I_R40)),
0090 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 8),
0091 SUNXI_FUNCTION(0x0, "gpio_in"),
0092 SUNXI_FUNCTION(0x1, "gpio_out"),
0093 SUNXI_FUNCTION(0x2, "emac"),
0094 SUNXI_FUNCTION(0x3, "spi3"),
0095 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0096 PINCTRL_SUN7I_A20 |
0097 PINCTRL_SUN8I_R40)),
0098 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 9),
0099 SUNXI_FUNCTION(0x0, "gpio_in"),
0100 SUNXI_FUNCTION(0x1, "gpio_out"),
0101 SUNXI_FUNCTION(0x2, "emac"),
0102 SUNXI_FUNCTION(0x3, "spi3"),
0103 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0104 PINCTRL_SUN7I_A20 |
0105 PINCTRL_SUN8I_R40),
0106 SUNXI_FUNCTION_VARIANT(0x6, "i2s1",
0107 PINCTRL_SUN7I_A20 |
0108 PINCTRL_SUN8I_R40)),
0109 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 10),
0110 SUNXI_FUNCTION(0x0, "gpio_in"),
0111 SUNXI_FUNCTION(0x1, "gpio_out"),
0112 SUNXI_FUNCTION(0x2, "emac"),
0113 SUNXI_FUNCTION(0x4, "uart1"),
0114 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0115 PINCTRL_SUN7I_A20 |
0116 PINCTRL_SUN8I_R40)),
0117 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 11),
0118 SUNXI_FUNCTION(0x0, "gpio_in"),
0119 SUNXI_FUNCTION(0x1, "gpio_out"),
0120 SUNXI_FUNCTION(0x2, "emac"),
0121 SUNXI_FUNCTION(0x4, "uart1"),
0122 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0123 PINCTRL_SUN7I_A20 |
0124 PINCTRL_SUN8I_R40)),
0125 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 12),
0126 SUNXI_FUNCTION(0x0, "gpio_in"),
0127 SUNXI_FUNCTION(0x1, "gpio_out"),
0128 SUNXI_FUNCTION(0x2, "emac"),
0129 SUNXI_FUNCTION(0x3, "uart6"),
0130 SUNXI_FUNCTION(0x4, "uart1"),
0131 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0132 PINCTRL_SUN7I_A20 |
0133 PINCTRL_SUN8I_R40)),
0134 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 13),
0135 SUNXI_FUNCTION(0x0, "gpio_in"),
0136 SUNXI_FUNCTION(0x1, "gpio_out"),
0137 SUNXI_FUNCTION(0x2, "emac"),
0138 SUNXI_FUNCTION(0x3, "uart6"),
0139 SUNXI_FUNCTION(0x4, "uart1"),
0140 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0141 PINCTRL_SUN7I_A20 |
0142 PINCTRL_SUN8I_R40)),
0143 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 14),
0144 SUNXI_FUNCTION(0x0, "gpio_in"),
0145 SUNXI_FUNCTION(0x1, "gpio_out"),
0146 SUNXI_FUNCTION(0x2, "emac"),
0147 SUNXI_FUNCTION(0x3, "uart7"),
0148 SUNXI_FUNCTION(0x4, "uart1"),
0149 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0150 PINCTRL_SUN7I_A20 |
0151 PINCTRL_SUN8I_R40),
0152 SUNXI_FUNCTION_VARIANT(0x6, "i2s1",
0153 PINCTRL_SUN7I_A20 |
0154 PINCTRL_SUN8I_R40)),
0155 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 15),
0156 SUNXI_FUNCTION(0x0, "gpio_in"),
0157 SUNXI_FUNCTION(0x1, "gpio_out"),
0158 SUNXI_FUNCTION(0x2, "emac"),
0159 SUNXI_FUNCTION(0x3, "uart7"),
0160 SUNXI_FUNCTION(0x4, "uart1"),
0161 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0162 PINCTRL_SUN7I_A20 |
0163 PINCTRL_SUN8I_R40),
0164 SUNXI_FUNCTION_VARIANT(0x6, "i2s1",
0165 PINCTRL_SUN7I_A20 |
0166 PINCTRL_SUN8I_R40)),
0167 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 16),
0168 SUNXI_FUNCTION(0x0, "gpio_in"),
0169 SUNXI_FUNCTION(0x1, "gpio_out"),
0170 SUNXI_FUNCTION(0x2, "emac"),
0171 SUNXI_FUNCTION(0x3, "can"),
0172 SUNXI_FUNCTION(0x4, "uart1"),
0173 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0174 PINCTRL_SUN7I_A20 |
0175 PINCTRL_SUN8I_R40),
0176 SUNXI_FUNCTION_VARIANT(0x6, "i2s1",
0177 PINCTRL_SUN7I_A20 |
0178 PINCTRL_SUN8I_R40)),
0179 SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 17),
0180 SUNXI_FUNCTION(0x0, "gpio_in"),
0181 SUNXI_FUNCTION(0x1, "gpio_out"),
0182 SUNXI_FUNCTION(0x2, "emac"),
0183 SUNXI_FUNCTION(0x3, "can"),
0184 SUNXI_FUNCTION(0x4, "uart1"),
0185 SUNXI_FUNCTION_VARIANT(0x5, "gmac",
0186 PINCTRL_SUN7I_A20 |
0187 PINCTRL_SUN8I_R40),
0188 SUNXI_FUNCTION_VARIANT(0x6, "i2s1",
0189 PINCTRL_SUN7I_A20 |
0190 PINCTRL_SUN8I_R40)),
0191
0192 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 0),
0193 SUNXI_FUNCTION(0x0, "gpio_in"),
0194 SUNXI_FUNCTION(0x1, "gpio_out"),
0195 SUNXI_FUNCTION(0x2, "i2c0"),
0196 SUNXI_FUNCTION_VARIANT(0x3, "pll_lock_dbg",
0197 PINCTRL_SUN8I_R40)),
0198 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 1),
0199 SUNXI_FUNCTION(0x0, "gpio_in"),
0200 SUNXI_FUNCTION(0x1, "gpio_out"),
0201 SUNXI_FUNCTION(0x2, "i2c0")),
0202 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 2),
0203 SUNXI_FUNCTION(0x0, "gpio_in"),
0204 SUNXI_FUNCTION(0x1, "gpio_out"),
0205 SUNXI_FUNCTION_VARIANT(0x2, "pwm",
0206 PINCTRL_SUN4I_A10 |
0207 PINCTRL_SUN7I_A20),
0208 SUNXI_FUNCTION_VARIANT(0x3, "pwm",
0209 PINCTRL_SUN8I_R40)),
0210 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 3),
0211 SUNXI_FUNCTION(0x0, "gpio_in"),
0212 SUNXI_FUNCTION(0x1, "gpio_out"),
0213 SUNXI_FUNCTION_VARIANT(0x2, "ir0",
0214 PINCTRL_SUN4I_A10 |
0215 PINCTRL_SUN7I_A20),
0216 SUNXI_FUNCTION_VARIANT(0x3, "pwm",
0217 PINCTRL_SUN8I_R40),
0218
0219
0220
0221
0222
0223
0224 SUNXI_FUNCTION(0x4, "spdif")),
0225 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 4),
0226 SUNXI_FUNCTION(0x0, "gpio_in"),
0227 SUNXI_FUNCTION(0x1, "gpio_out"),
0228 SUNXI_FUNCTION(0x2, "ir0")),
0229 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 5),
0230 SUNXI_FUNCTION(0x0, "gpio_in"),
0231 SUNXI_FUNCTION(0x1, "gpio_out"),
0232
0233
0234
0235
0236
0237
0238 SUNXI_FUNCTION_VARIANT(0x2, "i2s",
0239 PINCTRL_SUN4I_A10),
0240 SUNXI_FUNCTION_VARIANT(0x2, "i2s0",
0241 PINCTRL_SUN7I_A20 |
0242 PINCTRL_SUN8I_R40),
0243 SUNXI_FUNCTION(0x3, "ac97")),
0244 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 6),
0245 SUNXI_FUNCTION(0x0, "gpio_in"),
0246 SUNXI_FUNCTION(0x1, "gpio_out"),
0247 SUNXI_FUNCTION_VARIANT(0x2, "i2s",
0248 PINCTRL_SUN4I_A10),
0249 SUNXI_FUNCTION_VARIANT(0x2, "i2s0",
0250 PINCTRL_SUN7I_A20 |
0251 PINCTRL_SUN8I_R40),
0252 SUNXI_FUNCTION(0x3, "ac97")),
0253 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 7),
0254 SUNXI_FUNCTION(0x0, "gpio_in"),
0255 SUNXI_FUNCTION(0x1, "gpio_out"),
0256 SUNXI_FUNCTION_VARIANT(0x2, "i2s",
0257 PINCTRL_SUN4I_A10),
0258 SUNXI_FUNCTION_VARIANT(0x2, "i2s0",
0259 PINCTRL_SUN7I_A20 |
0260 PINCTRL_SUN8I_R40),
0261 SUNXI_FUNCTION(0x3, "ac97")),
0262 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 8),
0263 SUNXI_FUNCTION(0x0, "gpio_in"),
0264 SUNXI_FUNCTION(0x1, "gpio_out"),
0265 SUNXI_FUNCTION_VARIANT(0x2, "i2s",
0266 PINCTRL_SUN4I_A10),
0267 SUNXI_FUNCTION_VARIANT(0x2, "i2s0",
0268 PINCTRL_SUN7I_A20 |
0269 PINCTRL_SUN8I_R40),
0270 SUNXI_FUNCTION(0x3, "ac97")),
0271 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 9),
0272 SUNXI_FUNCTION(0x0, "gpio_in"),
0273 SUNXI_FUNCTION(0x1, "gpio_out"),
0274 SUNXI_FUNCTION_VARIANT(0x2, "i2s",
0275 PINCTRL_SUN4I_A10),
0276 SUNXI_FUNCTION_VARIANT(0x2, "i2s0",
0277 PINCTRL_SUN7I_A20 |
0278 PINCTRL_SUN8I_R40),
0279 SUNXI_FUNCTION_VARIANT(0x4, "pwm",
0280 PINCTRL_SUN8I_R40)),
0281 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 10),
0282 SUNXI_FUNCTION(0x0, "gpio_in"),
0283 SUNXI_FUNCTION(0x1, "gpio_out"),
0284 SUNXI_FUNCTION_VARIANT(0x2, "i2s",
0285 PINCTRL_SUN4I_A10),
0286 SUNXI_FUNCTION_VARIANT(0x2, "i2s0",
0287 PINCTRL_SUN7I_A20 |
0288 PINCTRL_SUN8I_R40),
0289 SUNXI_FUNCTION_VARIANT(0x4, "pwm",
0290 PINCTRL_SUN8I_R40)),
0291 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 11),
0292 SUNXI_FUNCTION(0x0, "gpio_in"),
0293 SUNXI_FUNCTION(0x1, "gpio_out"),
0294 SUNXI_FUNCTION_VARIANT(0x2, "i2s",
0295 PINCTRL_SUN4I_A10),
0296 SUNXI_FUNCTION_VARIANT(0x2, "i2s0",
0297 PINCTRL_SUN7I_A20 |
0298 PINCTRL_SUN8I_R40)),
0299 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 12),
0300 SUNXI_FUNCTION(0x0, "gpio_in"),
0301 SUNXI_FUNCTION(0x1, "gpio_out"),
0302 SUNXI_FUNCTION_VARIANT(0x2, "i2s",
0303 PINCTRL_SUN4I_A10),
0304 SUNXI_FUNCTION_VARIANT(0x2, "i2s0",
0305 PINCTRL_SUN7I_A20 |
0306 PINCTRL_SUN8I_R40),
0307 SUNXI_FUNCTION(0x3, "ac97"),
0308
0309 SUNXI_FUNCTION_VARIANT(0x4, "spdif",
0310 PINCTRL_SUN4I_A10 |
0311 PINCTRL_SUN7I_A20)),
0312 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 13),
0313 SUNXI_FUNCTION(0x0, "gpio_in"),
0314 SUNXI_FUNCTION(0x1, "gpio_out"),
0315 SUNXI_FUNCTION(0x2, "spi2"),
0316
0317 SUNXI_FUNCTION(0x4, "spdif")),
0318 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 14),
0319 SUNXI_FUNCTION(0x0, "gpio_in"),
0320 SUNXI_FUNCTION(0x1, "gpio_out"),
0321 SUNXI_FUNCTION(0x2, "spi2"),
0322 SUNXI_FUNCTION(0x3, "jtag")),
0323 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 15),
0324 SUNXI_FUNCTION(0x0, "gpio_in"),
0325 SUNXI_FUNCTION(0x1, "gpio_out"),
0326 SUNXI_FUNCTION(0x2, "spi2"),
0327 SUNXI_FUNCTION(0x3, "jtag")),
0328 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 16),
0329 SUNXI_FUNCTION(0x0, "gpio_in"),
0330 SUNXI_FUNCTION(0x1, "gpio_out"),
0331 SUNXI_FUNCTION(0x2, "spi2"),
0332 SUNXI_FUNCTION(0x3, "jtag")),
0333 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 17),
0334 SUNXI_FUNCTION(0x0, "gpio_in"),
0335 SUNXI_FUNCTION(0x1, "gpio_out"),
0336 SUNXI_FUNCTION(0x2, "spi2"),
0337 SUNXI_FUNCTION(0x3, "jtag")),
0338 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 18),
0339 SUNXI_FUNCTION(0x0, "gpio_in"),
0340 SUNXI_FUNCTION(0x1, "gpio_out"),
0341 SUNXI_FUNCTION(0x2, "i2c1")),
0342 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 19),
0343 SUNXI_FUNCTION(0x0, "gpio_in"),
0344 SUNXI_FUNCTION(0x1, "gpio_out"),
0345 SUNXI_FUNCTION(0x2, "i2c1")),
0346 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 20),
0347 SUNXI_FUNCTION(0x0, "gpio_in"),
0348 SUNXI_FUNCTION(0x1, "gpio_out"),
0349 SUNXI_FUNCTION(0x2, "i2c2"),
0350 SUNXI_FUNCTION_VARIANT(0x4, "pwm",
0351 PINCTRL_SUN8I_R40)),
0352 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 21),
0353 SUNXI_FUNCTION(0x0, "gpio_in"),
0354 SUNXI_FUNCTION(0x1, "gpio_out"),
0355 SUNXI_FUNCTION(0x2, "i2c2"),
0356 SUNXI_FUNCTION_VARIANT(0x4, "pwm",
0357 PINCTRL_SUN8I_R40)),
0358 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 22),
0359 SUNXI_FUNCTION(0x0, "gpio_in"),
0360 SUNXI_FUNCTION(0x1, "gpio_out"),
0361 SUNXI_FUNCTION(0x2, "uart0"),
0362 SUNXI_FUNCTION_VARIANT(0x3, "ir1",
0363 PINCTRL_SUN4I_A10 |
0364 PINCTRL_SUN7I_A20)),
0365 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 23),
0366 SUNXI_FUNCTION(0x0, "gpio_in"),
0367 SUNXI_FUNCTION(0x1, "gpio_out"),
0368 SUNXI_FUNCTION(0x2, "uart0"),
0369 SUNXI_FUNCTION(0x3, "ir1")),
0370
0371 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 0),
0372 SUNXI_FUNCTION(0x0, "gpio_in"),
0373 SUNXI_FUNCTION(0x1, "gpio_out"),
0374 SUNXI_FUNCTION(0x2, "nand0"),
0375 SUNXI_FUNCTION(0x3, "spi0")),
0376 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 1),
0377 SUNXI_FUNCTION(0x0, "gpio_in"),
0378 SUNXI_FUNCTION(0x1, "gpio_out"),
0379 SUNXI_FUNCTION(0x2, "nand0"),
0380 SUNXI_FUNCTION(0x3, "spi0")),
0381 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 2),
0382 SUNXI_FUNCTION(0x0, "gpio_in"),
0383 SUNXI_FUNCTION(0x1, "gpio_out"),
0384 SUNXI_FUNCTION(0x2, "nand0"),
0385 SUNXI_FUNCTION(0x3, "spi0")),
0386 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 3),
0387 SUNXI_FUNCTION(0x0, "gpio_in"),
0388 SUNXI_FUNCTION(0x1, "gpio_out"),
0389 SUNXI_FUNCTION(0x2, "nand0")),
0390 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 4),
0391 SUNXI_FUNCTION(0x0, "gpio_in"),
0392 SUNXI_FUNCTION(0x1, "gpio_out"),
0393 SUNXI_FUNCTION(0x2, "nand0")),
0394 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 5),
0395 SUNXI_FUNCTION(0x0, "gpio_in"),
0396 SUNXI_FUNCTION(0x1, "gpio_out"),
0397 SUNXI_FUNCTION(0x2, "nand0"),
0398 SUNXI_FUNCTION_VARIANT(0x3, "mmc2",
0399 PINCTRL_SUN8I_R40)),
0400 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 6),
0401 SUNXI_FUNCTION(0x0, "gpio_in"),
0402 SUNXI_FUNCTION(0x1, "gpio_out"),
0403 SUNXI_FUNCTION(0x2, "nand0"),
0404 SUNXI_FUNCTION(0x3, "mmc2")),
0405 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 7),
0406 SUNXI_FUNCTION(0x0, "gpio_in"),
0407 SUNXI_FUNCTION(0x1, "gpio_out"),
0408 SUNXI_FUNCTION(0x2, "nand0"),
0409 SUNXI_FUNCTION(0x3, "mmc2")),
0410 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 8),
0411 SUNXI_FUNCTION(0x0, "gpio_in"),
0412 SUNXI_FUNCTION(0x1, "gpio_out"),
0413 SUNXI_FUNCTION(0x2, "nand0"),
0414 SUNXI_FUNCTION(0x3, "mmc2")),
0415 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 9),
0416 SUNXI_FUNCTION(0x0, "gpio_in"),
0417 SUNXI_FUNCTION(0x1, "gpio_out"),
0418 SUNXI_FUNCTION(0x2, "nand0"),
0419 SUNXI_FUNCTION(0x3, "mmc2")),
0420 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 10),
0421 SUNXI_FUNCTION(0x0, "gpio_in"),
0422 SUNXI_FUNCTION(0x1, "gpio_out"),
0423 SUNXI_FUNCTION(0x2, "nand0"),
0424 SUNXI_FUNCTION(0x3, "mmc2")),
0425 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 11),
0426 SUNXI_FUNCTION(0x0, "gpio_in"),
0427 SUNXI_FUNCTION(0x1, "gpio_out"),
0428 SUNXI_FUNCTION(0x2, "nand0"),
0429 SUNXI_FUNCTION(0x3, "mmc2")),
0430 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 12),
0431 SUNXI_FUNCTION(0x0, "gpio_in"),
0432 SUNXI_FUNCTION(0x1, "gpio_out"),
0433 SUNXI_FUNCTION(0x2, "nand0"),
0434 SUNXI_FUNCTION_VARIANT(0x3, "mmc2",
0435 PINCTRL_SUN8I_R40)),
0436 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 13),
0437 SUNXI_FUNCTION(0x0, "gpio_in"),
0438 SUNXI_FUNCTION(0x1, "gpio_out"),
0439 SUNXI_FUNCTION(0x2, "nand0"),
0440 SUNXI_FUNCTION_VARIANT(0x3, "mmc2",
0441 PINCTRL_SUN8I_R40)),
0442 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14),
0443 SUNXI_FUNCTION(0x0, "gpio_in"),
0444 SUNXI_FUNCTION(0x1, "gpio_out"),
0445 SUNXI_FUNCTION(0x2, "nand0"),
0446 SUNXI_FUNCTION_VARIANT(0x3, "mmc2",
0447 PINCTRL_SUN8I_R40)),
0448 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15),
0449 SUNXI_FUNCTION(0x0, "gpio_in"),
0450 SUNXI_FUNCTION(0x1, "gpio_out"),
0451 SUNXI_FUNCTION(0x2, "nand0"),
0452 SUNXI_FUNCTION_VARIANT(0x3, "mmc2",
0453 PINCTRL_SUN8I_R40)),
0454 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16),
0455 SUNXI_FUNCTION(0x0, "gpio_in"),
0456 SUNXI_FUNCTION(0x1, "gpio_out"),
0457 SUNXI_FUNCTION(0x2, "nand0")),
0458 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 17),
0459 SUNXI_FUNCTION(0x0, "gpio_in"),
0460 SUNXI_FUNCTION(0x1, "gpio_out"),
0461 SUNXI_FUNCTION(0x2, "nand0")),
0462 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 18),
0463 SUNXI_FUNCTION(0x0, "gpio_in"),
0464 SUNXI_FUNCTION(0x1, "gpio_out"),
0465 SUNXI_FUNCTION(0x2, "nand0")),
0466 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 19),
0467 SUNXI_FUNCTION(0x0, "gpio_in"),
0468 SUNXI_FUNCTION(0x1, "gpio_out"),
0469 SUNXI_FUNCTION(0x2, "nand0"),
0470 SUNXI_FUNCTION(0x3, "spi2")),
0471 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 20),
0472 SUNXI_FUNCTION(0x0, "gpio_in"),
0473 SUNXI_FUNCTION(0x1, "gpio_out"),
0474 SUNXI_FUNCTION(0x2, "nand0"),
0475 SUNXI_FUNCTION(0x3, "spi2")),
0476 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 21),
0477 SUNXI_FUNCTION(0x0, "gpio_in"),
0478 SUNXI_FUNCTION(0x1, "gpio_out"),
0479 SUNXI_FUNCTION(0x2, "nand0"),
0480 SUNXI_FUNCTION(0x3, "spi2")),
0481 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 22),
0482 SUNXI_FUNCTION(0x0, "gpio_in"),
0483 SUNXI_FUNCTION(0x1, "gpio_out"),
0484 SUNXI_FUNCTION(0x2, "nand0"),
0485 SUNXI_FUNCTION(0x3, "spi2")),
0486 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 23),
0487 SUNXI_FUNCTION(0x0, "gpio_in"),
0488 SUNXI_FUNCTION(0x1, "gpio_out"),
0489 SUNXI_FUNCTION(0x3, "spi0")),
0490 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 24),
0491 SUNXI_FUNCTION(0x0, "gpio_in"),
0492 SUNXI_FUNCTION(0x1, "gpio_out"),
0493 SUNXI_FUNCTION(0x2, "nand0"),
0494 SUNXI_FUNCTION_VARIANT(0x3, "mmc2",
0495 PINCTRL_SUN8I_R40)),
0496
0497 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 0),
0498 SUNXI_FUNCTION(0x0, "gpio_in"),
0499 SUNXI_FUNCTION(0x1, "gpio_out"),
0500 SUNXI_FUNCTION(0x2, "lcd0"),
0501 SUNXI_FUNCTION(0x3, "lvds0")),
0502 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 1),
0503 SUNXI_FUNCTION(0x0, "gpio_in"),
0504 SUNXI_FUNCTION(0x1, "gpio_out"),
0505 SUNXI_FUNCTION(0x2, "lcd0"),
0506 SUNXI_FUNCTION(0x3, "lvds0")),
0507 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 2),
0508 SUNXI_FUNCTION(0x0, "gpio_in"),
0509 SUNXI_FUNCTION(0x1, "gpio_out"),
0510 SUNXI_FUNCTION(0x2, "lcd0"),
0511 SUNXI_FUNCTION(0x3, "lvds0")),
0512 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 3),
0513 SUNXI_FUNCTION(0x0, "gpio_in"),
0514 SUNXI_FUNCTION(0x1, "gpio_out"),
0515 SUNXI_FUNCTION(0x2, "lcd0"),
0516 SUNXI_FUNCTION(0x3, "lvds0")),
0517 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 4),
0518 SUNXI_FUNCTION(0x0, "gpio_in"),
0519 SUNXI_FUNCTION(0x1, "gpio_out"),
0520 SUNXI_FUNCTION(0x2, "lcd0"),
0521 SUNXI_FUNCTION(0x3, "lvds0")),
0522 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 5),
0523 SUNXI_FUNCTION(0x0, "gpio_in"),
0524 SUNXI_FUNCTION(0x1, "gpio_out"),
0525 SUNXI_FUNCTION(0x2, "lcd0"),
0526 SUNXI_FUNCTION(0x3, "lvds0")),
0527 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 6),
0528 SUNXI_FUNCTION(0x0, "gpio_in"),
0529 SUNXI_FUNCTION(0x1, "gpio_out"),
0530 SUNXI_FUNCTION(0x2, "lcd0"),
0531 SUNXI_FUNCTION(0x3, "lvds0")),
0532 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 7),
0533 SUNXI_FUNCTION(0x0, "gpio_in"),
0534 SUNXI_FUNCTION(0x1, "gpio_out"),
0535 SUNXI_FUNCTION(0x2, "lcd0"),
0536 SUNXI_FUNCTION(0x3, "lvds0")),
0537 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 8),
0538 SUNXI_FUNCTION(0x0, "gpio_in"),
0539 SUNXI_FUNCTION(0x1, "gpio_out"),
0540 SUNXI_FUNCTION(0x2, "lcd0"),
0541 SUNXI_FUNCTION(0x3, "lvds0")),
0542 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 9),
0543 SUNXI_FUNCTION(0x0, "gpio_in"),
0544 SUNXI_FUNCTION(0x1, "gpio_out"),
0545 SUNXI_FUNCTION(0x2, "lcd0"),
0546 SUNXI_FUNCTION(0x3, "lvds0")),
0547 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 10),
0548 SUNXI_FUNCTION(0x0, "gpio_in"),
0549 SUNXI_FUNCTION(0x1, "gpio_out"),
0550 SUNXI_FUNCTION(0x2, "lcd0"),
0551 SUNXI_FUNCTION(0x3, "lvds1")),
0552 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 11),
0553 SUNXI_FUNCTION(0x0, "gpio_in"),
0554 SUNXI_FUNCTION(0x1, "gpio_out"),
0555 SUNXI_FUNCTION(0x2, "lcd0"),
0556 SUNXI_FUNCTION(0x3, "lvds1")),
0557 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 12),
0558 SUNXI_FUNCTION(0x0, "gpio_in"),
0559 SUNXI_FUNCTION(0x1, "gpio_out"),
0560 SUNXI_FUNCTION(0x2, "lcd0"),
0561 SUNXI_FUNCTION(0x3, "lvds1")),
0562 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 13),
0563 SUNXI_FUNCTION(0x0, "gpio_in"),
0564 SUNXI_FUNCTION(0x1, "gpio_out"),
0565 SUNXI_FUNCTION(0x2, "lcd0"),
0566 SUNXI_FUNCTION(0x3, "lvds1")),
0567 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 14),
0568 SUNXI_FUNCTION(0x0, "gpio_in"),
0569 SUNXI_FUNCTION(0x1, "gpio_out"),
0570 SUNXI_FUNCTION(0x2, "lcd0"),
0571 SUNXI_FUNCTION(0x3, "lvds1")),
0572 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 15),
0573 SUNXI_FUNCTION(0x0, "gpio_in"),
0574 SUNXI_FUNCTION(0x1, "gpio_out"),
0575 SUNXI_FUNCTION(0x2, "lcd0"),
0576 SUNXI_FUNCTION(0x3, "lvds1")),
0577 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 16),
0578 SUNXI_FUNCTION(0x0, "gpio_in"),
0579 SUNXI_FUNCTION(0x1, "gpio_out"),
0580 SUNXI_FUNCTION(0x2, "lcd0"),
0581 SUNXI_FUNCTION(0x3, "lvds1")),
0582 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 17),
0583 SUNXI_FUNCTION(0x0, "gpio_in"),
0584 SUNXI_FUNCTION(0x1, "gpio_out"),
0585 SUNXI_FUNCTION(0x2, "lcd0"),
0586 SUNXI_FUNCTION(0x3, "lvds1")),
0587 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 18),
0588 SUNXI_FUNCTION(0x0, "gpio_in"),
0589 SUNXI_FUNCTION(0x1, "gpio_out"),
0590 SUNXI_FUNCTION(0x2, "lcd0"),
0591 SUNXI_FUNCTION(0x3, "lvds1")),
0592 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 19),
0593 SUNXI_FUNCTION(0x0, "gpio_in"),
0594 SUNXI_FUNCTION(0x1, "gpio_out"),
0595 SUNXI_FUNCTION(0x2, "lcd0"),
0596 SUNXI_FUNCTION(0x3, "lvds1")),
0597 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 20),
0598 SUNXI_FUNCTION(0x0, "gpio_in"),
0599 SUNXI_FUNCTION(0x1, "gpio_out"),
0600 SUNXI_FUNCTION(0x2, "lcd0"),
0601 SUNXI_FUNCTION(0x3, "csi1")),
0602 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 21),
0603 SUNXI_FUNCTION(0x0, "gpio_in"),
0604 SUNXI_FUNCTION(0x1, "gpio_out"),
0605 SUNXI_FUNCTION(0x2, "lcd0"),
0606 SUNXI_FUNCTION(0x3, "sim")),
0607 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 22),
0608 SUNXI_FUNCTION(0x0, "gpio_in"),
0609 SUNXI_FUNCTION(0x1, "gpio_out"),
0610 SUNXI_FUNCTION(0x2, "lcd0"),
0611 SUNXI_FUNCTION(0x3, "sim")),
0612 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 23),
0613 SUNXI_FUNCTION(0x0, "gpio_in"),
0614 SUNXI_FUNCTION(0x1, "gpio_out"),
0615 SUNXI_FUNCTION(0x2, "lcd0"),
0616 SUNXI_FUNCTION(0x3, "sim")),
0617 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 24),
0618 SUNXI_FUNCTION(0x0, "gpio_in"),
0619 SUNXI_FUNCTION(0x1, "gpio_out"),
0620 SUNXI_FUNCTION(0x2, "lcd0"),
0621 SUNXI_FUNCTION(0x3, "sim")),
0622 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 25),
0623 SUNXI_FUNCTION(0x0, "gpio_in"),
0624 SUNXI_FUNCTION(0x1, "gpio_out"),
0625 SUNXI_FUNCTION(0x2, "lcd0"),
0626 SUNXI_FUNCTION(0x3, "sim")),
0627 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 26),
0628 SUNXI_FUNCTION(0x0, "gpio_in"),
0629 SUNXI_FUNCTION(0x1, "gpio_out"),
0630 SUNXI_FUNCTION(0x2, "lcd0"),
0631 SUNXI_FUNCTION(0x3, "sim")),
0632 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 27),
0633 SUNXI_FUNCTION(0x0, "gpio_in"),
0634 SUNXI_FUNCTION(0x1, "gpio_out"),
0635 SUNXI_FUNCTION(0x2, "lcd0"),
0636 SUNXI_FUNCTION(0x3, "sim")),
0637
0638 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 0),
0639 SUNXI_FUNCTION(0x0, "gpio_in"),
0640 SUNXI_FUNCTION(0x1, "gpio_out"),
0641 SUNXI_FUNCTION(0x2, "ts0"),
0642 SUNXI_FUNCTION(0x3, "csi0")),
0643 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 1),
0644 SUNXI_FUNCTION(0x0, "gpio_in"),
0645 SUNXI_FUNCTION(0x1, "gpio_out"),
0646 SUNXI_FUNCTION(0x2, "ts0"),
0647 SUNXI_FUNCTION(0x3, "csi0")),
0648 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 2),
0649 SUNXI_FUNCTION(0x0, "gpio_in"),
0650 SUNXI_FUNCTION(0x1, "gpio_out"),
0651 SUNXI_FUNCTION(0x2, "ts0"),
0652 SUNXI_FUNCTION(0x3, "csi0")),
0653 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 3),
0654 SUNXI_FUNCTION(0x0, "gpio_in"),
0655 SUNXI_FUNCTION(0x1, "gpio_out"),
0656 SUNXI_FUNCTION(0x2, "ts0"),
0657 SUNXI_FUNCTION(0x3, "csi0")),
0658 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 4),
0659 SUNXI_FUNCTION(0x0, "gpio_in"),
0660 SUNXI_FUNCTION(0x1, "gpio_out"),
0661 SUNXI_FUNCTION(0x2, "ts0"),
0662 SUNXI_FUNCTION(0x3, "csi0")),
0663 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 5),
0664 SUNXI_FUNCTION(0x0, "gpio_in"),
0665 SUNXI_FUNCTION(0x1, "gpio_out"),
0666 SUNXI_FUNCTION(0x2, "ts0"),
0667 SUNXI_FUNCTION(0x3, "csi0"),
0668 SUNXI_FUNCTION(0x4, "sim")),
0669 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 6),
0670 SUNXI_FUNCTION(0x0, "gpio_in"),
0671 SUNXI_FUNCTION(0x1, "gpio_out"),
0672 SUNXI_FUNCTION(0x2, "ts0"),
0673 SUNXI_FUNCTION(0x3, "csi0")),
0674 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 7),
0675 SUNXI_FUNCTION(0x0, "gpio_in"),
0676 SUNXI_FUNCTION(0x1, "gpio_out"),
0677 SUNXI_FUNCTION(0x2, "ts0"),
0678 SUNXI_FUNCTION(0x3, "csi0")),
0679 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 8),
0680 SUNXI_FUNCTION(0x0, "gpio_in"),
0681 SUNXI_FUNCTION(0x1, "gpio_out"),
0682 SUNXI_FUNCTION(0x2, "ts0"),
0683 SUNXI_FUNCTION(0x3, "csi0")),
0684 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 9),
0685 SUNXI_FUNCTION(0x0, "gpio_in"),
0686 SUNXI_FUNCTION(0x1, "gpio_out"),
0687 SUNXI_FUNCTION(0x2, "ts0"),
0688 SUNXI_FUNCTION(0x3, "csi0")),
0689 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 10),
0690 SUNXI_FUNCTION(0x0, "gpio_in"),
0691 SUNXI_FUNCTION(0x1, "gpio_out"),
0692 SUNXI_FUNCTION(0x2, "ts0"),
0693 SUNXI_FUNCTION(0x3, "csi0")),
0694 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 11),
0695 SUNXI_FUNCTION(0x0, "gpio_in"),
0696 SUNXI_FUNCTION(0x1, "gpio_out"),
0697 SUNXI_FUNCTION(0x2, "ts0"),
0698 SUNXI_FUNCTION(0x3, "csi0")),
0699
0700 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 0),
0701 SUNXI_FUNCTION(0x0, "gpio_in"),
0702 SUNXI_FUNCTION(0x1, "gpio_out"),
0703 SUNXI_FUNCTION(0x2, "mmc0"),
0704 SUNXI_FUNCTION(0x4, "jtag")),
0705 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 1),
0706 SUNXI_FUNCTION(0x0, "gpio_in"),
0707 SUNXI_FUNCTION(0x1, "gpio_out"),
0708 SUNXI_FUNCTION(0x2, "mmc0"),
0709 SUNXI_FUNCTION(0x4, "jtag")),
0710 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 2),
0711 SUNXI_FUNCTION(0x0, "gpio_in"),
0712 SUNXI_FUNCTION(0x1, "gpio_out"),
0713 SUNXI_FUNCTION(0x2, "mmc0"),
0714 SUNXI_FUNCTION(0x4, "uart0")),
0715 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 3),
0716 SUNXI_FUNCTION(0x0, "gpio_in"),
0717 SUNXI_FUNCTION(0x1, "gpio_out"),
0718 SUNXI_FUNCTION(0x2, "mmc0"),
0719 SUNXI_FUNCTION(0x4, "jtag")),
0720 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 4),
0721 SUNXI_FUNCTION(0x0, "gpio_in"),
0722 SUNXI_FUNCTION(0x1, "gpio_out"),
0723 SUNXI_FUNCTION(0x2, "mmc0"),
0724 SUNXI_FUNCTION(0x4, "uart0")),
0725 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 5),
0726 SUNXI_FUNCTION(0x0, "gpio_in"),
0727 SUNXI_FUNCTION(0x1, "gpio_out"),
0728 SUNXI_FUNCTION(0x2, "mmc0"),
0729 SUNXI_FUNCTION(0x4, "jtag")),
0730
0731 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 0),
0732 SUNXI_FUNCTION(0x0, "gpio_in"),
0733 SUNXI_FUNCTION(0x1, "gpio_out"),
0734 SUNXI_FUNCTION(0x2, "ts1"),
0735 SUNXI_FUNCTION(0x3, "csi1"),
0736 SUNXI_FUNCTION(0x4, "mmc1")),
0737 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 1),
0738 SUNXI_FUNCTION(0x0, "gpio_in"),
0739 SUNXI_FUNCTION(0x1, "gpio_out"),
0740 SUNXI_FUNCTION(0x2, "ts1"),
0741 SUNXI_FUNCTION(0x3, "csi1"),
0742 SUNXI_FUNCTION(0x4, "mmc1")),
0743 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 2),
0744 SUNXI_FUNCTION(0x0, "gpio_in"),
0745 SUNXI_FUNCTION(0x1, "gpio_out"),
0746 SUNXI_FUNCTION(0x2, "ts1"),
0747 SUNXI_FUNCTION(0x3, "csi1"),
0748 SUNXI_FUNCTION(0x4, "mmc1")),
0749 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 3),
0750 SUNXI_FUNCTION(0x0, "gpio_in"),
0751 SUNXI_FUNCTION(0x1, "gpio_out"),
0752 SUNXI_FUNCTION(0x2, "ts1"),
0753 SUNXI_FUNCTION(0x3, "csi1"),
0754 SUNXI_FUNCTION(0x4, "mmc1")),
0755 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 4),
0756 SUNXI_FUNCTION(0x0, "gpio_in"),
0757 SUNXI_FUNCTION(0x1, "gpio_out"),
0758 SUNXI_FUNCTION(0x2, "ts1"),
0759 SUNXI_FUNCTION(0x3, "csi1"),
0760 SUNXI_FUNCTION(0x4, "mmc1"),
0761 SUNXI_FUNCTION(0x5, "csi0")),
0762 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 5),
0763 SUNXI_FUNCTION(0x0, "gpio_in"),
0764 SUNXI_FUNCTION(0x1, "gpio_out"),
0765 SUNXI_FUNCTION(0x2, "ts1"),
0766 SUNXI_FUNCTION(0x3, "csi1"),
0767 SUNXI_FUNCTION(0x4, "mmc1"),
0768 SUNXI_FUNCTION(0x5, "csi0")),
0769 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 6),
0770 SUNXI_FUNCTION(0x0, "gpio_in"),
0771 SUNXI_FUNCTION(0x1, "gpio_out"),
0772 SUNXI_FUNCTION(0x2, "ts1"),
0773 SUNXI_FUNCTION(0x3, "csi1"),
0774 SUNXI_FUNCTION(0x4, "uart3"),
0775 SUNXI_FUNCTION(0x5, "csi0")),
0776 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 7),
0777 SUNXI_FUNCTION(0x0, "gpio_in"),
0778 SUNXI_FUNCTION(0x1, "gpio_out"),
0779 SUNXI_FUNCTION(0x2, "ts1"),
0780 SUNXI_FUNCTION(0x3, "csi1"),
0781 SUNXI_FUNCTION(0x4, "uart3"),
0782 SUNXI_FUNCTION(0x5, "csi0")),
0783 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 8),
0784 SUNXI_FUNCTION(0x0, "gpio_in"),
0785 SUNXI_FUNCTION(0x1, "gpio_out"),
0786 SUNXI_FUNCTION(0x2, "ts1"),
0787 SUNXI_FUNCTION(0x3, "csi1"),
0788 SUNXI_FUNCTION(0x4, "uart3"),
0789 SUNXI_FUNCTION(0x5, "csi0")),
0790 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 9),
0791 SUNXI_FUNCTION(0x0, "gpio_in"),
0792 SUNXI_FUNCTION(0x1, "gpio_out"),
0793 SUNXI_FUNCTION(0x2, "ts1"),
0794 SUNXI_FUNCTION(0x3, "csi1"),
0795 SUNXI_FUNCTION(0x4, "uart3"),
0796 SUNXI_FUNCTION(0x5, "csi0"),
0797 SUNXI_FUNCTION_VARIANT(0x6, "bist",
0798 PINCTRL_SUN8I_R40)),
0799 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 10),
0800 SUNXI_FUNCTION(0x0, "gpio_in"),
0801 SUNXI_FUNCTION(0x1, "gpio_out"),
0802 SUNXI_FUNCTION(0x2, "ts1"),
0803 SUNXI_FUNCTION(0x3, "csi1"),
0804 SUNXI_FUNCTION(0x4, "uart4"),
0805 SUNXI_FUNCTION(0x5, "csi0"),
0806 SUNXI_FUNCTION_VARIANT(0x6, "bist",
0807 PINCTRL_SUN8I_R40)),
0808 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 11),
0809 SUNXI_FUNCTION(0x0, "gpio_in"),
0810 SUNXI_FUNCTION(0x1, "gpio_out"),
0811 SUNXI_FUNCTION(0x2, "ts1"),
0812 SUNXI_FUNCTION(0x3, "csi1"),
0813 SUNXI_FUNCTION(0x4, "uart4"),
0814 SUNXI_FUNCTION(0x5, "csi0")),
0815
0816 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 0),
0817 SUNXI_FUNCTION(0x0, "gpio_in"),
0818 SUNXI_FUNCTION(0x1, "gpio_out"),
0819 SUNXI_FUNCTION(0x2, "lcd1"),
0820 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0821 PINCTRL_SUN4I_A10),
0822 SUNXI_FUNCTION(0x4, "uart3"),
0823 SUNXI_FUNCTION_IRQ(0x6, 0),
0824 SUNXI_FUNCTION(0x7, "csi1")),
0825 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 1),
0826 SUNXI_FUNCTION(0x0, "gpio_in"),
0827 SUNXI_FUNCTION(0x1, "gpio_out"),
0828 SUNXI_FUNCTION(0x2, "lcd1"),
0829 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0830 PINCTRL_SUN4I_A10),
0831 SUNXI_FUNCTION(0x4, "uart3"),
0832 SUNXI_FUNCTION_IRQ(0x6, 1),
0833 SUNXI_FUNCTION(0x7, "csi1")),
0834 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 2),
0835 SUNXI_FUNCTION(0x0, "gpio_in"),
0836 SUNXI_FUNCTION(0x1, "gpio_out"),
0837 SUNXI_FUNCTION(0x2, "lcd1"),
0838 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0839 PINCTRL_SUN4I_A10),
0840 SUNXI_FUNCTION(0x4, "uart3"),
0841 SUNXI_FUNCTION_IRQ(0x6, 2),
0842 SUNXI_FUNCTION(0x7, "csi1")),
0843 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 3),
0844 SUNXI_FUNCTION(0x0, "gpio_in"),
0845 SUNXI_FUNCTION(0x1, "gpio_out"),
0846 SUNXI_FUNCTION(0x2, "lcd1"),
0847 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0848 PINCTRL_SUN4I_A10),
0849 SUNXI_FUNCTION(0x4, "uart3"),
0850 SUNXI_FUNCTION_IRQ(0x6, 3),
0851 SUNXI_FUNCTION(0x7, "csi1")),
0852 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 4),
0853 SUNXI_FUNCTION(0x0, "gpio_in"),
0854 SUNXI_FUNCTION(0x1, "gpio_out"),
0855 SUNXI_FUNCTION(0x2, "lcd1"),
0856 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0857 PINCTRL_SUN4I_A10),
0858 SUNXI_FUNCTION(0x4, "uart4"),
0859 SUNXI_FUNCTION_IRQ(0x6, 4),
0860 SUNXI_FUNCTION(0x7, "csi1")),
0861 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 5),
0862 SUNXI_FUNCTION(0x0, "gpio_in"),
0863 SUNXI_FUNCTION(0x1, "gpio_out"),
0864 SUNXI_FUNCTION(0x2, "lcd1"),
0865 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0866 PINCTRL_SUN4I_A10),
0867 SUNXI_FUNCTION(0x4, "uart4"),
0868 SUNXI_FUNCTION_IRQ(0x6, 5),
0869 SUNXI_FUNCTION(0x7, "csi1")),
0870 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 6),
0871 SUNXI_FUNCTION(0x0, "gpio_in"),
0872 SUNXI_FUNCTION(0x1, "gpio_out"),
0873 SUNXI_FUNCTION(0x2, "lcd1"),
0874 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0875 PINCTRL_SUN4I_A10),
0876 SUNXI_FUNCTION(0x4, "uart5"),
0877 SUNXI_FUNCTION_VARIANT(0x5, "ms",
0878 PINCTRL_SUN4I_A10 |
0879 PINCTRL_SUN7I_A20),
0880 SUNXI_FUNCTION_IRQ(0x6, 6),
0881 SUNXI_FUNCTION(0x7, "csi1")),
0882 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 7),
0883 SUNXI_FUNCTION(0x0, "gpio_in"),
0884 SUNXI_FUNCTION(0x1, "gpio_out"),
0885 SUNXI_FUNCTION(0x2, "lcd1"),
0886 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0887 PINCTRL_SUN4I_A10),
0888 SUNXI_FUNCTION(0x4, "uart5"),
0889 SUNXI_FUNCTION_VARIANT(0x5, "ms",
0890 PINCTRL_SUN4I_A10 |
0891 PINCTRL_SUN7I_A20),
0892 SUNXI_FUNCTION_IRQ(0x6, 7),
0893 SUNXI_FUNCTION(0x7, "csi1")),
0894 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 8),
0895 SUNXI_FUNCTION(0x0, "gpio_in"),
0896 SUNXI_FUNCTION(0x1, "gpio_out"),
0897 SUNXI_FUNCTION(0x2, "lcd1"),
0898 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0899 PINCTRL_SUN4I_A10),
0900 SUNXI_FUNCTION_VARIANT(0x3, "emac",
0901 PINCTRL_SUN7I_A20 |
0902 PINCTRL_SUN8I_R40),
0903 SUNXI_FUNCTION(0x4, "keypad"),
0904 SUNXI_FUNCTION_VARIANT(0x5, "ms",
0905 PINCTRL_SUN4I_A10 |
0906 PINCTRL_SUN7I_A20),
0907 SUNXI_FUNCTION_IRQ(0x6, 8),
0908 SUNXI_FUNCTION(0x7, "csi1")),
0909 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 9),
0910 SUNXI_FUNCTION(0x0, "gpio_in"),
0911 SUNXI_FUNCTION(0x1, "gpio_out"),
0912 SUNXI_FUNCTION(0x2, "lcd1"),
0913 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0914 PINCTRL_SUN4I_A10),
0915 SUNXI_FUNCTION_VARIANT(0x3, "emac",
0916 PINCTRL_SUN7I_A20 |
0917 PINCTRL_SUN8I_R40),
0918 SUNXI_FUNCTION(0x4, "keypad"),
0919 SUNXI_FUNCTION_VARIANT(0x5, "ms",
0920 PINCTRL_SUN4I_A10 |
0921 PINCTRL_SUN7I_A20),
0922 SUNXI_FUNCTION_IRQ(0x6, 9),
0923 SUNXI_FUNCTION(0x7, "csi1")),
0924 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 10),
0925 SUNXI_FUNCTION(0x0, "gpio_in"),
0926 SUNXI_FUNCTION(0x1, "gpio_out"),
0927 SUNXI_FUNCTION(0x2, "lcd1"),
0928 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0929 PINCTRL_SUN4I_A10),
0930 SUNXI_FUNCTION_VARIANT(0x3, "emac",
0931 PINCTRL_SUN7I_A20 |
0932 PINCTRL_SUN8I_R40),
0933 SUNXI_FUNCTION(0x4, "keypad"),
0934 SUNXI_FUNCTION_VARIANT(0x5, "ms",
0935 PINCTRL_SUN4I_A10 |
0936 PINCTRL_SUN7I_A20),
0937 SUNXI_FUNCTION_IRQ(0x6, 10),
0938 SUNXI_FUNCTION(0x7, "csi1")),
0939 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 11),
0940 SUNXI_FUNCTION(0x0, "gpio_in"),
0941 SUNXI_FUNCTION(0x1, "gpio_out"),
0942 SUNXI_FUNCTION(0x2, "lcd1"),
0943 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0944 PINCTRL_SUN4I_A10),
0945 SUNXI_FUNCTION_VARIANT(0x3, "emac",
0946 PINCTRL_SUN7I_A20 |
0947 PINCTRL_SUN8I_R40),
0948 SUNXI_FUNCTION(0x4, "keypad"),
0949 SUNXI_FUNCTION_VARIANT(0x5, "ms",
0950 PINCTRL_SUN4I_A10 |
0951 PINCTRL_SUN7I_A20),
0952 SUNXI_FUNCTION_IRQ(0x6, 11),
0953 SUNXI_FUNCTION(0x7, "csi1")),
0954 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 12),
0955 SUNXI_FUNCTION(0x0, "gpio_in"),
0956 SUNXI_FUNCTION(0x1, "gpio_out"),
0957 SUNXI_FUNCTION(0x2, "lcd1"),
0958 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0959 PINCTRL_SUN4I_A10),
0960 SUNXI_FUNCTION(0x4, "ps2"),
0961 SUNXI_FUNCTION_IRQ(0x6, 12),
0962 SUNXI_FUNCTION(0x7, "csi1")),
0963 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 13),
0964 SUNXI_FUNCTION(0x0, "gpio_in"),
0965 SUNXI_FUNCTION(0x1, "gpio_out"),
0966 SUNXI_FUNCTION(0x2, "lcd1"),
0967 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0968 PINCTRL_SUN4I_A10),
0969 SUNXI_FUNCTION(0x4, "ps2"),
0970 SUNXI_FUNCTION(0x5, "sim"),
0971 SUNXI_FUNCTION_IRQ(0x6, 13),
0972 SUNXI_FUNCTION(0x7, "csi1")),
0973 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 14),
0974 SUNXI_FUNCTION(0x0, "gpio_in"),
0975 SUNXI_FUNCTION(0x1, "gpio_out"),
0976 SUNXI_FUNCTION(0x2, "lcd1"),
0977 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0978 PINCTRL_SUN4I_A10),
0979 SUNXI_FUNCTION_VARIANT(0x3, "emac",
0980 PINCTRL_SUN7I_A20 |
0981 PINCTRL_SUN8I_R40),
0982 SUNXI_FUNCTION(0x4, "keypad"),
0983 SUNXI_FUNCTION(0x5, "sim"),
0984 SUNXI_FUNCTION_IRQ(0x6, 14),
0985 SUNXI_FUNCTION(0x7, "csi1")),
0986 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 15),
0987 SUNXI_FUNCTION(0x0, "gpio_in"),
0988 SUNXI_FUNCTION(0x1, "gpio_out"),
0989 SUNXI_FUNCTION(0x2, "lcd1"),
0990 SUNXI_FUNCTION_VARIANT(0x3, "pata",
0991 PINCTRL_SUN4I_A10),
0992 SUNXI_FUNCTION_VARIANT(0x3, "emac",
0993 PINCTRL_SUN7I_A20 |
0994 PINCTRL_SUN8I_R40),
0995 SUNXI_FUNCTION(0x4, "keypad"),
0996 SUNXI_FUNCTION(0x5, "sim"),
0997 SUNXI_FUNCTION_IRQ(0x6, 15),
0998 SUNXI_FUNCTION(0x7, "csi1")),
0999 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 16),
1000 SUNXI_FUNCTION(0x0, "gpio_in"),
1001 SUNXI_FUNCTION(0x1, "gpio_out"),
1002 SUNXI_FUNCTION(0x2, "lcd1"),
1003 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1004 PINCTRL_SUN4I_A10),
1005 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1006 PINCTRL_SUN7I_A20 |
1007 PINCTRL_SUN8I_R40),
1008 SUNXI_FUNCTION(0x4, "keypad"),
1009 SUNXI_FUNCTION(0x5, "sim"),
1010 SUNXI_FUNCTION_IRQ(0x6, 16),
1011 SUNXI_FUNCTION(0x7, "csi1")),
1012 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17),
1013 SUNXI_FUNCTION(0x0, "gpio_in"),
1014 SUNXI_FUNCTION(0x1, "gpio_out"),
1015 SUNXI_FUNCTION(0x2, "lcd1"),
1016 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1017 PINCTRL_SUN4I_A10),
1018 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1019 PINCTRL_SUN7I_A20 |
1020 PINCTRL_SUN8I_R40),
1021 SUNXI_FUNCTION(0x4, "keypad"),
1022 SUNXI_FUNCTION(0x5, "sim"),
1023 SUNXI_FUNCTION_IRQ(0x6, 17),
1024 SUNXI_FUNCTION(0x7, "csi1")),
1025 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 18),
1026 SUNXI_FUNCTION(0x0, "gpio_in"),
1027 SUNXI_FUNCTION(0x1, "gpio_out"),
1028 SUNXI_FUNCTION(0x2, "lcd1"),
1029 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1030 PINCTRL_SUN4I_A10),
1031 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1032 PINCTRL_SUN7I_A20 |
1033 PINCTRL_SUN8I_R40),
1034 SUNXI_FUNCTION(0x4, "keypad"),
1035 SUNXI_FUNCTION(0x5, "sim"),
1036 SUNXI_FUNCTION_IRQ(0x6, 18),
1037 SUNXI_FUNCTION(0x7, "csi1")),
1038 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 19),
1039 SUNXI_FUNCTION(0x0, "gpio_in"),
1040 SUNXI_FUNCTION(0x1, "gpio_out"),
1041 SUNXI_FUNCTION(0x2, "lcd1"),
1042 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1043 PINCTRL_SUN4I_A10),
1044 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1045 PINCTRL_SUN7I_A20 |
1046 PINCTRL_SUN8I_R40),
1047 SUNXI_FUNCTION(0x4, "keypad"),
1048 SUNXI_FUNCTION(0x5, "sim"),
1049 SUNXI_FUNCTION_IRQ(0x6, 19),
1050 SUNXI_FUNCTION(0x7, "csi1")),
1051 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 20),
1052 SUNXI_FUNCTION(0x0, "gpio_in"),
1053 SUNXI_FUNCTION(0x1, "gpio_out"),
1054 SUNXI_FUNCTION(0x2, "lcd1"),
1055 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1056 PINCTRL_SUN4I_A10),
1057 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1058 PINCTRL_SUN7I_A20 |
1059 PINCTRL_SUN8I_R40),
1060 SUNXI_FUNCTION(0x4, "can"),
1061 SUNXI_FUNCTION_IRQ(0x6, 20),
1062 SUNXI_FUNCTION(0x7, "csi1")),
1063 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 21),
1064 SUNXI_FUNCTION(0x0, "gpio_in"),
1065 SUNXI_FUNCTION(0x1, "gpio_out"),
1066 SUNXI_FUNCTION(0x2, "lcd1"),
1067 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1068 PINCTRL_SUN4I_A10),
1069 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1070 PINCTRL_SUN7I_A20 |
1071 PINCTRL_SUN8I_R40),
1072 SUNXI_FUNCTION(0x4, "can"),
1073 SUNXI_FUNCTION_IRQ(0x6, 21),
1074 SUNXI_FUNCTION(0x7, "csi1")),
1075 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 22),
1076 SUNXI_FUNCTION(0x0, "gpio_in"),
1077 SUNXI_FUNCTION(0x1, "gpio_out"),
1078 SUNXI_FUNCTION(0x2, "lcd1"),
1079 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1080 PINCTRL_SUN4I_A10),
1081 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1082 PINCTRL_SUN7I_A20 |
1083 PINCTRL_SUN8I_R40),
1084 SUNXI_FUNCTION(0x4, "keypad"),
1085 SUNXI_FUNCTION(0x5, "mmc1"),
1086 SUNXI_FUNCTION(0x7, "csi1")),
1087 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 23),
1088 SUNXI_FUNCTION(0x0, "gpio_in"),
1089 SUNXI_FUNCTION(0x1, "gpio_out"),
1090 SUNXI_FUNCTION(0x2, "lcd1"),
1091 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1092 PINCTRL_SUN4I_A10),
1093 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1094 PINCTRL_SUN7I_A20 |
1095 PINCTRL_SUN8I_R40),
1096 SUNXI_FUNCTION(0x4, "keypad"),
1097 SUNXI_FUNCTION(0x5, "mmc1"),
1098 SUNXI_FUNCTION(0x7, "csi1")),
1099 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 24),
1100 SUNXI_FUNCTION(0x0, "gpio_in"),
1101 SUNXI_FUNCTION(0x1, "gpio_out"),
1102 SUNXI_FUNCTION(0x2, "lcd1"),
1103 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1104 PINCTRL_SUN4I_A10),
1105 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1106 PINCTRL_SUN7I_A20 |
1107 PINCTRL_SUN8I_R40),
1108 SUNXI_FUNCTION(0x4, "keypad"),
1109 SUNXI_FUNCTION(0x5, "mmc1"),
1110 SUNXI_FUNCTION(0x7, "csi1")),
1111 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 25),
1112 SUNXI_FUNCTION(0x0, "gpio_in"),
1113 SUNXI_FUNCTION(0x1, "gpio_out"),
1114 SUNXI_FUNCTION(0x2, "lcd1"),
1115 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1116 PINCTRL_SUN4I_A10),
1117 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1118 PINCTRL_SUN7I_A20 |
1119 PINCTRL_SUN8I_R40),
1120 SUNXI_FUNCTION(0x4, "keypad"),
1121 SUNXI_FUNCTION(0x5, "mmc1"),
1122 SUNXI_FUNCTION(0x7, "csi1")),
1123 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 26),
1124 SUNXI_FUNCTION(0x0, "gpio_in"),
1125 SUNXI_FUNCTION(0x1, "gpio_out"),
1126 SUNXI_FUNCTION(0x2, "lcd1"),
1127 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1128 PINCTRL_SUN4I_A10),
1129 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1130 PINCTRL_SUN7I_A20 |
1131 PINCTRL_SUN8I_R40),
1132 SUNXI_FUNCTION(0x4, "keypad"),
1133 SUNXI_FUNCTION(0x5, "mmc1"),
1134 SUNXI_FUNCTION(0x7, "csi1")),
1135 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 27),
1136 SUNXI_FUNCTION(0x0, "gpio_in"),
1137 SUNXI_FUNCTION(0x1, "gpio_out"),
1138 SUNXI_FUNCTION(0x2, "lcd1"),
1139 SUNXI_FUNCTION_VARIANT(0x3, "pata",
1140 PINCTRL_SUN4I_A10),
1141 SUNXI_FUNCTION_VARIANT(0x3, "emac",
1142 PINCTRL_SUN7I_A20 |
1143 PINCTRL_SUN8I_R40),
1144 SUNXI_FUNCTION(0x4, "keypad"),
1145 SUNXI_FUNCTION(0x5, "mmc1"),
1146 SUNXI_FUNCTION(0x7, "csi1")),
1147
1148 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 0),
1149 SUNXI_FUNCTION(0x0, "gpio_in"),
1150 SUNXI_FUNCTION(0x1, "gpio_out"),
1151 SUNXI_FUNCTION_VARIANT(0x3, "i2c3",
1152 PINCTRL_SUN7I_A20 |
1153 PINCTRL_SUN8I_R40)),
1154 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 1),
1155 SUNXI_FUNCTION(0x0, "gpio_in"),
1156 SUNXI_FUNCTION(0x1, "gpio_out"),
1157 SUNXI_FUNCTION_VARIANT(0x3, "i2c3",
1158 PINCTRL_SUN7I_A20 |
1159 PINCTRL_SUN8I_R40)),
1160 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 2),
1161 SUNXI_FUNCTION(0x0, "gpio_in"),
1162 SUNXI_FUNCTION(0x1, "gpio_out"),
1163 SUNXI_FUNCTION_VARIANT(0x3, "i2c4",
1164 PINCTRL_SUN7I_A20 |
1165 PINCTRL_SUN8I_R40)),
1166 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 3),
1167 SUNXI_FUNCTION(0x0, "gpio_in"),
1168 SUNXI_FUNCTION(0x1, "gpio_out"),
1169 SUNXI_FUNCTION(0x2, "pwm"),
1170 SUNXI_FUNCTION_VARIANT(0x3, "i2c4",
1171 PINCTRL_SUN7I_A20 |
1172 PINCTRL_SUN8I_R40)),
1173 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 4),
1174 SUNXI_FUNCTION(0x0, "gpio_in"),
1175 SUNXI_FUNCTION(0x1, "gpio_out"),
1176 SUNXI_FUNCTION(0x2, "mmc3")),
1177 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 5),
1178 SUNXI_FUNCTION(0x0, "gpio_in"),
1179 SUNXI_FUNCTION(0x1, "gpio_out"),
1180 SUNXI_FUNCTION(0x2, "mmc3")),
1181 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 6),
1182 SUNXI_FUNCTION(0x0, "gpio_in"),
1183 SUNXI_FUNCTION(0x1, "gpio_out"),
1184 SUNXI_FUNCTION(0x2, "mmc3")),
1185 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 7),
1186 SUNXI_FUNCTION(0x0, "gpio_in"),
1187 SUNXI_FUNCTION(0x1, "gpio_out"),
1188 SUNXI_FUNCTION(0x2, "mmc3")),
1189 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 8),
1190 SUNXI_FUNCTION(0x0, "gpio_in"),
1191 SUNXI_FUNCTION(0x1, "gpio_out"),
1192 SUNXI_FUNCTION(0x2, "mmc3")),
1193 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 9),
1194 SUNXI_FUNCTION(0x0, "gpio_in"),
1195 SUNXI_FUNCTION(0x1, "gpio_out"),
1196 SUNXI_FUNCTION(0x2, "mmc3")),
1197 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 10),
1198 SUNXI_FUNCTION(0x0, "gpio_in"),
1199 SUNXI_FUNCTION(0x1, "gpio_out"),
1200 SUNXI_FUNCTION(0x2, "spi0"),
1201 SUNXI_FUNCTION(0x3, "uart5"),
1202 SUNXI_FUNCTION_IRQ(0x6, 22)),
1203 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 11),
1204 SUNXI_FUNCTION(0x0, "gpio_in"),
1205 SUNXI_FUNCTION(0x1, "gpio_out"),
1206 SUNXI_FUNCTION(0x2, "spi0"),
1207 SUNXI_FUNCTION(0x3, "uart5"),
1208 SUNXI_FUNCTION_IRQ(0x6, 23)),
1209 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 12),
1210 SUNXI_FUNCTION(0x0, "gpio_in"),
1211 SUNXI_FUNCTION(0x1, "gpio_out"),
1212 SUNXI_FUNCTION(0x2, "spi0"),
1213 SUNXI_FUNCTION(0x3, "uart6"),
1214 SUNXI_FUNCTION_VARIANT(0x4, "clk_out_a",
1215 PINCTRL_SUN7I_A20 |
1216 PINCTRL_SUN8I_R40),
1217 SUNXI_FUNCTION_IRQ(0x6, 24)),
1218 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 13),
1219 SUNXI_FUNCTION(0x0, "gpio_in"),
1220 SUNXI_FUNCTION(0x1, "gpio_out"),
1221 SUNXI_FUNCTION(0x2, "spi0"),
1222 SUNXI_FUNCTION(0x3, "uart6"),
1223 SUNXI_FUNCTION_VARIANT(0x4, "clk_out_b",
1224 PINCTRL_SUN7I_A20 |
1225 PINCTRL_SUN8I_R40),
1226 SUNXI_FUNCTION_IRQ(0x6, 25)),
1227 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 14),
1228 SUNXI_FUNCTION(0x0, "gpio_in"),
1229 SUNXI_FUNCTION(0x1, "gpio_out"),
1230 SUNXI_FUNCTION(0x2, "spi0"),
1231 SUNXI_FUNCTION(0x3, "ps2"),
1232 SUNXI_FUNCTION(0x4, "timer4"),
1233 SUNXI_FUNCTION_IRQ(0x6, 26)),
1234 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 15),
1235 SUNXI_FUNCTION(0x0, "gpio_in"),
1236 SUNXI_FUNCTION(0x1, "gpio_out"),
1237 SUNXI_FUNCTION(0x2, "spi1"),
1238 SUNXI_FUNCTION(0x3, "ps2"),
1239 SUNXI_FUNCTION(0x4, "timer5"),
1240 SUNXI_FUNCTION_IRQ(0x6, 27)),
1241 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 16),
1242 SUNXI_FUNCTION(0x0, "gpio_in"),
1243 SUNXI_FUNCTION(0x1, "gpio_out"),
1244 SUNXI_FUNCTION(0x2, "spi1"),
1245 SUNXI_FUNCTION(0x3, "uart2"),
1246 SUNXI_FUNCTION_IRQ(0x6, 28)),
1247 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 17),
1248 SUNXI_FUNCTION(0x0, "gpio_in"),
1249 SUNXI_FUNCTION(0x1, "gpio_out"),
1250 SUNXI_FUNCTION(0x2, "spi1"),
1251 SUNXI_FUNCTION(0x3, "uart2"),
1252 SUNXI_FUNCTION_IRQ(0x6, 29)),
1253 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 18),
1254 SUNXI_FUNCTION(0x0, "gpio_in"),
1255 SUNXI_FUNCTION(0x1, "gpio_out"),
1256 SUNXI_FUNCTION(0x2, "spi1"),
1257 SUNXI_FUNCTION(0x3, "uart2"),
1258 SUNXI_FUNCTION_IRQ(0x6, 30)),
1259 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 19),
1260 SUNXI_FUNCTION(0x0, "gpio_in"),
1261 SUNXI_FUNCTION(0x1, "gpio_out"),
1262 SUNXI_FUNCTION(0x2, "spi1"),
1263 SUNXI_FUNCTION(0x3, "uart2"),
1264 SUNXI_FUNCTION_IRQ(0x6, 31)),
1265 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 20),
1266 SUNXI_FUNCTION(0x0, "gpio_in"),
1267 SUNXI_FUNCTION(0x1, "gpio_out"),
1268 SUNXI_FUNCTION(0x2, "ps2"),
1269 SUNXI_FUNCTION(0x3, "uart7"),
1270 SUNXI_FUNCTION_VARIANT(0x4, "hdmi",
1271 PINCTRL_SUN4I_A10 |
1272 PINCTRL_SUN7I_A20),
1273 SUNXI_FUNCTION_VARIANT(0x6, "pwm",
1274 PINCTRL_SUN8I_R40)),
1275 SUNXI_PIN(SUNXI_PINCTRL_PIN(I, 21),
1276 SUNXI_FUNCTION(0x0, "gpio_in"),
1277 SUNXI_FUNCTION(0x1, "gpio_out"),
1278 SUNXI_FUNCTION(0x2, "ps2"),
1279 SUNXI_FUNCTION(0x3, "uart7"),
1280 SUNXI_FUNCTION_VARIANT(0x4, "hdmi",
1281 PINCTRL_SUN4I_A10 |
1282 PINCTRL_SUN7I_A20),
1283 SUNXI_FUNCTION_VARIANT(0x6, "pwm",
1284 PINCTRL_SUN8I_R40)),
1285 };
1286
1287 static const struct sunxi_pinctrl_desc sun4i_a10_pinctrl_data = {
1288 .pins = sun4i_a10_pins,
1289 .npins = ARRAY_SIZE(sun4i_a10_pins),
1290 .irq_banks = 1,
1291 .irq_read_needs_mux = true,
1292 .disable_strict_mode = true,
1293 };
1294
1295 static int sun4i_a10_pinctrl_probe(struct platform_device *pdev)
1296 {
1297 unsigned long variant = (unsigned long)of_device_get_match_data(&pdev->dev);
1298
1299 return sunxi_pinctrl_init_with_variant(pdev, &sun4i_a10_pinctrl_data,
1300 variant);
1301 }
1302
1303 static const struct of_device_id sun4i_a10_pinctrl_match[] = {
1304 {
1305 .compatible = "allwinner,sun4i-a10-pinctrl",
1306 .data = (void *)PINCTRL_SUN4I_A10
1307 },
1308 {
1309 .compatible = "allwinner,sun7i-a20-pinctrl",
1310 .data = (void *)PINCTRL_SUN7I_A20
1311 },
1312 {
1313 .compatible = "allwinner,sun8i-r40-pinctrl",
1314 .data = (void *)PINCTRL_SUN8I_R40
1315 },
1316 {}
1317 };
1318
1319 static struct platform_driver sun4i_a10_pinctrl_driver = {
1320 .probe = sun4i_a10_pinctrl_probe,
1321 .driver = {
1322 .name = "sun4i-pinctrl",
1323 .of_match_table = sun4i_a10_pinctrl_match,
1324 },
1325 };
1326 builtin_platform_driver(sun4i_a10_pinctrl_driver);