brintos

brintos / linux-shallow public Read only

0
0
Text · 28.5 KiB · 61137c7 Raw
746 lines · c
1/*2 * Allwinner A80 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 sun9i_a80_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"),		/* RXD3 */25		  SUNXI_FUNCTION(0x4, "uart1"),		/* TX */26		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 0)),	/* PA_EINT0 */27	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 1),28		  SUNXI_FUNCTION(0x0, "gpio_in"),29		  SUNXI_FUNCTION(0x1, "gpio_out"),30		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD2 */31		  SUNXI_FUNCTION(0x4, "uart1"),		/* RX */32		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 1)),	/* PA_EINT1 */33	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 2),34		  SUNXI_FUNCTION(0x0, "gpio_in"),35		  SUNXI_FUNCTION(0x1, "gpio_out"),36		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD1 */37		  SUNXI_FUNCTION(0x4, "uart1"),		/* RTS */38		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 2)),	/* PA_EINT2 */39	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 3),40		  SUNXI_FUNCTION(0x0, "gpio_in"),41		  SUNXI_FUNCTION(0x1, "gpio_out"),42		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXD0 */43		  SUNXI_FUNCTION(0x4, "uart1"),		/* CTS */44		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 3)),	/* PA_EINT3 */45	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 4),46		  SUNXI_FUNCTION(0x0, "gpio_in"),47		  SUNXI_FUNCTION(0x1, "gpio_out"),48		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXCK */49		  SUNXI_FUNCTION(0x4, "uart1"),		/* DTR */50		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 4)),	/* PA_EINT4 */51	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 5),52		  SUNXI_FUNCTION(0x0, "gpio_in"),53		  SUNXI_FUNCTION(0x1, "gpio_out"),54		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXCTL */55		  SUNXI_FUNCTION(0x4, "uart1"),		/* DSR */56		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 5)),	/* PA_EINT5 */57	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 6),58		  SUNXI_FUNCTION(0x0, "gpio_in"),59		  SUNXI_FUNCTION(0x1, "gpio_out"),60		  SUNXI_FUNCTION(0x2, "gmac"),		/* RXERR */61		  SUNXI_FUNCTION(0x4, "uart1"),		/* DCD */62		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 6)),	/* PA_EINT6 */63	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 7),64		  SUNXI_FUNCTION(0x0, "gpio_in"),65		  SUNXI_FUNCTION(0x1, "gpio_out"),66		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD3 */67		  SUNXI_FUNCTION(0x4, "uart1"),		/* RING */68		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 7)),	/* PA_EINT7 */69	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 8),70		  SUNXI_FUNCTION(0x0, "gpio_in"),71		  SUNXI_FUNCTION(0x1, "gpio_out"),72		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD2 */73		  SUNXI_FUNCTION(0x4, "eclk"),		/* IN0 */74		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 8)),	/* PA_EINT8 */75	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 9),76		  SUNXI_FUNCTION(0x0, "gpio_in"),77		  SUNXI_FUNCTION(0x1, "gpio_out"),78		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXEN */79		  SUNXI_FUNCTION(0x4, "eclk"),		/* IN1 */80		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 9)),	/* PA_EINT9 */81	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 10),82		  SUNXI_FUNCTION(0x0, "gpio_in"),83		  SUNXI_FUNCTION(0x1, "gpio_out"),84		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXD0 */85		  SUNXI_FUNCTION(0x4, "clk_out_a"),86		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 10)),	/* PA_EINT10 */87	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 11),88		  SUNXI_FUNCTION(0x0, "gpio_in"),89		  SUNXI_FUNCTION(0x1, "gpio_out"),90		  SUNXI_FUNCTION(0x2, "gmac"),		/* MII-CRS */91		  SUNXI_FUNCTION(0x4, "clk_out_b"),92		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 11)),	/* PA_EINT11 */93	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 12),94		  SUNXI_FUNCTION(0x0, "gpio_in"),95		  SUNXI_FUNCTION(0x1, "gpio_out"),96		  SUNXI_FUNCTION(0x2, "gmac"),		/* TXCK */97		  SUNXI_FUNCTION(0x4, "pwm3"),		/* PWM_P */98		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 12)),	/* PA_EINT12 */99	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 13),100		  SUNXI_FUNCTION(0x0, "gpio_in"),101		  SUNXI_FUNCTION(0x1, "gpio_out"),102		  SUNXI_FUNCTION(0x2, "gmac"),		/* RGMII-TXCK / GMII-TXEN */103		  SUNXI_FUNCTION(0x4, "pwm3"),		/* PWM_N */104		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 13)),	/* PA_EINT13 */105	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 14),106		  SUNXI_FUNCTION(0x0, "gpio_in"),107		  SUNXI_FUNCTION(0x1, "gpio_out"),108		  SUNXI_FUNCTION(0x2, "gmac"),		/* MII-TXERR */109		  SUNXI_FUNCTION(0x4, "spi1"),		/* CS0 */110		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 14)),	/* PA_EINT14 */111	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 15),112		  SUNXI_FUNCTION(0x0, "gpio_in"),113		  SUNXI_FUNCTION(0x1, "gpio_out"),114		  SUNXI_FUNCTION(0x2, "gmac"),		/* RGMII-CLKIN / MII-COL */115		  SUNXI_FUNCTION(0x4, "spi1"),		/* CLK */116		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 15)),	/* PA_EINT15 */117	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 16),118		  SUNXI_FUNCTION(0x0, "gpio_in"),119		  SUNXI_FUNCTION(0x1, "gpio_out"),120		  SUNXI_FUNCTION(0x2, "gmac"),		/* EMDC */121		  SUNXI_FUNCTION(0x4, "spi1"),		/* MOSI */122		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 16)),	/* PA_EINT16 */123	SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 17),124		  SUNXI_FUNCTION(0x0, "gpio_in"),125		  SUNXI_FUNCTION(0x1, "gpio_out"),126		  SUNXI_FUNCTION(0x2, "gmac"),		/* EMDIO */127		  SUNXI_FUNCTION(0x4, "spi1"),		/* MISO */128		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 17)),	/* PA_EINT17 */129 130	/* Hole */131	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 5),132		  SUNXI_FUNCTION(0x0, "gpio_in"),133		  SUNXI_FUNCTION(0x1, "gpio_out"),134		  SUNXI_FUNCTION(0x3, "uart3"),		/* TX */135		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 5)),	/* PB_EINT5 */136	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 6),137		  SUNXI_FUNCTION(0x0, "gpio_in"),138		  SUNXI_FUNCTION(0x1, "gpio_out"),139		  SUNXI_FUNCTION(0x3, "uart3"),		/* RX */140		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 6)),	/* PB_EINT6 */141 142	/* Hole */143	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 14),144		  SUNXI_FUNCTION(0x0, "gpio_in"),145		  SUNXI_FUNCTION(0x1, "gpio_out"),146		  SUNXI_FUNCTION(0x3, "mcsi"),		/* MCLK */147		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 14)),	/* PB_EINT14 */148	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 15),149		  SUNXI_FUNCTION(0x0, "gpio_in"),150		  SUNXI_FUNCTION(0x1, "gpio_out"),151		  SUNXI_FUNCTION(0x3, "mcsi"),		/* SCK */152		  SUNXI_FUNCTION(0x4, "i2c4"),		/* SCK */153		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 15)),	/* PB_EINT15 */154	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 16),155		  SUNXI_FUNCTION(0x0, "gpio_in"),156		  SUNXI_FUNCTION(0x1, "gpio_out"),157		  SUNXI_FUNCTION(0x3, "mcsi"),		/* SDA */158		  SUNXI_FUNCTION(0x4, "i2c4"),		/* SDA */159		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 16)),	/* PB_EINT16 */160 161	/* Hole */162	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 0),163		  SUNXI_FUNCTION(0x0, "gpio_in"),164		  SUNXI_FUNCTION(0x1, "gpio_out"),165		  SUNXI_FUNCTION(0x2, "nand0"),		/* WE */166		  SUNXI_FUNCTION(0x3, "spi0")),		/* MOSI */167	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 1),168		  SUNXI_FUNCTION(0x0, "gpio_in"),169		  SUNXI_FUNCTION(0x1, "gpio_out"),170		  SUNXI_FUNCTION(0x2, "nand0"),		/* ALE */171		  SUNXI_FUNCTION(0x3, "spi0")),		/* MISO */172	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 2),173		  SUNXI_FUNCTION(0x0, "gpio_in"),174		  SUNXI_FUNCTION(0x1, "gpio_out"),175		  SUNXI_FUNCTION(0x2, "nand0"),		/* CLE */176		  SUNXI_FUNCTION(0x3, "spi0")),		/* CLK */177	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 3),178		  SUNXI_FUNCTION(0x0, "gpio_in"),179		  SUNXI_FUNCTION(0x1, "gpio_out"),180		  SUNXI_FUNCTION(0x2, "nand0")),	/* CE1 */181	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 4),182		  SUNXI_FUNCTION(0x0, "gpio_in"),183		  SUNXI_FUNCTION(0x1, "gpio_out"),184		  SUNXI_FUNCTION(0x2, "nand0")),	/* CE0 */185	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 5),186		  SUNXI_FUNCTION(0x0, "gpio_in"),187		  SUNXI_FUNCTION(0x1, "gpio_out"),188		  SUNXI_FUNCTION(0x2, "nand0")),	/* RE */189	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 6),190		  SUNXI_FUNCTION(0x0, "gpio_in"),191		  SUNXI_FUNCTION(0x1, "gpio_out"),192		  SUNXI_FUNCTION(0x2, "nand0"),		/* RB0 */193		  SUNXI_FUNCTION(0x3, "mmc2")),		/* CMD */194	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 7),195		  SUNXI_FUNCTION(0x0, "gpio_in"),196		  SUNXI_FUNCTION(0x1, "gpio_out"),197		  SUNXI_FUNCTION(0x2, "nand0"),		/* RB1 */198		  SUNXI_FUNCTION(0x3, "mmc2")),		/* CLK */199	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 8),200		  SUNXI_FUNCTION(0x0, "gpio_in"),201		  SUNXI_FUNCTION(0x1, "gpio_out"),202		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ0 */203		  SUNXI_FUNCTION(0x3, "mmc2")),		/* D0 */204	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 9),205		  SUNXI_FUNCTION(0x0, "gpio_in"),206		  SUNXI_FUNCTION(0x1, "gpio_out"),207		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ1 */208		  SUNXI_FUNCTION(0x3, "mmc2")),		/* D1 */209	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 10),210		  SUNXI_FUNCTION(0x0, "gpio_in"),211		  SUNXI_FUNCTION(0x1, "gpio_out"),212		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ2 */213		  SUNXI_FUNCTION(0x3, "mmc2")),		/* D2 */214	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 11),215		  SUNXI_FUNCTION(0x0, "gpio_in"),216		  SUNXI_FUNCTION(0x1, "gpio_out"),217		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ3 */218		  SUNXI_FUNCTION(0x3, "mmc2")),		/* D3 */219	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 12),220		  SUNXI_FUNCTION(0x0, "gpio_in"),221		  SUNXI_FUNCTION(0x1, "gpio_out"),222		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ4 */223		  SUNXI_FUNCTION(0x3, "mmc2")),		/* D4 */224	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 13),225		  SUNXI_FUNCTION(0x0, "gpio_in"),226		  SUNXI_FUNCTION(0x1, "gpio_out"),227		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ5 */228		  SUNXI_FUNCTION(0x3, "mmc2")),		/* D5 */229	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14),230		  SUNXI_FUNCTION(0x0, "gpio_in"),231		  SUNXI_FUNCTION(0x1, "gpio_out"),232		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ6 */233		  SUNXI_FUNCTION(0x3, "mmc2")),		/* D6 */234	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15),235		  SUNXI_FUNCTION(0x0, "gpio_in"),236		  SUNXI_FUNCTION(0x1, "gpio_out"),237		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ7 */238		  SUNXI_FUNCTION(0x3, "mmc2")),		/* D7 */239	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16),240		  SUNXI_FUNCTION(0x0, "gpio_in"),241		  SUNXI_FUNCTION(0x1, "gpio_out"),242		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQS */243		  SUNXI_FUNCTION(0x3, "mmc2")),		/* RST */244	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 17),245		  SUNXI_FUNCTION(0x0, "gpio_in"),246		  SUNXI_FUNCTION(0x1, "gpio_out"),247		  SUNXI_FUNCTION(0x2, "nand0"),		/* CE2 */248		  SUNXI_FUNCTION(0x3, "nand0_b")),	/* RE */249	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 18),250		  SUNXI_FUNCTION(0x0, "gpio_in"),251		  SUNXI_FUNCTION(0x1, "gpio_out"),252		  SUNXI_FUNCTION(0x2, "nand0"),		/* CE3 */253		  SUNXI_FUNCTION(0x3, "nand0_b")),	/* DQS */254	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 19),255		  SUNXI_FUNCTION(0x0, "gpio_in"),256		  SUNXI_FUNCTION(0x1, "gpio_out"),257		  SUNXI_FUNCTION(0x3, "spi0")),		/* CS0 */258 259	/* Hole */260	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 0),261		  SUNXI_FUNCTION(0x0, "gpio_in"),262		  SUNXI_FUNCTION(0x1, "gpio_out"),263		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D0 */264		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VP0 */265	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 1),266		  SUNXI_FUNCTION(0x0, "gpio_in"),267		  SUNXI_FUNCTION(0x1, "gpio_out"),268		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D1 */269		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VN0 */270	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 2),271		  SUNXI_FUNCTION(0x0, "gpio_in"),272		  SUNXI_FUNCTION(0x1, "gpio_out"),273		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D2 */274		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VP1 */275	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 3),276		  SUNXI_FUNCTION(0x0, "gpio_in"),277		  SUNXI_FUNCTION(0x1, "gpio_out"),278		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D3 */279		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VN1 */280	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 4),281		  SUNXI_FUNCTION(0x0, "gpio_in"),282		  SUNXI_FUNCTION(0x1, "gpio_out"),283		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D4 */284		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VP2 */285	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 5),286		  SUNXI_FUNCTION(0x0, "gpio_in"),287		  SUNXI_FUNCTION(0x1, "gpio_out"),288		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D5 */289		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VN2 */290	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 6),291		  SUNXI_FUNCTION(0x0, "gpio_in"),292		  SUNXI_FUNCTION(0x1, "gpio_out"),293		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D6 */294		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VPC */295	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 7),296		  SUNXI_FUNCTION(0x0, "gpio_in"),297		  SUNXI_FUNCTION(0x1, "gpio_out"),298		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D7 */299		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VNC */300	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 8),301		  SUNXI_FUNCTION(0x0, "gpio_in"),302		  SUNXI_FUNCTION(0x1, "gpio_out"),303		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D8 */304		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VP3 */305	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 9),306		  SUNXI_FUNCTION(0x0, "gpio_in"),307		  SUNXI_FUNCTION(0x1, "gpio_out"),308		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D9 */309		  SUNXI_FUNCTION(0x3, "lvds0")),	/* VN3 */310	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 10),311		  SUNXI_FUNCTION(0x0, "gpio_in"),312		  SUNXI_FUNCTION(0x1, "gpio_out"),313		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D10 */314		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VP0 */315	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 11),316		  SUNXI_FUNCTION(0x0, "gpio_in"),317		  SUNXI_FUNCTION(0x1, "gpio_out"),318		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D11 */319		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VN0 */320	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 12),321		  SUNXI_FUNCTION(0x0, "gpio_in"),322		  SUNXI_FUNCTION(0x1, "gpio_out"),323		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D12 */324		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VP1 */325	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 13),326		  SUNXI_FUNCTION(0x0, "gpio_in"),327		  SUNXI_FUNCTION(0x1, "gpio_out"),328		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D13 */329		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VN1 */330	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 14),331		  SUNXI_FUNCTION(0x0, "gpio_in"),332		  SUNXI_FUNCTION(0x1, "gpio_out"),333		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D14 */334		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VP2 */335	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 15),336		  SUNXI_FUNCTION(0x0, "gpio_in"),337		  SUNXI_FUNCTION(0x1, "gpio_out"),338		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D15 */339		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VN2 */340	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 16),341		  SUNXI_FUNCTION(0x0, "gpio_in"),342		  SUNXI_FUNCTION(0x1, "gpio_out"),343		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D16 */344		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VPC */345	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 17),346		  SUNXI_FUNCTION(0x0, "gpio_in"),347		  SUNXI_FUNCTION(0x1, "gpio_out"),348		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D17 */349		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VNC */350	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 18),351		  SUNXI_FUNCTION(0x0, "gpio_in"),352		  SUNXI_FUNCTION(0x1, "gpio_out"),353		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D18 */354		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VP3 */355	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 19),356		  SUNXI_FUNCTION(0x0, "gpio_in"),357		  SUNXI_FUNCTION(0x1, "gpio_out"),358		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D19 */359		  SUNXI_FUNCTION(0x3, "lvds1")),	/* VN3 */360	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 20),361		  SUNXI_FUNCTION(0x0, "gpio_in"),362		  SUNXI_FUNCTION(0x1, "gpio_out"),363		  SUNXI_FUNCTION(0x2, "lcd0")),		/* D20 */364	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 21),365		  SUNXI_FUNCTION(0x0, "gpio_in"),366		  SUNXI_FUNCTION(0x1, "gpio_out"),367		  SUNXI_FUNCTION(0x2, "lcd0")),		/* D21 */368	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 22),369		  SUNXI_FUNCTION(0x0, "gpio_in"),370		  SUNXI_FUNCTION(0x1, "gpio_out"),371		  SUNXI_FUNCTION(0x2, "lcd0")),		/* D22 */372	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 23),373		  SUNXI_FUNCTION(0x0, "gpio_in"),374		  SUNXI_FUNCTION(0x1, "gpio_out"),375		  SUNXI_FUNCTION(0x2, "lcd0")),		/* D23 */376	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 24),377		  SUNXI_FUNCTION(0x0, "gpio_in"),378		  SUNXI_FUNCTION(0x1, "gpio_out"),379		  SUNXI_FUNCTION(0x2, "lcd0")),		/* CLK */380	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 25),381		  SUNXI_FUNCTION(0x0, "gpio_in"),382		  SUNXI_FUNCTION(0x1, "gpio_out"),383		  SUNXI_FUNCTION(0x2, "lcd0")),		/* DE */384	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 26),385		  SUNXI_FUNCTION(0x0, "gpio_in"),386		  SUNXI_FUNCTION(0x1, "gpio_out"),387		  SUNXI_FUNCTION(0x2, "lcd0")),		/* HSYNC */388	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 27),389		  SUNXI_FUNCTION(0x0, "gpio_in"),390		  SUNXI_FUNCTION(0x1, "gpio_out"),391		  SUNXI_FUNCTION(0x2, "lcd0")),		/* VSYNC */392 393	/* Hole */394	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 0),395		  SUNXI_FUNCTION(0x0, "gpio_in"),396		  SUNXI_FUNCTION(0x1, "gpio_out"),397		  SUNXI_FUNCTION(0x2, "csi"),		/* PCLK */398		  SUNXI_FUNCTION(0x3, "ts"),		/* CLK */399		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 0)),	/* PE_EINT0 */400	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 1),401		  SUNXI_FUNCTION(0x0, "gpio_in"),402		  SUNXI_FUNCTION(0x1, "gpio_out"),403		  SUNXI_FUNCTION(0x2, "csi"),		/* MCLK */404		  SUNXI_FUNCTION(0x3, "ts"),		/* ERR */405		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 1)),	/* PE_EINT1 */406	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 2),407		  SUNXI_FUNCTION(0x0, "gpio_in"),408		  SUNXI_FUNCTION(0x1, "gpio_out"),409		  SUNXI_FUNCTION(0x2, "csi"),		/* HSYNC */410		  SUNXI_FUNCTION(0x3, "ts"),		/* SYNC */411		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 2)),	/* PE_EINT2 */412	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 3),413		  SUNXI_FUNCTION(0x0, "gpio_in"),414		  SUNXI_FUNCTION(0x1, "gpio_out"),415		  SUNXI_FUNCTION(0x2, "csi"),		/* VSYNC */416		  SUNXI_FUNCTION(0x3, "ts"),		/* DVLD */417		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 3)),	/* PE_EINT3 */418	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 4),419		  SUNXI_FUNCTION(0x0, "gpio_in"),420		  SUNXI_FUNCTION(0x1, "gpio_out"),421		  SUNXI_FUNCTION(0x2, "csi"),		/* D0 */422		  SUNXI_FUNCTION(0x3, "spi2"),		/* CS0 */423		  SUNXI_FUNCTION(0x4, "uart5"),		/* TX */424		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 4)),	/* PE_EINT4 */425	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 5),426		  SUNXI_FUNCTION(0x0, "gpio_in"),427		  SUNXI_FUNCTION(0x1, "gpio_out"),428		  SUNXI_FUNCTION(0x2, "csi"),		/* D1 */429		  SUNXI_FUNCTION(0x3, "spi2"),		/* CLK */430		  SUNXI_FUNCTION(0x4, "uart5"),		/* RX */431		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 5)),	/* PE_EINT5 */432	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 6),433		  SUNXI_FUNCTION(0x0, "gpio_in"),434		  SUNXI_FUNCTION(0x1, "gpio_out"),435		  SUNXI_FUNCTION(0x2, "csi"),		/* D2 */436		  SUNXI_FUNCTION(0x3, "spi2"),		/* MOSI */437		  SUNXI_FUNCTION(0x4, "uart5"),		/* RTS */438		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 6)),	/* PE_EINT6 */439	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 7),440		  SUNXI_FUNCTION(0x0, "gpio_in"),441		  SUNXI_FUNCTION(0x1, "gpio_out"),442		  SUNXI_FUNCTION(0x2, "csi"),		/* D3 */443		  SUNXI_FUNCTION(0x3, "spi2"),		/* MISO */444		  SUNXI_FUNCTION(0x4, "uart5"),		/* CTS */445		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 7)),	/* PE_EINT7 */446	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 8),447		  SUNXI_FUNCTION(0x0, "gpio_in"),448		  SUNXI_FUNCTION(0x1, "gpio_out"),449		  SUNXI_FUNCTION(0x2, "csi"),		/* D4 */450		  SUNXI_FUNCTION(0x3, "ts"),		/* D0 */451		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 8)),	/* PE_EINT8 */452	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 9),453		  SUNXI_FUNCTION(0x0, "gpio_in"),454		  SUNXI_FUNCTION(0x1, "gpio_out"),455		  SUNXI_FUNCTION(0x2, "csi"),		/* D5 */456		  SUNXI_FUNCTION(0x3, "ts"),		/* D1 */457		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 9)),	/* PE_EINT9 */458	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 10),459		  SUNXI_FUNCTION(0x0, "gpio_in"),460		  SUNXI_FUNCTION(0x1, "gpio_out"),461		  SUNXI_FUNCTION(0x2, "csi"),		/* D6 */462		  SUNXI_FUNCTION(0x3, "ts"),		/* D2 */463		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 10)),	/* PE_EINT10 */464	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 11),465		  SUNXI_FUNCTION(0x0, "gpio_in"),466		  SUNXI_FUNCTION(0x1, "gpio_out"),467		  SUNXI_FUNCTION(0x2, "csi"),		/* D7 */468		  SUNXI_FUNCTION(0x3, "ts"),		/* D3 */469		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 11)),	/* PE_EINT11 */470	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 12),471		  SUNXI_FUNCTION(0x0, "gpio_in"),472		  SUNXI_FUNCTION(0x1, "gpio_out"),473		  SUNXI_FUNCTION(0x2, "csi"),		/* D8 */474		  SUNXI_FUNCTION(0x3, "ts"),		/* D4 */475		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 12)),	/* PE_EINT12 */476	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 13),477		  SUNXI_FUNCTION(0x0, "gpio_in"),478		  SUNXI_FUNCTION(0x1, "gpio_out"),479		  SUNXI_FUNCTION(0x2, "csi"),		/* D9 */480		  SUNXI_FUNCTION(0x3, "ts"),		/* D5 */481		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 13)),	/* PE_EINT13 */482	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 14),483		  SUNXI_FUNCTION(0x0, "gpio_in"),484		  SUNXI_FUNCTION(0x1, "gpio_out"),485		  SUNXI_FUNCTION(0x2, "csi"),		/* D10 */486		  SUNXI_FUNCTION(0x3, "ts"),		/* D6 */487		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 14)),	/* PE_EINT14 */488	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 15),489		  SUNXI_FUNCTION(0x0, "gpio_in"),490		  SUNXI_FUNCTION(0x1, "gpio_out"),491		  SUNXI_FUNCTION(0x2, "csi"),		/* D11 */492		  SUNXI_FUNCTION(0x3, "ts"),		/* D7 */493		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 15)),	/* PE_EINT15 */494	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 16),495		  SUNXI_FUNCTION(0x0, "gpio_in"),496		  SUNXI_FUNCTION(0x1, "gpio_out"),497		  SUNXI_FUNCTION(0x2, "csi"),		/* SCK */498		  SUNXI_FUNCTION(0x3, "i2c4"),		/* SCK */499		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 16)),	/* PE_EINT16 */500	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 17),501		  SUNXI_FUNCTION(0x0, "gpio_in"),502		  SUNXI_FUNCTION(0x1, "gpio_out"),503		  SUNXI_FUNCTION(0x2, "csi"),		/* SDA */504		  SUNXI_FUNCTION(0x3, "i2c4"),		/* SDA */505		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 17)),	/* PE_EINT17 */506 507	/* Hole */508	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 0),509		  SUNXI_FUNCTION(0x0, "gpio_in"),510		  SUNXI_FUNCTION(0x1, "gpio_out"),511		  SUNXI_FUNCTION(0x2, "mmc0")),		/* D1 */512	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 1),513		  SUNXI_FUNCTION(0x0, "gpio_in"),514		  SUNXI_FUNCTION(0x1, "gpio_out"),515		  SUNXI_FUNCTION(0x2, "mmc0")),		/* D0 */516	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 2),517		  SUNXI_FUNCTION(0x0, "gpio_in"),518		  SUNXI_FUNCTION(0x1, "gpio_out"),519		  SUNXI_FUNCTION(0x2, "mmc0"),		/* CLK */520		  SUNXI_FUNCTION(0x4, "uart0")),	/* TX */521	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 3),522		  SUNXI_FUNCTION(0x0, "gpio_in"),523		  SUNXI_FUNCTION(0x1, "gpio_out"),524		  SUNXI_FUNCTION(0x2, "mmc0")),		/* CMD */525	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 4),526		  SUNXI_FUNCTION(0x0, "gpio_in"),527		  SUNXI_FUNCTION(0x1, "gpio_out"),528		  SUNXI_FUNCTION(0x2, "mmc0"),		/* D3 */529		  SUNXI_FUNCTION(0x4, "uart0")),	/* RX */530	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 5),531		  SUNXI_FUNCTION(0x0, "gpio_in"),532		  SUNXI_FUNCTION(0x1, "gpio_out"),533		  SUNXI_FUNCTION(0x2, "mmc0")),		/* D2 */534 535	/* Hole */536	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 0),537		  SUNXI_FUNCTION(0x0, "gpio_in"),538		  SUNXI_FUNCTION(0x1, "gpio_out"),539		  SUNXI_FUNCTION(0x2, "mmc1"),		/* CLK */540		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 0)),	/* PG_EINT0 */541	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 1),542		  SUNXI_FUNCTION(0x0, "gpio_in"),543		  SUNXI_FUNCTION(0x1, "gpio_out"),544		  SUNXI_FUNCTION(0x2, "mmc1"),		/* CMD */545		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 1)),	/* PG_EINT1 */546	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 2),547		  SUNXI_FUNCTION(0x0, "gpio_in"),548		  SUNXI_FUNCTION(0x1, "gpio_out"),549		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D0 */550		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 2)),	/* PG_EINT2 */551	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 3),552		  SUNXI_FUNCTION(0x0, "gpio_in"),553		  SUNXI_FUNCTION(0x1, "gpio_out"),554		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D1 */555		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 3)),	/* PG_EINT3 */556	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 4),557		  SUNXI_FUNCTION(0x0, "gpio_in"),558		  SUNXI_FUNCTION(0x1, "gpio_out"),559		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D2 */560		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 4)),	/* PG_EINT4 */561	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 5),562		  SUNXI_FUNCTION(0x0, "gpio_in"),563		  SUNXI_FUNCTION(0x1, "gpio_out"),564		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D3 */565		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 5)),	/* PG_EINT5 */566	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 6),567		  SUNXI_FUNCTION(0x0, "gpio_in"),568		  SUNXI_FUNCTION(0x1, "gpio_out"),569		  SUNXI_FUNCTION(0x2, "uart2"),		/* TX */570		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 6)),	/* PG_EINT6 */571	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 7),572		  SUNXI_FUNCTION(0x0, "gpio_in"),573		  SUNXI_FUNCTION(0x1, "gpio_out"),574		  SUNXI_FUNCTION(0x2, "uart2"),		/* RX */575		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 7)),	/* PG_EINT7 */576	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 8),577		  SUNXI_FUNCTION(0x0, "gpio_in"),578		  SUNXI_FUNCTION(0x1, "gpio_out"),579		  SUNXI_FUNCTION(0x2, "uart2"),		/* RTS */580		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 8)),	/* PG_EINT8 */581	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 9),582		  SUNXI_FUNCTION(0x0, "gpio_in"),583		  SUNXI_FUNCTION(0x1, "gpio_out"),584		  SUNXI_FUNCTION(0x2, "uart2"),		/* CTS */585		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 9)),	/* PG_EINT9 */586	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 10),587		  SUNXI_FUNCTION(0x0, "gpio_in"),588		  SUNXI_FUNCTION(0x1, "gpio_out"),589		  SUNXI_FUNCTION(0x2, "i2c3"),		/* SCK */590		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 10)),	/* PG_EINT10 */591	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 11),592		  SUNXI_FUNCTION(0x0, "gpio_in"),593		  SUNXI_FUNCTION(0x1, "gpio_out"),594		  SUNXI_FUNCTION(0x2, "i2c3"),		/* SDA */595		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 11)),	/* PG_EINT11 */596	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 12),597		  SUNXI_FUNCTION(0x0, "gpio_in"),598		  SUNXI_FUNCTION(0x1, "gpio_out"),599		  SUNXI_FUNCTION(0x2, "uart4"),		/* TX */600		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 12)),	/* PG_EINT12 */601	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 13),602		  SUNXI_FUNCTION(0x0, "gpio_in"),603		  SUNXI_FUNCTION(0x1, "gpio_out"),604		  SUNXI_FUNCTION(0x2, "uart4"),		/* RX */605		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 13)),	/* PG_EINT13 */606	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 14),607		  SUNXI_FUNCTION(0x0, "gpio_in"),608		  SUNXI_FUNCTION(0x1, "gpio_out"),609		  SUNXI_FUNCTION(0x2, "uart4"),		/* RTS */610		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 14)),	/* PG_EINT14 */611	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 15),612		  SUNXI_FUNCTION(0x0, "gpio_in"),613		  SUNXI_FUNCTION(0x1, "gpio_out"),614		  SUNXI_FUNCTION(0x2, "uart4"),		/* CTS */615		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 15)),	/* PG_EINT15 */616 617	/* Hole */618	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 0),619		  SUNXI_FUNCTION(0x0, "gpio_in"),620		  SUNXI_FUNCTION(0x1, "gpio_out"),621		  SUNXI_FUNCTION(0x2, "i2c0")),		/* SCK */622	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 1),623		  SUNXI_FUNCTION(0x0, "gpio_in"),624		  SUNXI_FUNCTION(0x1, "gpio_out"),625		  SUNXI_FUNCTION(0x2, "i2c0")),		/* SDA */626	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 2),627		  SUNXI_FUNCTION(0x0, "gpio_in"),628		  SUNXI_FUNCTION(0x1, "gpio_out"),629		  SUNXI_FUNCTION(0x2, "i2c1")),		/* SCK */630	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 3),631		  SUNXI_FUNCTION(0x0, "gpio_in"),632		  SUNXI_FUNCTION(0x1, "gpio_out"),633		  SUNXI_FUNCTION(0x2, "i2c1")),		/* SDA */634	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 4),635		  SUNXI_FUNCTION(0x0, "gpio_in"),636		  SUNXI_FUNCTION(0x1, "gpio_out"),637		  SUNXI_FUNCTION(0x2, "i2c2")),		/* SCK */638	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 5),639		  SUNXI_FUNCTION(0x0, "gpio_in"),640		  SUNXI_FUNCTION(0x1, "gpio_out"),641		  SUNXI_FUNCTION(0x2, "i2c2")),		/* SDA */642	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 6),643		  SUNXI_FUNCTION(0x0, "gpio_in"),644		  SUNXI_FUNCTION(0x1, "gpio_out"),645		  SUNXI_FUNCTION(0x2, "pwm0")),646 647	/* Hole */648	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 8),649		  SUNXI_FUNCTION(0x0, "gpio_in"),650		  SUNXI_FUNCTION(0x1, "gpio_out"),651		  SUNXI_FUNCTION(0x3, "pwm1"),		/* Positive */652		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 8)),	/* PH_EINT8 */653	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 9),654		  SUNXI_FUNCTION(0x0, "gpio_in"),655		  SUNXI_FUNCTION(0x1, "gpio_out"),656		  SUNXI_FUNCTION(0x3, "pwm1"),		/* Negative */657		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 9)),	/* PH_EINT9 */658	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 10),659		  SUNXI_FUNCTION(0x0, "gpio_in"),660		  SUNXI_FUNCTION(0x1, "gpio_out"),661		  SUNXI_FUNCTION(0x3, "pwm2"),		/* Positive */662		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 10)),	/* PH_EINT10 */663	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 11),664		  SUNXI_FUNCTION(0x0, "gpio_in"),665		  SUNXI_FUNCTION(0x1, "gpio_out"),666		  SUNXI_FUNCTION(0x3, "pwm2"),		/* Negative */667		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 11)),	/* PH_EINT12 */668	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 12),669		  SUNXI_FUNCTION(0x0, "gpio_in"),670		  SUNXI_FUNCTION(0x1, "gpio_out"),671		  SUNXI_FUNCTION(0x2, "uart0"),		/* TX */672		  SUNXI_FUNCTION(0x3, "spi3"),		/* CS2 */673		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 12)),	/* PH_EINT12 */674	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 13),675		  SUNXI_FUNCTION(0x0, "gpio_in"),676		  SUNXI_FUNCTION(0x1, "gpio_out"),677		  SUNXI_FUNCTION(0x2, "uart0"),		/* RX */678		  SUNXI_FUNCTION(0x3, "spi3"),		/* CS2 */679		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 13)),	/* PH_EINT13 */680	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 14),681		  SUNXI_FUNCTION(0x0, "gpio_in"),682		  SUNXI_FUNCTION(0x1, "gpio_out"),683		  SUNXI_FUNCTION(0x2, "spi3"),		/* CLK */684		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 14)),	/* PH_EINT14 */685	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 15),686		  SUNXI_FUNCTION(0x0, "gpio_in"),687		  SUNXI_FUNCTION(0x1, "gpio_out"),688		  SUNXI_FUNCTION(0x2, "spi3"),		/* MOSI */689		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 15)),	/* PH_EINT15 */690	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 16),691		  SUNXI_FUNCTION(0x0, "gpio_in"),692		  SUNXI_FUNCTION(0x1, "gpio_out"),693		  SUNXI_FUNCTION(0x2, "spi3"),		/* MISO */694		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 16)),	/* PH_EINT16 */695	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17),696		  SUNXI_FUNCTION(0x0, "gpio_in"),697		  SUNXI_FUNCTION(0x1, "gpio_out"),698		  SUNXI_FUNCTION(0x2, "spi3"),		/* CS0 */699		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 17)),	/* PH_EINT17 */700	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 18),701		  SUNXI_FUNCTION(0x0, "gpio_in"),702		  SUNXI_FUNCTION(0x1, "gpio_out"),703		  SUNXI_FUNCTION(0x2, "spi3"),		/* CS1 */704		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 18)),	/* PH_EINT18 */705	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 19),706		  SUNXI_FUNCTION(0x0, "gpio_in"),707		  SUNXI_FUNCTION(0x1, "gpio_out"),708		  SUNXI_FUNCTION(0x2, "hdmi")),		/* SCL */709	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 20),710		  SUNXI_FUNCTION(0x0, "gpio_in"),711		  SUNXI_FUNCTION(0x1, "gpio_out"),712		  SUNXI_FUNCTION(0x2, "hdmi")),		/* SDA */713	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 21),714		  SUNXI_FUNCTION(0x0, "gpio_in"),715		  SUNXI_FUNCTION(0x1, "gpio_out"),716		  SUNXI_FUNCTION(0x2, "hdmi")),		/* CEC */717};718 719static const struct sunxi_pinctrl_desc sun9i_a80_pinctrl_data = {720	.pins = sun9i_a80_pins,721	.npins = ARRAY_SIZE(sun9i_a80_pins),722	.irq_banks = 5,723	.disable_strict_mode = true,724	.io_bias_cfg_variant = BIAS_VOLTAGE_GRP_CONFIG,725};726 727static int sun9i_a80_pinctrl_probe(struct platform_device *pdev)728{729	return sunxi_pinctrl_init(pdev,730				  &sun9i_a80_pinctrl_data);731}732 733static const struct of_device_id sun9i_a80_pinctrl_match[] = {734	{ .compatible = "allwinner,sun9i-a80-pinctrl", },735	{}736};737 738static struct platform_driver sun9i_a80_pinctrl_driver = {739	.probe	= sun9i_a80_pinctrl_probe,740	.driver	= {741		.name		= "sun9i-a80-pinctrl",742		.of_match_table	= sun9i_a80_pinctrl_match,743	},744};745builtin_platform_driver(sun9i_a80_pinctrl_driver);746