xref: /openbmc/linux/drivers/pinctrl/sunxi/pinctrl-sun50i-a100.c (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1473436e7SYangtao Li // SPDX-License-Identifier: GPL-2.0
2473436e7SYangtao Li /*
3473436e7SYangtao Li  * Copyright (c) 2020 Yangtao Li <frank@allwinnertech.com>
4473436e7SYangtao Li  *
5473436e7SYangtao Li  * Based on:
6473436e7SYangtao Li  * huangshuosheng <huangshuosheng@allwinnertech.com>
7473436e7SYangtao Li  */
8473436e7SYangtao Li 
9473436e7SYangtao Li #include <linux/module.h>
10473436e7SYangtao Li #include <linux/of.h>
11473436e7SYangtao Li #include <linux/pinctrl/pinctrl.h>
12473436e7SYangtao Li #include <linux/platform_device.h>
13473436e7SYangtao Li 
14473436e7SYangtao Li #include "pinctrl-sunxi.h"
15473436e7SYangtao Li 
16473436e7SYangtao Li static const struct sunxi_desc_pin a100_pins[] = {
17473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 0),
18473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
19473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
20473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart2"),		/* TX */
21473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi2"),		/* CS */
22473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag"),		/* MS */
23473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 0)),
24473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 1),
25473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
26473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
27473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart2"),		/* RX */
28473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi2"),		/* CLK */
29473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag"),		/* CK */
30473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 1)),
31473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 2),
32473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
33473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
34473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart2"),		/* RTS */
35473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi2"),		/* MOSI */
36473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag"),		/* DO */
37473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 2)),
38473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 3),
39473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
40473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
41473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart2"),		/* CTS */
42473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi2"),		/* MISO */
43473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag"),		/* DI */
44473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 3)),
45473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 4),
46473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
47473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
48473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c1"),		/* SCK */
49473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s0"),		/* MCLK */
50473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag_gpu"),	/* MS_GPU */
51473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 4)),
52473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 5),
53473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
54473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
55473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c1"),		/* SDA */
56473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s0"),		/* BCLK */
57473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag_gpu"),	/* CK_GPU */
58473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 5)),
59473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 6),
60473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
61473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
62473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s0"),		/* LRCK */
63473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag_gpu"),	/* DO_GPU */
64473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 6)),
65473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 7),
66473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
67473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
68473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "spdif"),		/* DIN */
69473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s0_dout0"),	/* DOUT0 */
70473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s0_din1"),	/* DIN1 */
71473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 7)),
72473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 8),
73473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
74473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
75473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "spdif"),		/* DOUT */
76473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s0_din0"),	/* DIN0 */
77473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s0_dout1"),	/* DOUT1 */
78473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 8)),
79473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 9),
80473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
81473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
82473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart0"),		/* TX */
83473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2c0"),		/* SCK */
84473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag_gpu"),	/* DI_GPU */
85473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 9)),
86473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 10),
87473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
88473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
89473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart0"),		/* RX */
90473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2c0"),		/* SDA */
91473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "pwm1"),
92473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 10)),
93473436e7SYangtao Li 	/* HOLE */
94473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 0),
95473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
96473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
97473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* WE */
98473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* DS */
99473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 0)),
100473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 1),
101473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
102473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
103473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* ALE */
104473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* RST */
105473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 1)),
106473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 2),
107473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
108473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
109473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* CLE */
110473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi0"),		/* MOSI */
111473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 2)),
112473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 3),
113473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
114473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
115473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* CE1 */
116473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi0"),		/* CS0 */
117473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 3)),
118473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 4),
119473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
120473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
121473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* CE0 */
122473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi0"),		/* MISO */
123473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 4)),
124473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 5),
125473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
126473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
127473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* RE */
128473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* CLK */
129473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 5)),
130473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 6),
131473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
132473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
133473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* RB0 */
134473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* CMD */
135473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 6)),
136473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 7),
137473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
138473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
139473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* RB1 */
140473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi0"),		/* CS1 */
141473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 7)),
142473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 8),
143473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
144473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
145473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ7 */
146473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D3 */
147473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 8)),
148473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 9),
149473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
150473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
151473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ6 */
152473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D4 */
153473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 9)),
154473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 10),
155473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
156473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
157473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ5 */
158473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D0 */
159473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 10)),
160473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 11),
161473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
162473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
163473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ4 */
164473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D5 */
165473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 11)),
166473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 12),
167473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
168473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
169473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQS */
170473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi0"),		/* CLK */
171473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 12)),
172473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 13),
173473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
174473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
175473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ3 */
176473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D1 */
177473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 13)),
178473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14),
179473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
180473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
181473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ2 */
182473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D6 */
183473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 14)),
184473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15),
185473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
186473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
187473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ1 */
188473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D2 */
189473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi0"),		/* WP */
190473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 15)),
191473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16),
192473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
193473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
194473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "nand0"),		/* DQ0 */
195473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "mmc2"),		/* D7 */
196473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi0"),		/* HOLD */
197473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 16)),
198473436e7SYangtao Li 	/* HOLE */
199473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 0),
200473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
201473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
202473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D2 */
203473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "lvds0"),		/* D0P */
204473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* DP0 */
205473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 0)),
206473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 1),
207473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
208473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
209473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D3 */
210473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "lvds0"),		/* D0N */
211473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* DM0 */
212473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 1)),
213473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 2),
214473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
215473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
216473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D4 */
217473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "lvds0"),		/* D1P */
218473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* DP1 */
219473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 2)),
220473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 3),
221473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
222473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
223473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D5 */
224473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "lvds0"),		/* D1N */
225473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* DM1 */
226473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 3)),
227473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 4),
228473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
229473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
230473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D6 */
231473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "lvds0"),		/* D2P */
232473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* CKP */
233473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 4)),
234473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 5),
235473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
236473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
237473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D7 */
238473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "lvds0"),		/* D2N */
239473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* CKM */
240473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 5)),
241473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 6),
242473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
243473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
244473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D10 */
245473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "lvds0"),		/* CKP */
246473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* DP2 */
247473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 6)),
248473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 7),
249473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
250473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
251473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D11 */
252473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "lvds0"),		/* CKN */
253473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* DM2 */
254473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 7)),
255473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 8),
256473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
257473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
258473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D12 */
259473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* DP3 */
260473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 8)),
261473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 9),
262473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
263473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
264473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D13 */
265473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "dsi0"),		/* DM3 */
266473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 9)),
267473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 10),
268473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
269473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
270473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D14 */
271473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi1"),		/* CS */
272473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 10)),
273473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 11),
274473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
275473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
276473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D15 */
277473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi1"),		/* CLK */
278473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 11)),
279473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 12),
280473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
281473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
282473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D18 */
283473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi1"),		/* MOSI */
284473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 12)),
285473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 13),
286473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
287473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
288473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D19 */
289473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spi1"),		/* MISO */
290473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 13)),
291473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 14),
292473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
293473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
294473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D20 */
295473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "uart3"),		/* TX */
296473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 14)),
297473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 15),
298473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
299473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
300473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D21 */
301473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "uart3"),		/* RX */
302473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 15)),
303473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 16),
304473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
305473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
306473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D22 */
307473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "uart3"),		/* RTS */
308473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 16)),
309473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 17),
310473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
311473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
312473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* D23 */
313473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "uart3"),		/* CTS */
314473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 17)),
315473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 18),
316473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
317473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
318473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* CLK */
319473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "uart4"),		/* TX */
320473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 18)),
321473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 19),
322473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
323473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
324473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* DE */
325473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "uart4"),		/* RX */
326473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 19)),
327473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 20),
328473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
329473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
330473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* HSYNC */
331473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "pwm2"),
332473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "uart4"),		/* RTS */
333473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 20)),
334473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 21),
335473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
336473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
337473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "lcd0"),		/* VSYNC */
338473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "pwm3"),
339473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "uart4"),		/* CTS */
340473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 21)),
341473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 22),
342473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
343473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
344473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "pwm1"),
345473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2c0"),		/* SCK */
346473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 22)),
347473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 23),
348473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
349473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
350473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "pwm0"),
351473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2c0"),		/* SDA */
352473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 23)),
353473436e7SYangtao Li 	/* HOLE */
354473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 0),
355473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
356473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
357473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "csi"),		/* MCLK */
358473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 0)),
359473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 1),
360473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
361473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
362473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c2"),		/* SCK */
363473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 1)),
364473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 2),
365473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
366473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
367473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c2"),		/* SDA */
368473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 2)),
369473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 3),
370473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
371473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
372473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c3"),		/* SCK */
373473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 3)),
374473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 4),
375473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
376473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
377473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c3"),		/* SDA */
378473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 4)),
379473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 5),
380473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
381473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
382473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "csi"),		/* MCLK */
383473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "pll"),		/* LOCK_DBG */
384473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2"),		/* MCLK */
385473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "ledc"),		/* LEDC */
386473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 5)),
387473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 6),
388473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
389473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
390473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "bist0"),		/* RESULT0 */
391473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2"),		/* BCLK */
392473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 6)),
393473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 7),
394473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
395473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
396473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "csi"),		/* SM_VS */
397473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "bist0"),		/* RESULT1 */
398473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2"),		/* LRCK */
399473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "tcon0"),		/* TRIG */
400473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3,	7)),
401473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 8),
402473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
403473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
404473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "bist0"),		/* RESULT2 */
405473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2"),		/* DOUT0 */
406473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 8)),
407473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 9),
408473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
409473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
410473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "bist0"),		/* RESULT3 */
411473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2"),		/* DIN0 */
412473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 3, 9)),
413473436e7SYangtao Li 	/* HOLE */
414473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 0),
415473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
416473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
417473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc0"),		/* D1 */
418473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "jtag"),		/* MS1 */
419473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag_gpu"),	/* MS_GPU */
420473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 0)),
421473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 1),
422473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
423473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
424473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc0"),		/* D0 */
425473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "jtag"),		/* DI1 */
426473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag_gpu"),	/* DI_GPU */
427473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 1)),
428473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 2),
429473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
430473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
431473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc0"),		/* CLK */
432473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "uart0"),		/* TX */
433473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 2)),
434473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 3),
435473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
436473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
437473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc0"),		/* CMD */
438473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "jtag"),		/* DO */
439473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag_gpu"),	/* DO_GPU */
440473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 3)),
441473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 4),
442473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
443473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
444473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc0"),		/* D3 */
445473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "uart0"),		/* RX */
446473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 4)),
447473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 5),
448473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
449473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
450473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc0"),		/* D2 */
451473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "jtag"),		/* CK */
452473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "jtag_gpu"),	/* CK_GPU */
453473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 5)),
454473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 6),
455473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
456473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
457473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 4, 6)),
458473436e7SYangtao Li 	/* HOLE */
459473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 0),
460473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
461473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
462473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc1"),		/* CLK */
463473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 0)),
464473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 1),
465473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
466473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
467473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc1"),		/* CMD */
468473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 1)),
469473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 2),
470473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
471473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
472473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D0 */
473473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 2)),
474473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 3),
475473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
476473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
477473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D1 */
478473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 3)),
479473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 4),
480473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
481473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
482473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D2 */
483473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 4)),
484473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 5),
485473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
486473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
487473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "mmc1"),		/* D3 */
488473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 5)),
489473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 6),
490473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
491473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
492473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart1"),		/* TX */
493473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 6)),
494473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 7),
495473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
496473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
497473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart1"),		/* RX */
498473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 7)),
499473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 8),
500473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
501473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
502473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart1"),		/* RTS */
503473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 8)),
504473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 9),
505473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
506473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
507473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart1"),		/* CTS */
508473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s1"),		/* MCLK */
509473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 9)),
510473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 10),
511473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
512473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
513473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s1"),		/* BCLK */
514473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 10)),
515473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 11),
516473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
517473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
518473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s1"),		/* LRCK */
519473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 11)),
520473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 12),
521473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
522473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
523473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s1_dout0"),	/* DOUT0 */
524473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s1_din1"),	/* DIN1 */
525473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 12)),
526473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 13),
527473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
528473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
529473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s1_din0"),	/* DIN0 */
530473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s1_dout1"),	/* DOUT1 */
531473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 5, 13)),
532473436e7SYangtao Li 	/* HOLE */
533473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 0),
534473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
535473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
536473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c0"),		/* SCK */
537473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* RXD1 */
538473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 0)),
539473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 1),
540473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
541473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
542473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c0"),		/* SDA */
543473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* RXD0 */
544473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 1)),
545473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 2),
546473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
547473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
548473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c1"),		/* SCK */
549473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* RXCTL */
550473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 2)),
551473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 3),
552473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
553473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
554473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "i2c1"),		/* SDA */
555473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "cir0"),		/* OUT */
556473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* CLKIN */
557473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 3)),
558473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 4),
559473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
560473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
561473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart3"),		/* TX */
562473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi1"),		/* CS */
563473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* TXD1 */
564473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 4)),
565473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 5),
566473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
567473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
568473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart3"),		/* RX */
569473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi1"),		/* CLK */
570473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "ledc"),
571473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* TXD0 */
572473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 5)),
573473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 6),
574473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
575473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
576473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart3"),		/* RTS */
577473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi1"),		/* MOSI */
578473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* TXCK */
579473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 6)),
580473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 7),
581473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
582473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
583473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "uart3"),		/* CTS */
584473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi1"),		/* MISO */
585473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "spdif"),		/* OUT */
586473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* TXCTL */
587473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 7)),
588473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 8),
589473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
590473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
591473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "dmic"),		/* CLK */
592473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi2"),		/* CS */
593473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2"),		/* MCLK */
594473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "i2s2_din2"),	/* DIN2 */
595473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 8)),
596473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 9),
597473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
598473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
599473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "dmic"),		/* DATA0 */
600473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi2"),		/* CLK */
601473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2"),		/* BCLK */
602473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* MDC */
603473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 9)),
604473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 10),
605473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
606473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
607473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "dmic"),		/* DATA1 */
608473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi2"),		/* MOSI */
609473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2"),		/* LRCK */
610473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* MDIO */
611473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 10)),
612473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 11),
613473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
614473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
615473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "dmic"),		/* DATA2 */
616473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "spi2"),		/* MISO */
617473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2_dout0"),	/* DOUT0 */
618473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "i2s2_din1"),	/* DIN1 */
619473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 11)),
620473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 12),
621473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
622473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
623473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "dmic"),		/* DATA3 */
624473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2c3"),		/* SCK */
625473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s2_din0"),	/* DIN0 */
626473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "i2s2_dout1"),	/* DOUT1 */
627473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 12)),
628473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 13),
629473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
630473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
631473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2c3"),		/* SCK */
632473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s3"),		/* MCLK */
633473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* EPHY */
634473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 13)),
635473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 14),
636473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
637473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
638473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s3"),		/* BCLK */
639473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* RXD3 */
640473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 14)),
641473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 15),
642473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
643473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
644473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s3"),		/* LRCK */
645473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* RXD2 */
646473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 15)),
647473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 16),
648473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
649473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
650473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s3_dout0"),	/* DOUT0 */
651473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s3_din1"),	/* DIN1 */
652473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* RXCK */
653473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 16)),
654473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17),
655473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
656473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
657473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s3_dout1"),	/* DOUT1 */
658473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s3_din0"),	/* DIN0 */
659473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* TXD3 */
660473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 17)),
661473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 18),
662473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
663473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
664473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "cir0"),		/* OUT */
665473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s3_dout2"),	/* DOUT2 */
666473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s3_din2"),	/* DIN2 */
667473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "emac0"),		/* TXD2 */
668473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 18)),
669473436e7SYangtao Li 	SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 19),
670473436e7SYangtao Li 		  SUNXI_FUNCTION(0x0, "gpio_in"),
671473436e7SYangtao Li 		  SUNXI_FUNCTION(0x1, "gpio_out"),
672473436e7SYangtao Li 		  SUNXI_FUNCTION(0x2, "cir0"),		/* IN */
673473436e7SYangtao Li 		  SUNXI_FUNCTION(0x3, "i2s3_dout3"),	/* DOUT3 */
674473436e7SYangtao Li 		  SUNXI_FUNCTION(0x4, "i2s3_din3"),	/* DIN3 */
675473436e7SYangtao Li 		  SUNXI_FUNCTION(0x5, "ledc"),
676473436e7SYangtao Li 		  SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 19)),
677473436e7SYangtao Li };
678473436e7SYangtao Li 
6796de7ed69SYangtao Li static const unsigned int a100_irq_bank_map[] = { 1, 2, 3, 4, 5, 6, 7};
680473436e7SYangtao Li 
681473436e7SYangtao Li static const struct sunxi_pinctrl_desc a100_pinctrl_data = {
682473436e7SYangtao Li 	.pins = a100_pins,
683473436e7SYangtao Li 	.npins = ARRAY_SIZE(a100_pins),
684473436e7SYangtao Li 	.irq_banks = 7,
685473436e7SYangtao Li 	.irq_bank_map = a100_irq_bank_map,
686*88df36f2SSamuel Holland 	.io_bias_cfg_variant = BIAS_VOLTAGE_PIO_POW_MODE_CTL,
687473436e7SYangtao Li };
688473436e7SYangtao Li 
a100_pinctrl_probe(struct platform_device * pdev)689473436e7SYangtao Li static int a100_pinctrl_probe(struct platform_device *pdev)
690473436e7SYangtao Li {
691473436e7SYangtao Li 	return sunxi_pinctrl_init(pdev, &a100_pinctrl_data);
692473436e7SYangtao Li }
693473436e7SYangtao Li 
694473436e7SYangtao Li static const struct of_device_id a100_pinctrl_match[] = {
695473436e7SYangtao Li 	{ .compatible = "allwinner,sun50i-a100-pinctrl", },
696473436e7SYangtao Li 	{}
697473436e7SYangtao Li };
698473436e7SYangtao Li MODULE_DEVICE_TABLE(of, a100_pinctrl_match);
699473436e7SYangtao Li 
700473436e7SYangtao Li static struct platform_driver a100_pinctrl_driver = {
701473436e7SYangtao Li 	.probe	= a100_pinctrl_probe,
702473436e7SYangtao Li 	.driver	= {
703473436e7SYangtao Li 		.name		= "sun50i-a100-pinctrl",
704473436e7SYangtao Li 		.of_match_table	= a100_pinctrl_match,
705473436e7SYangtao Li 	},
706473436e7SYangtao Li };
707473436e7SYangtao Li module_platform_driver(a100_pinctrl_driver);
708