708 lines · c
1// SPDX-License-Identifier: GPL-2.02/*3 * Copyright (c) 2020 Yangtao Li <frank@allwinnertech.com>4 *5 * Based on:6 * huangshuosheng <huangshuosheng@allwinnertech.com>7 */8 9#include <linux/module.h>10#include <linux/of.h>11#include <linux/pinctrl/pinctrl.h>12#include <linux/platform_device.h>13 14#include "pinctrl-sunxi.h"15 16static const struct sunxi_desc_pin a100_pins[] = {17 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 0),18 SUNXI_FUNCTION(0x0, "gpio_in"),19 SUNXI_FUNCTION(0x1, "gpio_out"),20 SUNXI_FUNCTION(0x2, "uart2"), /* TX */21 SUNXI_FUNCTION(0x3, "spi2"), /* CS */22 SUNXI_FUNCTION(0x4, "jtag"), /* MS */23 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 0)),24 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 1),25 SUNXI_FUNCTION(0x0, "gpio_in"),26 SUNXI_FUNCTION(0x1, "gpio_out"),27 SUNXI_FUNCTION(0x2, "uart2"), /* RX */28 SUNXI_FUNCTION(0x3, "spi2"), /* CLK */29 SUNXI_FUNCTION(0x4, "jtag"), /* CK */30 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 1)),31 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 2),32 SUNXI_FUNCTION(0x0, "gpio_in"),33 SUNXI_FUNCTION(0x1, "gpio_out"),34 SUNXI_FUNCTION(0x2, "uart2"), /* RTS */35 SUNXI_FUNCTION(0x3, "spi2"), /* MOSI */36 SUNXI_FUNCTION(0x4, "jtag"), /* DO */37 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 2)),38 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 3),39 SUNXI_FUNCTION(0x0, "gpio_in"),40 SUNXI_FUNCTION(0x1, "gpio_out"),41 SUNXI_FUNCTION(0x2, "uart2"), /* CTS */42 SUNXI_FUNCTION(0x3, "spi2"), /* MISO */43 SUNXI_FUNCTION(0x4, "jtag"), /* DI */44 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 3)),45 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 4),46 SUNXI_FUNCTION(0x0, "gpio_in"),47 SUNXI_FUNCTION(0x1, "gpio_out"),48 SUNXI_FUNCTION(0x2, "i2c1"), /* SCK */49 SUNXI_FUNCTION(0x3, "i2s0"), /* MCLK */50 SUNXI_FUNCTION(0x4, "jtag_gpu"), /* MS_GPU */51 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 4)),52 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 5),53 SUNXI_FUNCTION(0x0, "gpio_in"),54 SUNXI_FUNCTION(0x1, "gpio_out"),55 SUNXI_FUNCTION(0x2, "i2c1"), /* SDA */56 SUNXI_FUNCTION(0x3, "i2s0"), /* BCLK */57 SUNXI_FUNCTION(0x4, "jtag_gpu"), /* CK_GPU */58 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 5)),59 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 6),60 SUNXI_FUNCTION(0x0, "gpio_in"),61 SUNXI_FUNCTION(0x1, "gpio_out"),62 SUNXI_FUNCTION(0x3, "i2s0"), /* LRCK */63 SUNXI_FUNCTION(0x4, "jtag_gpu"), /* DO_GPU */64 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 6)),65 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 7),66 SUNXI_FUNCTION(0x0, "gpio_in"),67 SUNXI_FUNCTION(0x1, "gpio_out"),68 SUNXI_FUNCTION(0x2, "spdif"), /* DIN */69 SUNXI_FUNCTION(0x3, "i2s0_dout0"), /* DOUT0 */70 SUNXI_FUNCTION(0x4, "i2s0_din1"), /* DIN1 */71 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 7)),72 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 8),73 SUNXI_FUNCTION(0x0, "gpio_in"),74 SUNXI_FUNCTION(0x1, "gpio_out"),75 SUNXI_FUNCTION(0x2, "spdif"), /* DOUT */76 SUNXI_FUNCTION(0x3, "i2s0_din0"), /* DIN0 */77 SUNXI_FUNCTION(0x4, "i2s0_dout1"), /* DOUT1 */78 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 8)),79 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 9),80 SUNXI_FUNCTION(0x0, "gpio_in"),81 SUNXI_FUNCTION(0x1, "gpio_out"),82 SUNXI_FUNCTION(0x2, "uart0"), /* TX */83 SUNXI_FUNCTION(0x3, "i2c0"), /* SCK */84 SUNXI_FUNCTION(0x4, "jtag_gpu"), /* DI_GPU */85 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 9)),86 SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 10),87 SUNXI_FUNCTION(0x0, "gpio_in"),88 SUNXI_FUNCTION(0x1, "gpio_out"),89 SUNXI_FUNCTION(0x2, "uart0"), /* RX */90 SUNXI_FUNCTION(0x3, "i2c0"), /* SDA */91 SUNXI_FUNCTION(0x4, "pwm1"),92 SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 10)),93 /* HOLE */94 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 0),95 SUNXI_FUNCTION(0x0, "gpio_in"),96 SUNXI_FUNCTION(0x1, "gpio_out"),97 SUNXI_FUNCTION(0x2, "nand0"), /* WE */98 SUNXI_FUNCTION(0x3, "mmc2"), /* DS */99 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 0)),100 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 1),101 SUNXI_FUNCTION(0x0, "gpio_in"),102 SUNXI_FUNCTION(0x1, "gpio_out"),103 SUNXI_FUNCTION(0x2, "nand0"), /* ALE */104 SUNXI_FUNCTION(0x3, "mmc2"), /* RST */105 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 1)),106 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 2),107 SUNXI_FUNCTION(0x0, "gpio_in"),108 SUNXI_FUNCTION(0x1, "gpio_out"),109 SUNXI_FUNCTION(0x2, "nand0"), /* CLE */110 SUNXI_FUNCTION(0x4, "spi0"), /* MOSI */111 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 2)),112 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 3),113 SUNXI_FUNCTION(0x0, "gpio_in"),114 SUNXI_FUNCTION(0x1, "gpio_out"),115 SUNXI_FUNCTION(0x2, "nand0"), /* CE1 */116 SUNXI_FUNCTION(0x4, "spi0"), /* CS0 */117 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 3)),118 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 4),119 SUNXI_FUNCTION(0x0, "gpio_in"),120 SUNXI_FUNCTION(0x1, "gpio_out"),121 SUNXI_FUNCTION(0x2, "nand0"), /* CE0 */122 SUNXI_FUNCTION(0x4, "spi0"), /* MISO */123 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 4)),124 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 5),125 SUNXI_FUNCTION(0x0, "gpio_in"),126 SUNXI_FUNCTION(0x1, "gpio_out"),127 SUNXI_FUNCTION(0x2, "nand0"), /* RE */128 SUNXI_FUNCTION(0x3, "mmc2"), /* CLK */129 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 5)),130 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 6),131 SUNXI_FUNCTION(0x0, "gpio_in"),132 SUNXI_FUNCTION(0x1, "gpio_out"),133 SUNXI_FUNCTION(0x2, "nand0"), /* RB0 */134 SUNXI_FUNCTION(0x3, "mmc2"), /* CMD */135 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 6)),136 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 7),137 SUNXI_FUNCTION(0x0, "gpio_in"),138 SUNXI_FUNCTION(0x1, "gpio_out"),139 SUNXI_FUNCTION(0x2, "nand0"), /* RB1 */140 SUNXI_FUNCTION(0x4, "spi0"), /* CS1 */141 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 7)),142 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 8),143 SUNXI_FUNCTION(0x0, "gpio_in"),144 SUNXI_FUNCTION(0x1, "gpio_out"),145 SUNXI_FUNCTION(0x2, "nand0"), /* DQ7 */146 SUNXI_FUNCTION(0x3, "mmc2"), /* D3 */147 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 8)),148 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 9),149 SUNXI_FUNCTION(0x0, "gpio_in"),150 SUNXI_FUNCTION(0x1, "gpio_out"),151 SUNXI_FUNCTION(0x2, "nand0"), /* DQ6 */152 SUNXI_FUNCTION(0x3, "mmc2"), /* D4 */153 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 9)),154 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 10),155 SUNXI_FUNCTION(0x0, "gpio_in"),156 SUNXI_FUNCTION(0x1, "gpio_out"),157 SUNXI_FUNCTION(0x2, "nand0"), /* DQ5 */158 SUNXI_FUNCTION(0x3, "mmc2"), /* D0 */159 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 10)),160 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 11),161 SUNXI_FUNCTION(0x0, "gpio_in"),162 SUNXI_FUNCTION(0x1, "gpio_out"),163 SUNXI_FUNCTION(0x2, "nand0"), /* DQ4 */164 SUNXI_FUNCTION(0x3, "mmc2"), /* D5 */165 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 11)),166 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 12),167 SUNXI_FUNCTION(0x0, "gpio_in"),168 SUNXI_FUNCTION(0x1, "gpio_out"),169 SUNXI_FUNCTION(0x2, "nand0"), /* DQS */170 SUNXI_FUNCTION(0x4, "spi0"), /* CLK */171 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 12)),172 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 13),173 SUNXI_FUNCTION(0x0, "gpio_in"),174 SUNXI_FUNCTION(0x1, "gpio_out"),175 SUNXI_FUNCTION(0x2, "nand0"), /* DQ3 */176 SUNXI_FUNCTION(0x3, "mmc2"), /* D1 */177 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 13)),178 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14),179 SUNXI_FUNCTION(0x0, "gpio_in"),180 SUNXI_FUNCTION(0x1, "gpio_out"),181 SUNXI_FUNCTION(0x2, "nand0"), /* DQ2 */182 SUNXI_FUNCTION(0x3, "mmc2"), /* D6 */183 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 14)),184 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15),185 SUNXI_FUNCTION(0x0, "gpio_in"),186 SUNXI_FUNCTION(0x1, "gpio_out"),187 SUNXI_FUNCTION(0x2, "nand0"), /* DQ1 */188 SUNXI_FUNCTION(0x3, "mmc2"), /* D2 */189 SUNXI_FUNCTION(0x4, "spi0"), /* WP */190 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 15)),191 SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16),192 SUNXI_FUNCTION(0x0, "gpio_in"),193 SUNXI_FUNCTION(0x1, "gpio_out"),194 SUNXI_FUNCTION(0x2, "nand0"), /* DQ0 */195 SUNXI_FUNCTION(0x3, "mmc2"), /* D7 */196 SUNXI_FUNCTION(0x4, "spi0"), /* HOLD */197 SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 16)),198 /* HOLE */199 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 0),200 SUNXI_FUNCTION(0x0, "gpio_in"),201 SUNXI_FUNCTION(0x1, "gpio_out"),202 SUNXI_FUNCTION(0x2, "lcd0"), /* D2 */203 SUNXI_FUNCTION(0x3, "lvds0"), /* D0P */204 SUNXI_FUNCTION(0x4, "dsi0"), /* DP0 */205 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 0)),206 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 1),207 SUNXI_FUNCTION(0x0, "gpio_in"),208 SUNXI_FUNCTION(0x1, "gpio_out"),209 SUNXI_FUNCTION(0x2, "lcd0"), /* D3 */210 SUNXI_FUNCTION(0x3, "lvds0"), /* D0N */211 SUNXI_FUNCTION(0x4, "dsi0"), /* DM0 */212 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 1)),213 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 2),214 SUNXI_FUNCTION(0x0, "gpio_in"),215 SUNXI_FUNCTION(0x1, "gpio_out"),216 SUNXI_FUNCTION(0x2, "lcd0"), /* D4 */217 SUNXI_FUNCTION(0x3, "lvds0"), /* D1P */218 SUNXI_FUNCTION(0x4, "dsi0"), /* DP1 */219 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 2)),220 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 3),221 SUNXI_FUNCTION(0x0, "gpio_in"),222 SUNXI_FUNCTION(0x1, "gpio_out"),223 SUNXI_FUNCTION(0x2, "lcd0"), /* D5 */224 SUNXI_FUNCTION(0x3, "lvds0"), /* D1N */225 SUNXI_FUNCTION(0x4, "dsi0"), /* DM1 */226 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 3)),227 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 4),228 SUNXI_FUNCTION(0x0, "gpio_in"),229 SUNXI_FUNCTION(0x1, "gpio_out"),230 SUNXI_FUNCTION(0x2, "lcd0"), /* D6 */231 SUNXI_FUNCTION(0x3, "lvds0"), /* D2P */232 SUNXI_FUNCTION(0x4, "dsi0"), /* CKP */233 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 4)),234 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 5),235 SUNXI_FUNCTION(0x0, "gpio_in"),236 SUNXI_FUNCTION(0x1, "gpio_out"),237 SUNXI_FUNCTION(0x2, "lcd0"), /* D7 */238 SUNXI_FUNCTION(0x3, "lvds0"), /* D2N */239 SUNXI_FUNCTION(0x4, "dsi0"), /* CKM */240 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 5)),241 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 6),242 SUNXI_FUNCTION(0x0, "gpio_in"),243 SUNXI_FUNCTION(0x1, "gpio_out"),244 SUNXI_FUNCTION(0x2, "lcd0"), /* D10 */245 SUNXI_FUNCTION(0x3, "lvds0"), /* CKP */246 SUNXI_FUNCTION(0x4, "dsi0"), /* DP2 */247 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 6)),248 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 7),249 SUNXI_FUNCTION(0x0, "gpio_in"),250 SUNXI_FUNCTION(0x1, "gpio_out"),251 SUNXI_FUNCTION(0x2, "lcd0"), /* D11 */252 SUNXI_FUNCTION(0x3, "lvds0"), /* CKN */253 SUNXI_FUNCTION(0x4, "dsi0"), /* DM2 */254 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 7)),255 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 8),256 SUNXI_FUNCTION(0x0, "gpio_in"),257 SUNXI_FUNCTION(0x1, "gpio_out"),258 SUNXI_FUNCTION(0x2, "lcd0"), /* D12 */259 SUNXI_FUNCTION(0x4, "dsi0"), /* DP3 */260 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 8)),261 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 9),262 SUNXI_FUNCTION(0x0, "gpio_in"),263 SUNXI_FUNCTION(0x1, "gpio_out"),264 SUNXI_FUNCTION(0x2, "lcd0"), /* D13 */265 SUNXI_FUNCTION(0x4, "dsi0"), /* DM3 */266 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 9)),267 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 10),268 SUNXI_FUNCTION(0x0, "gpio_in"),269 SUNXI_FUNCTION(0x1, "gpio_out"),270 SUNXI_FUNCTION(0x2, "lcd0"), /* D14 */271 SUNXI_FUNCTION(0x4, "spi1"), /* CS */272 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 10)),273 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 11),274 SUNXI_FUNCTION(0x0, "gpio_in"),275 SUNXI_FUNCTION(0x1, "gpio_out"),276 SUNXI_FUNCTION(0x2, "lcd0"), /* D15 */277 SUNXI_FUNCTION(0x4, "spi1"), /* CLK */278 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 11)),279 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 12),280 SUNXI_FUNCTION(0x0, "gpio_in"),281 SUNXI_FUNCTION(0x1, "gpio_out"),282 SUNXI_FUNCTION(0x2, "lcd0"), /* D18 */283 SUNXI_FUNCTION(0x4, "spi1"), /* MOSI */284 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 12)),285 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 13),286 SUNXI_FUNCTION(0x0, "gpio_in"),287 SUNXI_FUNCTION(0x1, "gpio_out"),288 SUNXI_FUNCTION(0x2, "lcd0"), /* D19 */289 SUNXI_FUNCTION(0x4, "spi1"), /* MISO */290 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 13)),291 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 14),292 SUNXI_FUNCTION(0x0, "gpio_in"),293 SUNXI_FUNCTION(0x1, "gpio_out"),294 SUNXI_FUNCTION(0x2, "lcd0"), /* D20 */295 SUNXI_FUNCTION(0x4, "uart3"), /* TX */296 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 14)),297 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 15),298 SUNXI_FUNCTION(0x0, "gpio_in"),299 SUNXI_FUNCTION(0x1, "gpio_out"),300 SUNXI_FUNCTION(0x2, "lcd0"), /* D21 */301 SUNXI_FUNCTION(0x4, "uart3"), /* RX */302 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 15)),303 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 16),304 SUNXI_FUNCTION(0x0, "gpio_in"),305 SUNXI_FUNCTION(0x1, "gpio_out"),306 SUNXI_FUNCTION(0x2, "lcd0"), /* D22 */307 SUNXI_FUNCTION(0x4, "uart3"), /* RTS */308 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 16)),309 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 17),310 SUNXI_FUNCTION(0x0, "gpio_in"),311 SUNXI_FUNCTION(0x1, "gpio_out"),312 SUNXI_FUNCTION(0x2, "lcd0"), /* D23 */313 SUNXI_FUNCTION(0x4, "uart3"), /* CTS */314 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 17)),315 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 18),316 SUNXI_FUNCTION(0x0, "gpio_in"),317 SUNXI_FUNCTION(0x1, "gpio_out"),318 SUNXI_FUNCTION(0x2, "lcd0"), /* CLK */319 SUNXI_FUNCTION(0x4, "uart4"), /* TX */320 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 18)),321 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 19),322 SUNXI_FUNCTION(0x0, "gpio_in"),323 SUNXI_FUNCTION(0x1, "gpio_out"),324 SUNXI_FUNCTION(0x2, "lcd0"), /* DE */325 SUNXI_FUNCTION(0x4, "uart4"), /* RX */326 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 19)),327 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 20),328 SUNXI_FUNCTION(0x0, "gpio_in"),329 SUNXI_FUNCTION(0x1, "gpio_out"),330 SUNXI_FUNCTION(0x2, "lcd0"), /* HSYNC */331 SUNXI_FUNCTION(0x3, "pwm2"),332 SUNXI_FUNCTION(0x4, "uart4"), /* RTS */333 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 20)),334 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 21),335 SUNXI_FUNCTION(0x0, "gpio_in"),336 SUNXI_FUNCTION(0x1, "gpio_out"),337 SUNXI_FUNCTION(0x2, "lcd0"), /* VSYNC */338 SUNXI_FUNCTION(0x3, "pwm3"),339 SUNXI_FUNCTION(0x4, "uart4"), /* CTS */340 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 21)),341 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 22),342 SUNXI_FUNCTION(0x0, "gpio_in"),343 SUNXI_FUNCTION(0x1, "gpio_out"),344 SUNXI_FUNCTION(0x2, "pwm1"),345 SUNXI_FUNCTION(0x4, "i2c0"), /* SCK */346 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 22)),347 SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 23),348 SUNXI_FUNCTION(0x0, "gpio_in"),349 SUNXI_FUNCTION(0x1, "gpio_out"),350 SUNXI_FUNCTION(0x2, "pwm0"),351 SUNXI_FUNCTION(0x4, "i2c0"), /* SDA */352 SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 23)),353 /* HOLE */354 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 0),355 SUNXI_FUNCTION(0x0, "gpio_in"),356 SUNXI_FUNCTION(0x1, "gpio_out"),357 SUNXI_FUNCTION(0x2, "csi"), /* MCLK */358 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 0)),359 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 1),360 SUNXI_FUNCTION(0x0, "gpio_in"),361 SUNXI_FUNCTION(0x1, "gpio_out"),362 SUNXI_FUNCTION(0x2, "i2c2"), /* SCK */363 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 1)),364 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 2),365 SUNXI_FUNCTION(0x0, "gpio_in"),366 SUNXI_FUNCTION(0x1, "gpio_out"),367 SUNXI_FUNCTION(0x2, "i2c2"), /* SDA */368 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 2)),369 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 3),370 SUNXI_FUNCTION(0x0, "gpio_in"),371 SUNXI_FUNCTION(0x1, "gpio_out"),372 SUNXI_FUNCTION(0x2, "i2c3"), /* SCK */373 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 3)),374 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 4),375 SUNXI_FUNCTION(0x0, "gpio_in"),376 SUNXI_FUNCTION(0x1, "gpio_out"),377 SUNXI_FUNCTION(0x2, "i2c3"), /* SDA */378 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 4)),379 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 5),380 SUNXI_FUNCTION(0x0, "gpio_in"),381 SUNXI_FUNCTION(0x1, "gpio_out"),382 SUNXI_FUNCTION(0x2, "csi"), /* MCLK */383 SUNXI_FUNCTION(0x3, "pll"), /* LOCK_DBG */384 SUNXI_FUNCTION(0x4, "i2s2"), /* MCLK */385 SUNXI_FUNCTION(0x5, "ledc"), /* LEDC */386 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 5)),387 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 6),388 SUNXI_FUNCTION(0x0, "gpio_in"),389 SUNXI_FUNCTION(0x1, "gpio_out"),390 SUNXI_FUNCTION(0x3, "bist0"), /* RESULT0 */391 SUNXI_FUNCTION(0x4, "i2s2"), /* BCLK */392 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 6)),393 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 7),394 SUNXI_FUNCTION(0x0, "gpio_in"),395 SUNXI_FUNCTION(0x1, "gpio_out"),396 SUNXI_FUNCTION(0x2, "csi"), /* SM_VS */397 SUNXI_FUNCTION(0x3, "bist0"), /* RESULT1 */398 SUNXI_FUNCTION(0x4, "i2s2"), /* LRCK */399 SUNXI_FUNCTION(0x5, "tcon0"), /* TRIG */400 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 7)),401 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 8),402 SUNXI_FUNCTION(0x0, "gpio_in"),403 SUNXI_FUNCTION(0x1, "gpio_out"),404 SUNXI_FUNCTION(0x3, "bist0"), /* RESULT2 */405 SUNXI_FUNCTION(0x4, "i2s2"), /* DOUT0 */406 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 8)),407 SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 9),408 SUNXI_FUNCTION(0x0, "gpio_in"),409 SUNXI_FUNCTION(0x1, "gpio_out"),410 SUNXI_FUNCTION(0x3, "bist0"), /* RESULT3 */411 SUNXI_FUNCTION(0x4, "i2s2"), /* DIN0 */412 SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 9)),413 /* HOLE */414 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 0),415 SUNXI_FUNCTION(0x0, "gpio_in"),416 SUNXI_FUNCTION(0x1, "gpio_out"),417 SUNXI_FUNCTION(0x2, "mmc0"), /* D1 */418 SUNXI_FUNCTION(0x3, "jtag"), /* MS1 */419 SUNXI_FUNCTION(0x4, "jtag_gpu"), /* MS_GPU */420 SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 0)),421 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 1),422 SUNXI_FUNCTION(0x0, "gpio_in"),423 SUNXI_FUNCTION(0x1, "gpio_out"),424 SUNXI_FUNCTION(0x2, "mmc0"), /* D0 */425 SUNXI_FUNCTION(0x3, "jtag"), /* DI1 */426 SUNXI_FUNCTION(0x4, "jtag_gpu"), /* DI_GPU */427 SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 1)),428 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 2),429 SUNXI_FUNCTION(0x0, "gpio_in"),430 SUNXI_FUNCTION(0x1, "gpio_out"),431 SUNXI_FUNCTION(0x2, "mmc0"), /* CLK */432 SUNXI_FUNCTION(0x3, "uart0"), /* TX */433 SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 2)),434 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 3),435 SUNXI_FUNCTION(0x0, "gpio_in"),436 SUNXI_FUNCTION(0x1, "gpio_out"),437 SUNXI_FUNCTION(0x2, "mmc0"), /* CMD */438 SUNXI_FUNCTION(0x3, "jtag"), /* DO */439 SUNXI_FUNCTION(0x4, "jtag_gpu"), /* DO_GPU */440 SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 3)),441 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 4),442 SUNXI_FUNCTION(0x0, "gpio_in"),443 SUNXI_FUNCTION(0x1, "gpio_out"),444 SUNXI_FUNCTION(0x2, "mmc0"), /* D3 */445 SUNXI_FUNCTION(0x3, "uart0"), /* RX */446 SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 4)),447 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 5),448 SUNXI_FUNCTION(0x0, "gpio_in"),449 SUNXI_FUNCTION(0x1, "gpio_out"),450 SUNXI_FUNCTION(0x2, "mmc0"), /* D2 */451 SUNXI_FUNCTION(0x3, "jtag"), /* CK */452 SUNXI_FUNCTION(0x4, "jtag_gpu"), /* CK_GPU */453 SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 5)),454 SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 6),455 SUNXI_FUNCTION(0x0, "gpio_in"),456 SUNXI_FUNCTION(0x1, "gpio_out"),457 SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 6)),458 /* HOLE */459 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 0),460 SUNXI_FUNCTION(0x0, "gpio_in"),461 SUNXI_FUNCTION(0x1, "gpio_out"),462 SUNXI_FUNCTION(0x2, "mmc1"), /* CLK */463 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 0)),464 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 1),465 SUNXI_FUNCTION(0x0, "gpio_in"),466 SUNXI_FUNCTION(0x1, "gpio_out"),467 SUNXI_FUNCTION(0x2, "mmc1"), /* CMD */468 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 1)),469 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 2),470 SUNXI_FUNCTION(0x0, "gpio_in"),471 SUNXI_FUNCTION(0x1, "gpio_out"),472 SUNXI_FUNCTION(0x2, "mmc1"), /* D0 */473 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 2)),474 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 3),475 SUNXI_FUNCTION(0x0, "gpio_in"),476 SUNXI_FUNCTION(0x1, "gpio_out"),477 SUNXI_FUNCTION(0x2, "mmc1"), /* D1 */478 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 3)),479 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 4),480 SUNXI_FUNCTION(0x0, "gpio_in"),481 SUNXI_FUNCTION(0x1, "gpio_out"),482 SUNXI_FUNCTION(0x2, "mmc1"), /* D2 */483 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 4)),484 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 5),485 SUNXI_FUNCTION(0x0, "gpio_in"),486 SUNXI_FUNCTION(0x1, "gpio_out"),487 SUNXI_FUNCTION(0x2, "mmc1"), /* D3 */488 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 5)),489 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 6),490 SUNXI_FUNCTION(0x0, "gpio_in"),491 SUNXI_FUNCTION(0x1, "gpio_out"),492 SUNXI_FUNCTION(0x2, "uart1"), /* TX */493 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 6)),494 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 7),495 SUNXI_FUNCTION(0x0, "gpio_in"),496 SUNXI_FUNCTION(0x1, "gpio_out"),497 SUNXI_FUNCTION(0x2, "uart1"), /* RX */498 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 7)),499 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 8),500 SUNXI_FUNCTION(0x0, "gpio_in"),501 SUNXI_FUNCTION(0x1, "gpio_out"),502 SUNXI_FUNCTION(0x2, "uart1"), /* RTS */503 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 8)),504 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 9),505 SUNXI_FUNCTION(0x0, "gpio_in"),506 SUNXI_FUNCTION(0x1, "gpio_out"),507 SUNXI_FUNCTION(0x2, "uart1"), /* CTS */508 SUNXI_FUNCTION(0x3, "i2s1"), /* MCLK */509 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 9)),510 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 10),511 SUNXI_FUNCTION(0x0, "gpio_in"),512 SUNXI_FUNCTION(0x1, "gpio_out"),513 SUNXI_FUNCTION(0x3, "i2s1"), /* BCLK */514 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 10)),515 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 11),516 SUNXI_FUNCTION(0x0, "gpio_in"),517 SUNXI_FUNCTION(0x1, "gpio_out"),518 SUNXI_FUNCTION(0x3, "i2s1"), /* LRCK */519 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 11)),520 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 12),521 SUNXI_FUNCTION(0x0, "gpio_in"),522 SUNXI_FUNCTION(0x1, "gpio_out"),523 SUNXI_FUNCTION(0x3, "i2s1_dout0"), /* DOUT0 */524 SUNXI_FUNCTION(0x4, "i2s1_din1"), /* DIN1 */525 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 12)),526 SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 13),527 SUNXI_FUNCTION(0x0, "gpio_in"),528 SUNXI_FUNCTION(0x1, "gpio_out"),529 SUNXI_FUNCTION(0x3, "i2s1_din0"), /* DIN0 */530 SUNXI_FUNCTION(0x4, "i2s1_dout1"), /* DOUT1 */531 SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 13)),532 /* HOLE */533 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 0),534 SUNXI_FUNCTION(0x0, "gpio_in"),535 SUNXI_FUNCTION(0x1, "gpio_out"),536 SUNXI_FUNCTION(0x2, "i2c0"), /* SCK */537 SUNXI_FUNCTION(0x5, "emac0"), /* RXD1 */538 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 0)),539 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 1),540 SUNXI_FUNCTION(0x0, "gpio_in"),541 SUNXI_FUNCTION(0x1, "gpio_out"),542 SUNXI_FUNCTION(0x2, "i2c0"), /* SDA */543 SUNXI_FUNCTION(0x5, "emac0"), /* RXD0 */544 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 1)),545 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 2),546 SUNXI_FUNCTION(0x0, "gpio_in"),547 SUNXI_FUNCTION(0x1, "gpio_out"),548 SUNXI_FUNCTION(0x2, "i2c1"), /* SCK */549 SUNXI_FUNCTION(0x5, "emac0"), /* RXCTL */550 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 2)),551 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 3),552 SUNXI_FUNCTION(0x0, "gpio_in"),553 SUNXI_FUNCTION(0x1, "gpio_out"),554 SUNXI_FUNCTION(0x2, "i2c1"), /* SDA */555 SUNXI_FUNCTION(0x3, "cir0"), /* OUT */556 SUNXI_FUNCTION(0x5, "emac0"), /* CLKIN */557 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 3)),558 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 4),559 SUNXI_FUNCTION(0x0, "gpio_in"),560 SUNXI_FUNCTION(0x1, "gpio_out"),561 SUNXI_FUNCTION(0x2, "uart3"), /* TX */562 SUNXI_FUNCTION(0x3, "spi1"), /* CS */563 SUNXI_FUNCTION(0x5, "emac0"), /* TXD1 */564 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 4)),565 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 5),566 SUNXI_FUNCTION(0x0, "gpio_in"),567 SUNXI_FUNCTION(0x1, "gpio_out"),568 SUNXI_FUNCTION(0x2, "uart3"), /* RX */569 SUNXI_FUNCTION(0x3, "spi1"), /* CLK */570 SUNXI_FUNCTION(0x4, "ledc"),571 SUNXI_FUNCTION(0x5, "emac0"), /* TXD0 */572 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 5)),573 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 6),574 SUNXI_FUNCTION(0x0, "gpio_in"),575 SUNXI_FUNCTION(0x1, "gpio_out"),576 SUNXI_FUNCTION(0x2, "uart3"), /* RTS */577 SUNXI_FUNCTION(0x3, "spi1"), /* MOSI */578 SUNXI_FUNCTION(0x5, "emac0"), /* TXCK */579 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 6)),580 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 7),581 SUNXI_FUNCTION(0x0, "gpio_in"),582 SUNXI_FUNCTION(0x1, "gpio_out"),583 SUNXI_FUNCTION(0x2, "uart3"), /* CTS */584 SUNXI_FUNCTION(0x3, "spi1"), /* MISO */585 SUNXI_FUNCTION(0x4, "spdif"), /* OUT */586 SUNXI_FUNCTION(0x5, "emac0"), /* TXCTL */587 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 7)),588 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 8),589 SUNXI_FUNCTION(0x0, "gpio_in"),590 SUNXI_FUNCTION(0x1, "gpio_out"),591 SUNXI_FUNCTION(0x2, "dmic"), /* CLK */592 SUNXI_FUNCTION(0x3, "spi2"), /* CS */593 SUNXI_FUNCTION(0x4, "i2s2"), /* MCLK */594 SUNXI_FUNCTION(0x5, "i2s2_din2"), /* DIN2 */595 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 8)),596 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 9),597 SUNXI_FUNCTION(0x0, "gpio_in"),598 SUNXI_FUNCTION(0x1, "gpio_out"),599 SUNXI_FUNCTION(0x2, "dmic"), /* DATA0 */600 SUNXI_FUNCTION(0x3, "spi2"), /* CLK */601 SUNXI_FUNCTION(0x4, "i2s2"), /* BCLK */602 SUNXI_FUNCTION(0x5, "emac0"), /* MDC */603 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 9)),604 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 10),605 SUNXI_FUNCTION(0x0, "gpio_in"),606 SUNXI_FUNCTION(0x1, "gpio_out"),607 SUNXI_FUNCTION(0x2, "dmic"), /* DATA1 */608 SUNXI_FUNCTION(0x3, "spi2"), /* MOSI */609 SUNXI_FUNCTION(0x4, "i2s2"), /* LRCK */610 SUNXI_FUNCTION(0x5, "emac0"), /* MDIO */611 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 10)),612 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 11),613 SUNXI_FUNCTION(0x0, "gpio_in"),614 SUNXI_FUNCTION(0x1, "gpio_out"),615 SUNXI_FUNCTION(0x2, "dmic"), /* DATA2 */616 SUNXI_FUNCTION(0x3, "spi2"), /* MISO */617 SUNXI_FUNCTION(0x4, "i2s2_dout0"), /* DOUT0 */618 SUNXI_FUNCTION(0x5, "i2s2_din1"), /* DIN1 */619 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 11)),620 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 12),621 SUNXI_FUNCTION(0x0, "gpio_in"),622 SUNXI_FUNCTION(0x1, "gpio_out"),623 SUNXI_FUNCTION(0x2, "dmic"), /* DATA3 */624 SUNXI_FUNCTION(0x3, "i2c3"), /* SCK */625 SUNXI_FUNCTION(0x4, "i2s2_din0"), /* DIN0 */626 SUNXI_FUNCTION(0x5, "i2s2_dout1"), /* DOUT1 */627 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 12)),628 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 13),629 SUNXI_FUNCTION(0x0, "gpio_in"),630 SUNXI_FUNCTION(0x1, "gpio_out"),631 SUNXI_FUNCTION(0x3, "i2c3"), /* SCK */632 SUNXI_FUNCTION(0x4, "i2s3"), /* MCLK */633 SUNXI_FUNCTION(0x5, "emac0"), /* EPHY */634 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 13)),635 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 14),636 SUNXI_FUNCTION(0x0, "gpio_in"),637 SUNXI_FUNCTION(0x1, "gpio_out"),638 SUNXI_FUNCTION(0x4, "i2s3"), /* BCLK */639 SUNXI_FUNCTION(0x5, "emac0"), /* RXD3 */640 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 14)),641 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 15),642 SUNXI_FUNCTION(0x0, "gpio_in"),643 SUNXI_FUNCTION(0x1, "gpio_out"),644 SUNXI_FUNCTION(0x4, "i2s3"), /* LRCK */645 SUNXI_FUNCTION(0x5, "emac0"), /* RXD2 */646 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 15)),647 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 16),648 SUNXI_FUNCTION(0x0, "gpio_in"),649 SUNXI_FUNCTION(0x1, "gpio_out"),650 SUNXI_FUNCTION(0x3, "i2s3_dout0"), /* DOUT0 */651 SUNXI_FUNCTION(0x4, "i2s3_din1"), /* DIN1 */652 SUNXI_FUNCTION(0x5, "emac0"), /* RXCK */653 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 16)),654 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17),655 SUNXI_FUNCTION(0x0, "gpio_in"),656 SUNXI_FUNCTION(0x1, "gpio_out"),657 SUNXI_FUNCTION(0x3, "i2s3_dout1"), /* DOUT1 */658 SUNXI_FUNCTION(0x4, "i2s3_din0"), /* DIN0 */659 SUNXI_FUNCTION(0x5, "emac0"), /* TXD3 */660 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 17)),661 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 18),662 SUNXI_FUNCTION(0x0, "gpio_in"),663 SUNXI_FUNCTION(0x1, "gpio_out"),664 SUNXI_FUNCTION(0x2, "cir0"), /* OUT */665 SUNXI_FUNCTION(0x3, "i2s3_dout2"), /* DOUT2 */666 SUNXI_FUNCTION(0x4, "i2s3_din2"), /* DIN2 */667 SUNXI_FUNCTION(0x5, "emac0"), /* TXD2 */668 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 18)),669 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 19),670 SUNXI_FUNCTION(0x0, "gpio_in"),671 SUNXI_FUNCTION(0x1, "gpio_out"),672 SUNXI_FUNCTION(0x2, "cir0"), /* IN */673 SUNXI_FUNCTION(0x3, "i2s3_dout3"), /* DOUT3 */674 SUNXI_FUNCTION(0x4, "i2s3_din3"), /* DIN3 */675 SUNXI_FUNCTION(0x5, "ledc"),676 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 19)),677};678 679static const unsigned int a100_irq_bank_map[] = { 1, 2, 3, 4, 5, 6, 7};680 681static const struct sunxi_pinctrl_desc a100_pinctrl_data = {682 .pins = a100_pins,683 .npins = ARRAY_SIZE(a100_pins),684 .irq_banks = 7,685 .irq_bank_map = a100_irq_bank_map,686 .io_bias_cfg_variant = BIAS_VOLTAGE_PIO_POW_MODE_CTL,687};688 689static int a100_pinctrl_probe(struct platform_device *pdev)690{691 return sunxi_pinctrl_init(pdev, &a100_pinctrl_data);692}693 694static const struct of_device_id a100_pinctrl_match[] = {695 { .compatible = "allwinner,sun50i-a100-pinctrl", },696 {}697};698MODULE_DEVICE_TABLE(of, a100_pinctrl_match);699 700static struct platform_driver a100_pinctrl_driver = {701 .probe = a100_pinctrl_probe,702 .driver = {703 .name = "sun50i-a100-pinctrl",704 .of_match_table = a100_pinctrl_match,705 },706};707module_platform_driver(a100_pinctrl_driver);708