brintos

brintos / linux-shallow public Read only

0
0
Text · 39.0 KiB · 82ac064 Raw
1000 lines · c
1/*2 * Allwinner A31 SoCs pinctrl driver.3 *4 * Copyright (C) 2014 Maxime Ripard5 *6 * Maxime Ripard <maxime.ripard@free-electrons.com>7 *8 * This file is licensed under the terms of the GNU General Public9 * License version 2.  This program is licensed "as is" without any10 * warranty of any kind, whether express or implied.11 */12 13#include <linux/init.h>14#include <linux/platform_device.h>15#include <linux/of.h>16#include <linux/pinctrl/pinctrl.h>17 18#include "pinctrl-sunxi.h"19 20static const struct sunxi_desc_pin sun6i_a31_pins[] = {21	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 0),22		  SUNXI_FUNCTION(0x0, "gpio_in"),23		  SUNXI_FUNCTION(0x1, "gpio_out"),24		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD0 */25		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",26					 PINCTRL_SUN6I_A31),	/* D0 */27		  SUNXI_FUNCTION(0x4, "uart1"),		/* DTR */28		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 0)),	/* PA_EINT0 */29	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 1),30		  SUNXI_FUNCTION(0x0, "gpio_in"),31		  SUNXI_FUNCTION(0x1, "gpio_out"),32		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD1 */33		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",34					 PINCTRL_SUN6I_A31),	/* D1 */35		  SUNXI_FUNCTION(0x4, "uart1"),		/* DSR */36		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 1)),	/* PA_EINT1 */37	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 2),38		  SUNXI_FUNCTION(0x0, "gpio_in"),39		  SUNXI_FUNCTION(0x1, "gpio_out"),40		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD2 */41		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",42					 PINCTRL_SUN6I_A31),	/* D2 */43		  SUNXI_FUNCTION(0x4, "uart1"),		/* DCD */44		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 2)),	/* PA_EINT2 */45	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 3),46		  SUNXI_FUNCTION(0x0, "gpio_in"),47		  SUNXI_FUNCTION(0x1, "gpio_out"),48		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD3 */49		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",50					 PINCTRL_SUN6I_A31),	/* D3 */51		  SUNXI_FUNCTION(0x4, "uart1"),		/* RING */52		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 3)),	/* PA_EINT3 */53	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 4),54		  SUNXI_FUNCTION(0x0, "gpio_in"),55		  SUNXI_FUNCTION(0x1, "gpio_out"),56		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD4 */57		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",58					 PINCTRL_SUN6I_A31),	/* D4 */59		  SUNXI_FUNCTION(0x4, "uart1"),		/* TX */60		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 4)),	/* PA_EINT4 */61	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 5),62		  SUNXI_FUNCTION(0x0, "gpio_in"),63		  SUNXI_FUNCTION(0x1, "gpio_out"),64		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD5 */65		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",66					 PINCTRL_SUN6I_A31),	/* D5 */67		  SUNXI_FUNCTION(0x4, "uart1"),		/* RX */68		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 5)),	/* PA_EINT5 */69	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 6),70		  SUNXI_FUNCTION(0x0, "gpio_in"),71		  SUNXI_FUNCTION(0x1, "gpio_out"),72		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD6 */73		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",74					 PINCTRL_SUN6I_A31),	/* D6 */75		  SUNXI_FUNCTION(0x4, "uart1"),		/* RTS */76		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 6)),	/* PA_EINT6 */77	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 7),78		  SUNXI_FUNCTION(0x0, "gpio_in"),79		  SUNXI_FUNCTION(0x1, "gpio_out"),80		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD7 */81		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",82					 PINCTRL_SUN6I_A31),	/* D7 */83		  SUNXI_FUNCTION(0x4, "uart1"),		/* CTS */84		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 7)),	/* PA_EINT7 */85	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 8),86		  SUNXI_FUNCTION(0x0, "gpio_in"),87		  SUNXI_FUNCTION(0x1, "gpio_out"),88		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXCLK */89		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",90					 PINCTRL_SUN6I_A31),	/* D8 */91		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 8)),	/* PA_EINT8 */92	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 9),93		  SUNXI_FUNCTION(0x0, "gpio_in"),94		  SUNXI_FUNCTION(0x1, "gpio_out"),95		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXEN */96		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",97					 PINCTRL_SUN6I_A31),	/* D9 */98		  SUNXI_FUNCTION(0x4, "mmc3"),		/* CMD */99		  SUNXI_FUNCTION(0x5, "mmc2"),		/* CMD */100		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 9)),	/* PA_EINT9 */101	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 10),102		  SUNXI_FUNCTION(0x0, "gpio_in"),103		  SUNXI_FUNCTION(0x1, "gpio_out"),104		  SUNXI_FUNCTION(0x2, "gmac"),		/* GTXCLK */105		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",106					 PINCTRL_SUN6I_A31),	/* D10 */107		  SUNXI_FUNCTION(0x4, "mmc3"),		/* CLK */108		  SUNXI_FUNCTION(0x5, "mmc2"),		/* CLK */109		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 10)),	/* PA_EINT10 */110	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 11),111		  SUNXI_FUNCTION(0x0, "gpio_in"),112		  SUNXI_FUNCTION(0x1, "gpio_out"),113		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD0 */114		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",115					 PINCTRL_SUN6I_A31),	/* D11 */116		  SUNXI_FUNCTION(0x4, "mmc3"),		/* D0 */117		  SUNXI_FUNCTION(0x5, "mmc2"),		/* D0 */118		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 11)),	/* PA_EINT11 */119	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 12),120		  SUNXI_FUNCTION(0x0, "gpio_in"),121		  SUNXI_FUNCTION(0x1, "gpio_out"),122		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD1 */123		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",124					 PINCTRL_SUN6I_A31),	/* D12 */125		  SUNXI_FUNCTION(0x4, "mmc3"),		/* D1 */126		  SUNXI_FUNCTION(0x5, "mmc2"),		/* D1 */127		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 12)),	/* PA_EINT12 */128	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 13),129		  SUNXI_FUNCTION(0x0, "gpio_in"),130		  SUNXI_FUNCTION(0x1, "gpio_out"),131		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD2 */132		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",133					 PINCTRL_SUN6I_A31),	/* D13 */134		  SUNXI_FUNCTION(0x4, "mmc3"),		/* D2 */135		  SUNXI_FUNCTION(0x5, "mmc2"),		/* D2 */136		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 13)),	/* PA_EINT13 */137	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 14),138		  SUNXI_FUNCTION(0x0, "gpio_in"),139		  SUNXI_FUNCTION(0x1, "gpio_out"),140		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD3 */141		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",142					 PINCTRL_SUN6I_A31),	/* D14 */143		  SUNXI_FUNCTION(0x4, "mmc3"),		/* D3 */144		  SUNXI_FUNCTION(0x5, "mmc2"),		/* D3 */145		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 14)),	/* PA_EINT14 */146	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 15),147		  SUNXI_FUNCTION(0x0, "gpio_in"),148		  SUNXI_FUNCTION(0x1, "gpio_out"),149		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD4 */150		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",151					 PINCTRL_SUN6I_A31),	/* D15 */152		  SUNXI_FUNCTION(0x4, "clk_out_a"),153		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 15)),	/* PA_EINT15 */154	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 16),155		  SUNXI_FUNCTION(0x0, "gpio_in"),156		  SUNXI_FUNCTION(0x1, "gpio_out"),157		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD5 */158		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",159					 PINCTRL_SUN6I_A31),	/* D16 */160		  SUNXI_FUNCTION(0x4, "dmic"),		/* CLK */161		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 16)),	/* PA_EINT16 */162	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 17),163		  SUNXI_FUNCTION(0x0, "gpio_in"),164		  SUNXI_FUNCTION(0x1, "gpio_out"),165		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD6 */166		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",167					 PINCTRL_SUN6I_A31),	/* D17 */168		  SUNXI_FUNCTION(0x4, "dmic"),		/* DIN */169		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 17)),	/* PA_EINT17 */170	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 18),171		  SUNXI_FUNCTION(0x0, "gpio_in"),172		  SUNXI_FUNCTION(0x1, "gpio_out"),173		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD7 */174		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",175					 PINCTRL_SUN6I_A31),	/* D18 */176		  SUNXI_FUNCTION(0x4, "clk_out_b"),177		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 18)),	/* PA_EINT18 */178	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 19),179		  SUNXI_FUNCTION(0x0, "gpio_in"),180		  SUNXI_FUNCTION(0x1, "gpio_out"),181		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXDV */182		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",183					 PINCTRL_SUN6I_A31),	/* D19 */184		  SUNXI_FUNCTION(0x4, "pwm3"),		/* Positive */185		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 19)),	/* PA_EINT19 */186	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 20),187		  SUNXI_FUNCTION(0x0, "gpio_in"),188		  SUNXI_FUNCTION(0x1, "gpio_out"),189		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXCLK */190		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",191					 PINCTRL_SUN6I_A31),	/* D20 */192		  SUNXI_FUNCTION(0x4, "pwm3"),		/* Negative */193		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 20)),	/* PA_EINT20 */194	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 21),195		  SUNXI_FUNCTION(0x0, "gpio_in"),196		  SUNXI_FUNCTION(0x1, "gpio_out"),197		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXERR */198		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",199					 PINCTRL_SUN6I_A31),	/* D21 */200		  SUNXI_FUNCTION(0x4, "spi3"),		/* CS0 */201		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 21)),	/* PA_EINT21 */202	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 22),203		  SUNXI_FUNCTION(0x0, "gpio_in"),204		  SUNXI_FUNCTION(0x1, "gpio_out"),205		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXERR */206		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",207					 PINCTRL_SUN6I_A31),	/* D22 */208		  SUNXI_FUNCTION(0x4, "spi3"),		/* CLK */209		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 22)),	/* PA_EINT22 */210	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 23),211		  SUNXI_FUNCTION(0x0, "gpio_in"),212		  SUNXI_FUNCTION(0x1, "gpio_out"),213		  SUNXI_FUNCTION(0x2, "gmac"),		/* COL */214		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",215					 PINCTRL_SUN6I_A31),	/* D23 */216		  SUNXI_FUNCTION(0x4, "spi3"),		/* MOSI */217		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 23)),	/* PA_EINT23 */218	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 24),219		  SUNXI_FUNCTION(0x0, "gpio_in"),220		  SUNXI_FUNCTION(0x1, "gpio_out"),221		  SUNXI_FUNCTION(0x2, "gmac"),		/* CRS */222		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",223					 PINCTRL_SUN6I_A31),	/* CLK */224		  SUNXI_FUNCTION(0x4, "spi3"),		/* MISO */225		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 24)),	/* PA_EINT24 */226	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 25),227		  SUNXI_FUNCTION(0x0, "gpio_in"),228		  SUNXI_FUNCTION(0x1, "gpio_out"),229		  SUNXI_FUNCTION(0x2, "gmac"),		/* CLKIN */230		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",231					 PINCTRL_SUN6I_A31),	/* DE */232		  SUNXI_FUNCTION(0x4, "spi3"),		/* CS1 */233		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 25)),	/* PA_EINT25 */234	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 26),235		  SUNXI_FUNCTION(0x0, "gpio_in"),236		  SUNXI_FUNCTION(0x1, "gpio_out"),237		  SUNXI_FUNCTION(0x2, "gmac"),		/* MDC */238		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",239					 PINCTRL_SUN6I_A31),	/* HSYNC */240		  SUNXI_FUNCTION(0x4, "clk_out_c"),241		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 26)),	/* PA_EINT26 */242	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 27),243		  SUNXI_FUNCTION(0x0, "gpio_in"),244		  SUNXI_FUNCTION(0x1, "gpio_out"),245		  SUNXI_FUNCTION(0x2, "gmac"),		/* MDIO */246		  SUNXI_FUNCTION_VARIANT(0x3, "lcd1",247					 PINCTRL_SUN6I_A31),	/* VSYNC */248		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 27)),	/* PA_EINT27 */249	/* Hole */250	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 0),251		  SUNXI_FUNCTION(0x0, "gpio_in"),252		  SUNXI_FUNCTION(0x1, "gpio_out"),253		  SUNXI_FUNCTION(0x2, "i2s0"),		/* MCLK */254		  SUNXI_FUNCTION(0x3, "uart3"),		/* CTS */255		  SUNXI_FUNCTION_VARIANT(0x4, "csi",256					 PINCTRL_SUN6I_A31),	/* MCLK1 */257		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 0)),	/* PB_EINT0 */258	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 1),259		  SUNXI_FUNCTION(0x0, "gpio_in"),260		  SUNXI_FUNCTION(0x1, "gpio_out"),261		  SUNXI_FUNCTION(0x2, "i2s0"),		/* BCLK */262		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 1)),	/* PB_EINT1 */263	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 2),264		  SUNXI_FUNCTION(0x0, "gpio_in"),265		  SUNXI_FUNCTION(0x1, "gpio_out"),266		  SUNXI_FUNCTION(0x2, "i2s0"),		/* LRCK */267		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 2)),	/* PB_EINT2 */268	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 3),269		  SUNXI_FUNCTION(0x0, "gpio_in"),270		  SUNXI_FUNCTION(0x1, "gpio_out"),271		  SUNXI_FUNCTION(0x2, "i2s0"),		/* DO0 */272		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 3)),	/* PB_EINT3 */273	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 4),274		  SUNXI_FUNCTION(0x0, "gpio_in"),275		  SUNXI_FUNCTION(0x1, "gpio_out"),276		  SUNXI_FUNCTION(0x2, "i2s0"),		/* DO1 */277		  SUNXI_FUNCTION(0x3, "uart3"),		/* RTS */278		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 4)),	/* PB_EINT4 */279	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 5),280		  SUNXI_FUNCTION(0x0, "gpio_in"),281		  SUNXI_FUNCTION(0x1, "gpio_out"),282		  SUNXI_FUNCTION(0x2, "i2s0"),		/* DO2 */283		  SUNXI_FUNCTION(0x3, "uart3"),		/* TX */284		  SUNXI_FUNCTION(0x4, "i2c3"),		/* SCK */285		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 5)),	/* PB_EINT5 */286	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 6),287		  SUNXI_FUNCTION(0x0, "gpio_in"),288		  SUNXI_FUNCTION(0x1, "gpio_out"),289		  SUNXI_FUNCTION(0x2, "i2s0"),		/* DO3 */290		  SUNXI_FUNCTION(0x3, "uart3"),		/* RX */291		  SUNXI_FUNCTION(0x4, "i2c3"),		/* SDA */292		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 6)),	/* PB_EINT6 */293	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 7),294		  SUNXI_FUNCTION(0x0, "gpio_in"),295		  SUNXI_FUNCTION(0x1, "gpio_out"),296		  SUNXI_FUNCTION(0x3, "i2s0"),		/* DI */297		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 7)),	/* PB_EINT7 */298	/* Hole */299	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 0),300		  SUNXI_FUNCTION(0x0, "gpio_in"),301		  SUNXI_FUNCTION(0x1, "gpio_out"),302		  SUNXI_FUNCTION(0x2, "nand0"),		/* WE */303		  SUNXI_FUNCTION(0x3, "spi0")),		/* MOSI */304	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 1),305		  SUNXI_FUNCTION(0x0, "gpio_in"),306		  SUNXI_FUNCTION(0x1, "gpio_out"),307		  SUNXI_FUNCTION(0x2, "nand0"),		/* ALE */308		  SUNXI_FUNCTION(0x3, "spi0")),		/* MISO */309	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 2),310		  SUNXI_FUNCTION(0x0, "gpio_in"),311		  SUNXI_FUNCTION(0x1, "gpio_out"),312		  SUNXI_FUNCTION(0x2, "nand0"),		/* CLE */313		  SUNXI_FUNCTION(0x3, "spi0")),		/* CLK */314	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 3),315		  SUNXI_FUNCTION(0x0, "gpio_in"),316		  SUNXI_FUNCTION(0x1, "gpio_out"),317		  SUNXI_FUNCTION(0x2, "nand0")),	/* CE1 */318	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 4),319		  SUNXI_FUNCTION(0x0, "gpio_in"),320		  SUNXI_FUNCTION(0x1, "gpio_out"),321		  SUNXI_FUNCTION(0x2, "nand0")),	/* CE0 */322	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 5),323		  SUNXI_FUNCTION(0x0, "gpio_in"),324		  SUNXI_FUNCTION(0x1, "gpio_out"),325		  SUNXI_FUNCTION(0x2, "nand0")),	/* RE */326	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 6),327		  SUNXI_FUNCTION(0x0, "gpio_in"),328		  SUNXI_FUNCTION(0x1, "gpio_out"),329		  SUNXI_FUNCTION(0x2, "nand0"),		/* RB0 */330		  SUNXI_FUNCTION(0x3, "mmc2"),		/* CMD */331		  SUNXI_FUNCTION(0x4, "mmc3")),		/* CMD */332	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 7),333		  SUNXI_FUNCTION(0x0, "gpio_in"),334		  SUNXI_FUNCTION(0x1, "gpio_out"),335		  SUNXI_FUNCTION(0x2, "nand0"),		/* RB1 */336		  SUNXI_FUNCTION(0x3, "mmc2"),		/* CLK */337		  SUNXI_FUNCTION(0x4, "mmc3")),		/* CLK */338	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 8),339		  SUNXI_FUNCTION(0x0, "gpio_in"),340		  SUNXI_FUNCTION(0x1, "gpio_out"),341		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ0 */342		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D0 */343		  SUNXI_FUNCTION(0x4, "mmc3")),		/* D0 */344	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 9),345		  SUNXI_FUNCTION(0x0, "gpio_in"),346		  SUNXI_FUNCTION(0x1, "gpio_out"),347		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ1 */348		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D1 */349		  SUNXI_FUNCTION(0x4, "mmc3")),		/* D1 */350	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 10),351		  SUNXI_FUNCTION(0x0, "gpio_in"),352		  SUNXI_FUNCTION(0x1, "gpio_out"),353		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ2 */354		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D2 */355		  SUNXI_FUNCTION(0x4, "mmc3")),		/* D2 */356	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 11),357		  SUNXI_FUNCTION(0x0, "gpio_in"),358		  SUNXI_FUNCTION(0x1, "gpio_out"),359		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ3 */360		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D3 */361		  SUNXI_FUNCTION(0x4, "mmc3")),		/* D3 */362	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 12),363		  SUNXI_FUNCTION(0x0, "gpio_in"),364		  SUNXI_FUNCTION(0x1, "gpio_out"),365		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ4 */366		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D4 */367		  SUNXI_FUNCTION(0x4, "mmc3")),		/* D4 */368	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 13),369		  SUNXI_FUNCTION(0x0, "gpio_in"),370		  SUNXI_FUNCTION(0x1, "gpio_out"),371		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ5 */372		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D5 */373		  SUNXI_FUNCTION(0x4, "mmc3")),		/* D5 */374	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14),375		  SUNXI_FUNCTION(0x0, "gpio_in"),376		  SUNXI_FUNCTION(0x1, "gpio_out"),377		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ6 */378		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D6 */379		  SUNXI_FUNCTION(0x4, "mmc3")),		/* D6 */380	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15),381		  SUNXI_FUNCTION(0x0, "gpio_in"),382		  SUNXI_FUNCTION(0x1, "gpio_out"),383		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ7 */384		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D7 */385		  SUNXI_FUNCTION(0x4, "mmc3")),		/* D7 */386	/* Hole in pin numbering for A31s */387	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(C, 16), PINCTRL_SUN6I_A31,388		  SUNXI_FUNCTION(0x0, "gpio_in"),389		  SUNXI_FUNCTION(0x1, "gpio_out"),390		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ8 */391		  SUNXI_FUNCTION(0x3, "nand1")),	/* DQ0 */392	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(C, 17), PINCTRL_SUN6I_A31,393		  SUNXI_FUNCTION(0x0, "gpio_in"),394		  SUNXI_FUNCTION(0x1, "gpio_out"),395		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ9 */396		  SUNXI_FUNCTION(0x3, "nand1")),	/* DQ1 */397	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(C, 18), PINCTRL_SUN6I_A31,398		  SUNXI_FUNCTION(0x0, "gpio_in"),399		  SUNXI_FUNCTION(0x1, "gpio_out"),400		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ10 */401		  SUNXI_FUNCTION(0x3, "nand1")),	/* DQ2 */402	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(C, 19), PINCTRL_SUN6I_A31,403		  SUNXI_FUNCTION(0x0, "gpio_in"),404		  SUNXI_FUNCTION(0x1, "gpio_out"),405		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ11 */406		  SUNXI_FUNCTION(0x3, "nand1")),	/* DQ3 */407	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(C, 20), PINCTRL_SUN6I_A31,408		  SUNXI_FUNCTION(0x0, "gpio_in"),409		  SUNXI_FUNCTION(0x1, "gpio_out"),410		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ12 */411		  SUNXI_FUNCTION(0x3, "nand1")),	/* DQ4 */412	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(C, 21), PINCTRL_SUN6I_A31,413		  SUNXI_FUNCTION(0x0, "gpio_in"),414		  SUNXI_FUNCTION(0x1, "gpio_out"),415		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ13 */416		  SUNXI_FUNCTION(0x3, "nand1")),	/* DQ5 */417	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(C, 22), PINCTRL_SUN6I_A31,418		  SUNXI_FUNCTION(0x0, "gpio_in"),419		  SUNXI_FUNCTION(0x1, "gpio_out"),420		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ14 */421		  SUNXI_FUNCTION(0x3, "nand1")),	/* DQ6 */422	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(C, 23), PINCTRL_SUN6I_A31,423		  SUNXI_FUNCTION(0x0, "gpio_in"),424		  SUNXI_FUNCTION(0x1, "gpio_out"),425		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ15 */426		  SUNXI_FUNCTION(0x3, "nand1")),	/* DQ7 */427	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 24),428		  SUNXI_FUNCTION(0x0, "gpio_in"),429		  SUNXI_FUNCTION(0x1, "gpio_out"),430		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQS */431		  SUNXI_FUNCTION(0x3, "mmc2"),		/* RST */432		  SUNXI_FUNCTION(0x4, "mmc3")),		/* RST */433	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 25),434		  SUNXI_FUNCTION(0x0, "gpio_in"),435		  SUNXI_FUNCTION(0x1, "gpio_out"),436		  SUNXI_FUNCTION(0x2, "nand0")),	/* CE2 */437	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 26),438		  SUNXI_FUNCTION(0x0, "gpio_in"),439		  SUNXI_FUNCTION(0x1, "gpio_out"),440		  SUNXI_FUNCTION(0x2, "nand0")),	/* CE3 */441	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 27),442		  SUNXI_FUNCTION(0x0, "gpio_in"),443		  SUNXI_FUNCTION(0x1, "gpio_out"),444		  SUNXI_FUNCTION(0x3, "spi0")),		/* CS0 */445	/* Hole */446	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 0),447		  SUNXI_FUNCTION(0x0, "gpio_in"),448		  SUNXI_FUNCTION(0x1, "gpio_out"),449		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D0 */450		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VP0 */451	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 1),452		  SUNXI_FUNCTION(0x0, "gpio_in"),453		  SUNXI_FUNCTION(0x1, "gpio_out"),454		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D1 */455		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VN0 */456	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 2),457		  SUNXI_FUNCTION(0x0, "gpio_in"),458		  SUNXI_FUNCTION(0x1, "gpio_out"),459		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D2 */460		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VP1 */461	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 3),462		  SUNXI_FUNCTION(0x0, "gpio_in"),463		  SUNXI_FUNCTION(0x1, "gpio_out"),464		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D3 */465		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VN1 */466	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 4),467		  SUNXI_FUNCTION(0x0, "gpio_in"),468		  SUNXI_FUNCTION(0x1, "gpio_out"),469		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D4 */470		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VP2 */471	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 5),472		  SUNXI_FUNCTION(0x0, "gpio_in"),473		  SUNXI_FUNCTION(0x1, "gpio_out"),474		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D5 */475		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VN2 */476	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 6),477		  SUNXI_FUNCTION(0x0, "gpio_in"),478		  SUNXI_FUNCTION(0x1, "gpio_out"),479		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D6 */480		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VPC */481	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 7),482		  SUNXI_FUNCTION(0x0, "gpio_in"),483		  SUNXI_FUNCTION(0x1, "gpio_out"),484		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D7 */485		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VNC */486	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 8),487		  SUNXI_FUNCTION(0x0, "gpio_in"),488		  SUNXI_FUNCTION(0x1, "gpio_out"),489		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D8 */490		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VP3 */491	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 9),492		  SUNXI_FUNCTION(0x0, "gpio_in"),493		  SUNXI_FUNCTION(0x1, "gpio_out"),494		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D9 */495		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VN3 */496	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 10),497		  SUNXI_FUNCTION(0x0, "gpio_in"),498		  SUNXI_FUNCTION(0x1, "gpio_out"),499		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D10 */500		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",501					 PINCTRL_SUN6I_A31)),	/* VP0 */502	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 11),503		  SUNXI_FUNCTION(0x0, "gpio_in"),504		  SUNXI_FUNCTION(0x1, "gpio_out"),505		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D11 */506		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",507					 PINCTRL_SUN6I_A31)),	/* VN0 */508	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 12),509		  SUNXI_FUNCTION(0x0, "gpio_in"),510		  SUNXI_FUNCTION(0x1, "gpio_out"),511		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D12 */512		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",513					 PINCTRL_SUN6I_A31)),	/* VP1 */514	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 13),515		  SUNXI_FUNCTION(0x0, "gpio_in"),516		  SUNXI_FUNCTION(0x1, "gpio_out"),517		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D13 */518		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",519					 PINCTRL_SUN6I_A31)),	/* VN1 */520	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 14),521		  SUNXI_FUNCTION(0x0, "gpio_in"),522		  SUNXI_FUNCTION(0x1, "gpio_out"),523		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D14 */524		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",525					 PINCTRL_SUN6I_A31)),	/* VP2 */526	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 15),527		  SUNXI_FUNCTION(0x0, "gpio_in"),528		  SUNXI_FUNCTION(0x1, "gpio_out"),529		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D15 */530		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",531					 PINCTRL_SUN6I_A31)),	/* VN2 */532	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 16),533		  SUNXI_FUNCTION(0x0, "gpio_in"),534		  SUNXI_FUNCTION(0x1, "gpio_out"),535		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D16 */536		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",537					 PINCTRL_SUN6I_A31)),	/* VPC */538	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 17),539		  SUNXI_FUNCTION(0x0, "gpio_in"),540		  SUNXI_FUNCTION(0x1, "gpio_out"),541		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D17 */542		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",543					 PINCTRL_SUN6I_A31)),	/* VNC */544	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 18),545		  SUNXI_FUNCTION(0x0, "gpio_in"),546		  SUNXI_FUNCTION(0x1, "gpio_out"),547		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D18 */548		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",549					 PINCTRL_SUN6I_A31)),	/* VP3 */550	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 19),551		  SUNXI_FUNCTION(0x0, "gpio_in"),552		  SUNXI_FUNCTION(0x1, "gpio_out"),553		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D19 */554		  SUNXI_FUNCTION_VARIANT(0x3, "lvds1",555					 PINCTRL_SUN6I_A31)),	/* VN3 */556	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 20),557		  SUNXI_FUNCTION(0x0, "gpio_in"),558		  SUNXI_FUNCTION(0x1, "gpio_out"),559		  SUNXI_FUNCTION(0x2, "lcd0")),		/* D20 */560	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 21),561		  SUNXI_FUNCTION(0x0, "gpio_in"),562		  SUNXI_FUNCTION(0x1, "gpio_out"),563		  SUNXI_FUNCTION(0x2, "lcd0")),		/* D21 */564	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 22),565		  SUNXI_FUNCTION(0x0, "gpio_in"),566		  SUNXI_FUNCTION(0x1, "gpio_out"),567		  SUNXI_FUNCTION(0x2, "lcd0")),		/* D22 */568	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 23),569		  SUNXI_FUNCTION(0x0, "gpio_in"),570		  SUNXI_FUNCTION(0x1, "gpio_out"),571		  SUNXI_FUNCTION(0x2, "lcd0")),		/* D23 */572	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 24),573		  SUNXI_FUNCTION(0x0, "gpio_in"),574		  SUNXI_FUNCTION(0x1, "gpio_out"),575		  SUNXI_FUNCTION(0x2, "lcd0")),		/* CLK */576	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 25),577		  SUNXI_FUNCTION(0x0, "gpio_in"),578		  SUNXI_FUNCTION(0x1, "gpio_out"),579		  SUNXI_FUNCTION(0x2, "lcd0")),		/* DE */580	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 26),581		  SUNXI_FUNCTION(0x0, "gpio_in"),582		  SUNXI_FUNCTION(0x1, "gpio_out"),583		  SUNXI_FUNCTION(0x2, "lcd0")),		/* HSYNC */584	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 27),585		  SUNXI_FUNCTION(0x0, "gpio_in"),586		  SUNXI_FUNCTION(0x1, "gpio_out"),587		  SUNXI_FUNCTION(0x2, "lcd0")),		/* VSYNC */588	/* Hole */589	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 0),590		  SUNXI_FUNCTION(0x0, "gpio_in"),591		  SUNXI_FUNCTION(0x1, "gpio_out"),592		  SUNXI_FUNCTION(0x2, "csi"),		/* PCLK */593		  SUNXI_FUNCTION(0x3, "ts"),		/* CLK */594		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 0)),	/* PE_EINT0 */595	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 1),596		  SUNXI_FUNCTION(0x0, "gpio_in"),597		  SUNXI_FUNCTION(0x1, "gpio_out"),598		  SUNXI_FUNCTION(0x2, "csi"),		/* MCLK */599		  SUNXI_FUNCTION(0x3, "ts"),		/* ERR */600		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 1)),	/* PE_EINT1 */601	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 2),602		  SUNXI_FUNCTION(0x0, "gpio_in"),603		  SUNXI_FUNCTION(0x1, "gpio_out"),604		  SUNXI_FUNCTION(0x2, "csi"),		/* HSYNC */605		  SUNXI_FUNCTION(0x3, "ts"),		/* SYNC */606		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 2)),	/* PE_EINT2 */607	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 3),608		  SUNXI_FUNCTION(0x0, "gpio_in"),609		  SUNXI_FUNCTION(0x1, "gpio_out"),610		  SUNXI_FUNCTION(0x2, "csi"),		/* VSYNC */611		  SUNXI_FUNCTION(0x3, "ts"),		/* DVLD */612		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 3)),	/* PE_EINT3 */613	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 4),614		  SUNXI_FUNCTION(0x0, "gpio_in"),615		  SUNXI_FUNCTION(0x1, "gpio_out"),616		  SUNXI_FUNCTION(0x2, "csi"),		/* D0 */617		  SUNXI_FUNCTION(0x3, "uart5"),		/* TX */618		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 4)),	/* PE_EINT4 */619	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 5),620		  SUNXI_FUNCTION(0x0, "gpio_in"),621		  SUNXI_FUNCTION(0x1, "gpio_out"),622		  SUNXI_FUNCTION(0x2, "csi"),		/* D1 */623		  SUNXI_FUNCTION(0x3, "uart5"),		/* RX */624		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 5)),	/* PE_EINT5 */625	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 6),626		  SUNXI_FUNCTION(0x0, "gpio_in"),627		  SUNXI_FUNCTION(0x1, "gpio_out"),628		  SUNXI_FUNCTION(0x2, "csi"),		/* D2 */629		  SUNXI_FUNCTION(0x3, "uart5"),		/* RTS */630		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 6)),	/* PE_EINT6 */631	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 7),632		  SUNXI_FUNCTION(0x0, "gpio_in"),633		  SUNXI_FUNCTION(0x1, "gpio_out"),634		  SUNXI_FUNCTION(0x2, "csi"),		/* D3 */635		  SUNXI_FUNCTION(0x3, "uart5"),		/* CTS */636		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 7)),	/* PE_EINT7 */637	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 8),638		  SUNXI_FUNCTION(0x0, "gpio_in"),639		  SUNXI_FUNCTION(0x1, "gpio_out"),640		  SUNXI_FUNCTION(0x2, "csi"),		/* D4 */641		  SUNXI_FUNCTION(0x3, "ts"),		/* D0 */642		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 8)),	/* PE_EINT8 */643	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 9),644		  SUNXI_FUNCTION(0x0, "gpio_in"),645		  SUNXI_FUNCTION(0x1, "gpio_out"),646		  SUNXI_FUNCTION(0x2, "csi"),		/* D5 */647		  SUNXI_FUNCTION(0x3, "ts"),		/* D1 */648		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 9)),	/* PE_EINT9 */649	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 10),650		  SUNXI_FUNCTION(0x0, "gpio_in"),651		  SUNXI_FUNCTION(0x1, "gpio_out"),652		  SUNXI_FUNCTION(0x2, "csi"),		/* D6 */653		  SUNXI_FUNCTION(0x3, "ts"),		/* D2 */654		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 10)),	/* PE_EINT10 */655	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 11),656		  SUNXI_FUNCTION(0x0, "gpio_in"),657		  SUNXI_FUNCTION(0x1, "gpio_out"),658		  SUNXI_FUNCTION(0x2, "csi"),		/* D7 */659		  SUNXI_FUNCTION(0x3, "ts"),		/* D3 */660		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 11)),	/* PE_EINT11 */661	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 12),662		  SUNXI_FUNCTION(0x0, "gpio_in"),663		  SUNXI_FUNCTION(0x1, "gpio_out"),664		  SUNXI_FUNCTION(0x2, "csi"),		/* D8 */665		  SUNXI_FUNCTION(0x3, "ts"),		/* D4 */666		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 12)),	/* PE_EINT12 */667	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 13),668		  SUNXI_FUNCTION(0x0, "gpio_in"),669		  SUNXI_FUNCTION(0x1, "gpio_out"),670		  SUNXI_FUNCTION(0x2, "csi"),		/* D9 */671		  SUNXI_FUNCTION(0x3, "ts"),		/* D5 */672		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 13)),	/* PE_EINT13 */673	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 14),674		  SUNXI_FUNCTION(0x0, "gpio_in"),675		  SUNXI_FUNCTION(0x1, "gpio_out"),676		  SUNXI_FUNCTION(0x2, "csi"),		/* D10 */677		  SUNXI_FUNCTION(0x3, "ts"),		/* D6 */678		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 14)),	/* PE_EINT14 */679	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 15),680		  SUNXI_FUNCTION(0x0, "gpio_in"),681		  SUNXI_FUNCTION(0x1, "gpio_out"),682		  SUNXI_FUNCTION(0x2, "csi"),		/* D11 */683		  SUNXI_FUNCTION(0x3, "ts"),		/* D7 */684		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 15)),	/* PE_EINT15 */685	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(E, 16), PINCTRL_SUN6I_A31,686		  SUNXI_FUNCTION(0x0, "gpio_in"),687		  SUNXI_FUNCTION(0x1, "gpio_out"),688		  SUNXI_FUNCTION(0x2, "csi"),		/* MIPI CSI MCLK */689		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 16)),	/* PE_EINT16 */690	/* Hole */691	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 0),692		  SUNXI_FUNCTION(0x0, "gpio_in"),693		  SUNXI_FUNCTION(0x1, "gpio_out"),694		  SUNXI_FUNCTION(0x2, "mmc0"),		/* D1 */695		  SUNXI_FUNCTION(0x4, "jtag")),		/* MS1 */696	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 1),697		  SUNXI_FUNCTION(0x0, "gpio_in"),698		  SUNXI_FUNCTION(0x1, "gpio_out"),699		  SUNXI_FUNCTION(0x2, "mmc0"),		/* D0 */700		  SUNXI_FUNCTION(0x4, "jtag")),		/* DI1 */701	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 2),702		  SUNXI_FUNCTION(0x0, "gpio_in"),703		  SUNXI_FUNCTION(0x1, "gpio_out"),704		  SUNXI_FUNCTION(0x2, "mmc0"),		/* CLK */705		  SUNXI_FUNCTION(0x4, "uart0")),	/* TX */706	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 3),707		  SUNXI_FUNCTION(0x0, "gpio_in"),708		  SUNXI_FUNCTION(0x1, "gpio_out"),709		  SUNXI_FUNCTION(0x2, "mmc0"),		/* CMD */710		  SUNXI_FUNCTION(0x4, "jtag")),		/* DO1 */711	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 4),712		  SUNXI_FUNCTION(0x0, "gpio_in"),713		  SUNXI_FUNCTION(0x1, "gpio_out"),714		  SUNXI_FUNCTION(0x2, "mmc0"),		/* D3 */715		  SUNXI_FUNCTION(0x4, "uart0")),	/* RX */716	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 5),717		  SUNXI_FUNCTION(0x0, "gpio_in"),718		  SUNXI_FUNCTION(0x1, "gpio_out"),719		  SUNXI_FUNCTION(0x2, "mmc0"),		/* D2 */720		  SUNXI_FUNCTION(0x4, "jtag")),		/* CK1 */721	/* Hole */722	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 0),723		  SUNXI_FUNCTION(0x0, "gpio_in"),724		  SUNXI_FUNCTION(0x1, "gpio_out"),725		  SUNXI_FUNCTION(0x2, "mmc1"),		/* CLK */726		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 0)),	/* PG_EINT0 */727	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 1),728		  SUNXI_FUNCTION(0x0, "gpio_in"),729		  SUNXI_FUNCTION(0x1, "gpio_out"),730		  SUNXI_FUNCTION(0x2, "mmc1"),		/* CMD */731		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 1)),	/* PG_EINT1 */732	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 2),733		  SUNXI_FUNCTION(0x0, "gpio_in"),734		  SUNXI_FUNCTION(0x1, "gpio_out"),735		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D0 */736		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 2)),	/* PG_EINT2 */737	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 3),738		  SUNXI_FUNCTION(0x0, "gpio_in"),739		  SUNXI_FUNCTION(0x1, "gpio_out"),740		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D1 */741		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 3)),	/* PG_EINT3 */742	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 4),743		  SUNXI_FUNCTION(0x0, "gpio_in"),744		  SUNXI_FUNCTION(0x1, "gpio_out"),745		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D2 */746		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 4)),	/* PG_EINT4 */747	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 5),748		  SUNXI_FUNCTION(0x0, "gpio_in"),749		  SUNXI_FUNCTION(0x1, "gpio_out"),750		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D3 */751		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 5)),	/* PG_EINT5 */752	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 6),753		  SUNXI_FUNCTION(0x0, "gpio_in"),754		  SUNXI_FUNCTION(0x1, "gpio_out"),755		  SUNXI_FUNCTION(0x2, "uart2"),		/* TX */756		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 6)),	/* PG_EINT6 */757	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 7),758		  SUNXI_FUNCTION(0x0, "gpio_in"),759		  SUNXI_FUNCTION(0x1, "gpio_out"),760		  SUNXI_FUNCTION(0x2, "uart2"),		/* RX */761		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 7)),	/* PG_EINT7 */762	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 8),763		  SUNXI_FUNCTION(0x0, "gpio_in"),764		  SUNXI_FUNCTION(0x1, "gpio_out"),765		  SUNXI_FUNCTION(0x2, "uart2"),		/* RTS */766		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 8)),	/* PG_EINT8 */767	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 9),768		  SUNXI_FUNCTION(0x0, "gpio_in"),769		  SUNXI_FUNCTION(0x1, "gpio_out"),770		  SUNXI_FUNCTION(0x2, "uart2"),		/* CTS */771		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 9)),	/* PG_EINT9 */772	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 10),773		  SUNXI_FUNCTION(0x0, "gpio_in"),774		  SUNXI_FUNCTION(0x1, "gpio_out"),775		  SUNXI_FUNCTION(0x2, "i2c3"),		/* SCK */776		  SUNXI_FUNCTION_VARIANT(0x3, "usb",777					 PINCTRL_SUN6I_A31),	/* DP3 */778		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 10)),	/* PG_EINT10 */779	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 11),780		  SUNXI_FUNCTION(0x0, "gpio_in"),781		  SUNXI_FUNCTION(0x1, "gpio_out"),782		  SUNXI_FUNCTION(0x2, "i2c3"),		/* SDA */783		  SUNXI_FUNCTION_VARIANT(0x3, "usb",784					 PINCTRL_SUN6I_A31),	/* DM3 */785		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 11)),	/* PG_EINT11 */786	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 12),787		  SUNXI_FUNCTION(0x0, "gpio_in"),788		  SUNXI_FUNCTION(0x1, "gpio_out"),789		  SUNXI_FUNCTION(0x2, "spi1"),		/* CS1 */790		  SUNXI_FUNCTION(0x3, "i2s1"),		/* MCLK */791		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 12)),	/* PG_EINT12 */792	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 13),793		  SUNXI_FUNCTION(0x0, "gpio_in"),794		  SUNXI_FUNCTION(0x1, "gpio_out"),795		  SUNXI_FUNCTION(0x2, "spi1"),		/* CS0 */796		  SUNXI_FUNCTION(0x3, "i2s1"),		/* BCLK */797		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 13)),	/* PG_EINT13 */798	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 14),799		  SUNXI_FUNCTION(0x0, "gpio_in"),800		  SUNXI_FUNCTION(0x1, "gpio_out"),801		  SUNXI_FUNCTION(0x2, "spi1"),		/* CLK */802		  SUNXI_FUNCTION(0x3, "i2s1"),		/* LRCK */803		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 14)),	/* PG_EINT14 */804	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 15),805		  SUNXI_FUNCTION(0x0, "gpio_in"),806		  SUNXI_FUNCTION(0x1, "gpio_out"),807		  SUNXI_FUNCTION(0x2, "spi1"),		/* MOSI */808		  SUNXI_FUNCTION(0x3, "i2s1"),		/* DIN */809		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 15)),	/* PG_EINT15 */810	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 16),811		  SUNXI_FUNCTION(0x0, "gpio_in"),812		  SUNXI_FUNCTION(0x1, "gpio_out"),813		  SUNXI_FUNCTION(0x2, "spi1"),		/* MISO */814		  SUNXI_FUNCTION(0x3, "i2s1"),		/* DOUT */815		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 16)),	/* PG_EINT16 */816	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 17),817		  SUNXI_FUNCTION(0x0, "gpio_in"),818		  SUNXI_FUNCTION(0x1, "gpio_out"),819		  SUNXI_FUNCTION(0x2, "uart4"),		/* TX */820		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 17)),	/* PG_EINT17 */821	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 18),822		  SUNXI_FUNCTION(0x0, "gpio_in"),823		  SUNXI_FUNCTION(0x1, "gpio_out"),824		  SUNXI_FUNCTION(0x2, "uart4"),		/* RX */825		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 18)),	/* PG_EINT18 */826	/* Hole; H starts at pin 9 for A31s */827	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 0), PINCTRL_SUN6I_A31,828		  SUNXI_FUNCTION(0x0, "gpio_in"),829		  SUNXI_FUNCTION(0x1, "gpio_out"),830		  SUNXI_FUNCTION(0x2, "nand1")),	/* WE */831	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 1), PINCTRL_SUN6I_A31,832		  SUNXI_FUNCTION(0x0, "gpio_in"),833		  SUNXI_FUNCTION(0x1, "gpio_out"),834		  SUNXI_FUNCTION(0x2, "nand1")),	/* ALE */835	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 2), PINCTRL_SUN6I_A31,836		  SUNXI_FUNCTION(0x0, "gpio_in"),837		  SUNXI_FUNCTION(0x1, "gpio_out"),838		  SUNXI_FUNCTION(0x2, "nand1")),	/* CLE */839	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 3), PINCTRL_SUN6I_A31,840		  SUNXI_FUNCTION(0x0, "gpio_in"),841		  SUNXI_FUNCTION(0x1, "gpio_out"),842		  SUNXI_FUNCTION(0x2, "nand1")),	/* CE1 */843	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 4), PINCTRL_SUN6I_A31,844		  SUNXI_FUNCTION(0x0, "gpio_in"),845		  SUNXI_FUNCTION(0x1, "gpio_out"),846		  SUNXI_FUNCTION(0x2, "nand1")),	/* CE0 */847	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 5), PINCTRL_SUN6I_A31,848		  SUNXI_FUNCTION(0x0, "gpio_in"),849		  SUNXI_FUNCTION(0x1, "gpio_out"),850		  SUNXI_FUNCTION(0x2, "nand1")),	/* RE */851	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 6), PINCTRL_SUN6I_A31,852		  SUNXI_FUNCTION(0x0, "gpio_in"),853		  SUNXI_FUNCTION(0x1, "gpio_out"),854		  SUNXI_FUNCTION(0x2, "nand1")),	/* RB0 */855	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 7), PINCTRL_SUN6I_A31,856		  SUNXI_FUNCTION(0x0, "gpio_in"),857		  SUNXI_FUNCTION(0x1, "gpio_out"),858		  SUNXI_FUNCTION(0x2, "nand1")),	/* RB1 */859	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 8), PINCTRL_SUN6I_A31,860		  SUNXI_FUNCTION(0x0, "gpio_in"),861		  SUNXI_FUNCTION(0x1, "gpio_out"),862		  SUNXI_FUNCTION(0x2, "nand1")),	/* DQS */863	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 9),864		  SUNXI_FUNCTION(0x0, "gpio_in"),865		  SUNXI_FUNCTION(0x1, "gpio_out"),866		  SUNXI_FUNCTION(0x2, "spi2"),		/* CS0 */867		  SUNXI_FUNCTION(0x3, "jtag"),		/* MS0 */868		  SUNXI_FUNCTION(0x4, "pwm1")),		/* Positive */869	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 10),870		  SUNXI_FUNCTION(0x0, "gpio_in"),871		  SUNXI_FUNCTION(0x1, "gpio_out"),872		  SUNXI_FUNCTION(0x2, "spi2"),		/* CLK */873		  SUNXI_FUNCTION(0x3, "jtag"),		/* CK0 */874		  SUNXI_FUNCTION(0x4, "pwm1")),		/* Negative */875	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 11),876		  SUNXI_FUNCTION(0x0, "gpio_in"),877		  SUNXI_FUNCTION(0x1, "gpio_out"),878		  SUNXI_FUNCTION(0x2, "spi2"),		/* MOSI */879		  SUNXI_FUNCTION(0x3, "jtag"),		/* DO0 */880		  SUNXI_FUNCTION(0x4, "pwm2")),		/* Positive */881	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 12),882		  SUNXI_FUNCTION(0x0, "gpio_in"),883		  SUNXI_FUNCTION(0x1, "gpio_out"),884		  SUNXI_FUNCTION(0x2, "spi2"),		/* MISO */885		  SUNXI_FUNCTION(0x3, "jtag"),		/* DI0 */886		  SUNXI_FUNCTION(0x4, "pwm2")),		/* Negative */887	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 13),888		  SUNXI_FUNCTION(0x0, "gpio_in"),889		  SUNXI_FUNCTION(0x1, "gpio_out"),890		  SUNXI_FUNCTION(0x2, "pwm0")),891	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 14),892		  SUNXI_FUNCTION(0x0, "gpio_in"),893		  SUNXI_FUNCTION(0x1, "gpio_out"),894		  SUNXI_FUNCTION(0x2, "i2c0")),		/* SCK */895	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 15),896		  SUNXI_FUNCTION(0x0, "gpio_in"),897		  SUNXI_FUNCTION(0x1, "gpio_out"),898		  SUNXI_FUNCTION(0x2, "i2c0")),		/* SDA */899	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 16),900		  SUNXI_FUNCTION(0x0, "gpio_in"),901		  SUNXI_FUNCTION(0x1, "gpio_out"),902		  SUNXI_FUNCTION(0x2, "i2c1")),		/* SCK */903	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17),904		  SUNXI_FUNCTION(0x0, "gpio_in"),905		  SUNXI_FUNCTION(0x1, "gpio_out"),906		  SUNXI_FUNCTION(0x2, "i2c1")),		/* SDA */907	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 18),908		  SUNXI_FUNCTION(0x0, "gpio_in"),909		  SUNXI_FUNCTION(0x1, "gpio_out"),910		  SUNXI_FUNCTION(0x2, "i2c2")),		/* SCK */911	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 19),912		  SUNXI_FUNCTION(0x0, "gpio_in"),913		  SUNXI_FUNCTION(0x1, "gpio_out"),914		  SUNXI_FUNCTION(0x2, "i2c2")),		/* SDA */915	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 20),916		  SUNXI_FUNCTION(0x0, "gpio_in"),917		  SUNXI_FUNCTION(0x1, "gpio_out"),918		  SUNXI_FUNCTION(0x2, "uart0")),	/* TX */919	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 21),920		  SUNXI_FUNCTION(0x0, "gpio_in"),921		  SUNXI_FUNCTION(0x1, "gpio_out"),922		  SUNXI_FUNCTION(0x2, "uart0")),	/* RX */923	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 22),924		  SUNXI_FUNCTION(0x0, "gpio_in"),925		  SUNXI_FUNCTION(0x1, "gpio_out")),926	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 23),927		  SUNXI_FUNCTION(0x0, "gpio_in"),928		  SUNXI_FUNCTION(0x1, "gpio_out")),929	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 24),930		  SUNXI_FUNCTION(0x0, "gpio_in"),931		  SUNXI_FUNCTION(0x1, "gpio_out")),932	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 25),933		  SUNXI_FUNCTION(0x0, "gpio_in"),934		  SUNXI_FUNCTION(0x1, "gpio_out")),935	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 26),936		  SUNXI_FUNCTION(0x0, "gpio_in"),937		  SUNXI_FUNCTION(0x1, "gpio_out")),938	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 27),939		  SUNXI_FUNCTION(0x0, "gpio_in"),940		  SUNXI_FUNCTION(0x1, "gpio_out"),941		/*942		 * The SPDIF block is not referenced at all in the A31 user943		 * manual. However it is described in the code leaked and the944		 * configuration files supplied by vendors.945		 */946		  SUNXI_FUNCTION(0x3, "spdif")),        /* SPDIF IN */947	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 28),948		  SUNXI_FUNCTION(0x0, "gpio_in"),949		  SUNXI_FUNCTION(0x1, "gpio_out"),950		/* Undocumented mux function - see above */951		  SUNXI_FUNCTION(0x3, "spdif")),        /* SPDIF OUT */952	/* 2 extra pins for A31 */953	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 29), PINCTRL_SUN6I_A31,954		  SUNXI_FUNCTION(0x0, "gpio_in"),955		  SUNXI_FUNCTION(0x1, "gpio_out"),956		  SUNXI_FUNCTION(0x2, "nand1")),	/* CE2 */957	SUNXI_PIN_VARIANT(SUNXI_PINCTRL_PIN(H, 30), PINCTRL_SUN6I_A31,958		  SUNXI_FUNCTION(0x0, "gpio_in"),959		  SUNXI_FUNCTION(0x1, "gpio_out"),960		  SUNXI_FUNCTION(0x2, "nand1")),	/* CE3 */961};962 963static const struct sunxi_pinctrl_desc sun6i_a31_pinctrl_data = {964	.pins = sun6i_a31_pins,965	.npins = ARRAY_SIZE(sun6i_a31_pins),966	.irq_banks = 4,967	.disable_strict_mode = true,968};969 970static int sun6i_a31_pinctrl_probe(struct platform_device *pdev)971{972	unsigned long variant =973		(unsigned long)of_device_get_match_data(&pdev->dev);974 975	return sunxi_pinctrl_init_with_variant(pdev,976					       &sun6i_a31_pinctrl_data,977					       variant);978}979 980static const struct of_device_id sun6i_a31_pinctrl_match[] = {981	{982		.compatible = "allwinner,sun6i-a31-pinctrl",983		.data = (void *)PINCTRL_SUN6I_A31984	},985	{986		.compatible = "allwinner,sun6i-a31s-pinctrl",987		.data = (void *)PINCTRL_SUN6I_A31S988	},989	{}990};991 992static struct platform_driver sun6i_a31_pinctrl_driver = {993	.probe	= sun6i_a31_pinctrl_probe,994	.driver	= {995		.name		= "sun6i-a31-pinctrl",996		.of_match_table	= sun6i_a31_pinctrl_match,997	},998};999builtin_platform_driver(sun6i_a31_pinctrl_driver);1000