brintos

brintos / linux-shallow public Read only

0
0
Text · 27.0 KiB · df90c75 Raw
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