1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __PINCTRL_MTK_MT6397_H
3#define __PINCTRL_MTK_MT6397_H
4
5#include <linux/pinctrl/pinctrl.h>
6#include "pinctrl-mtk-common.h"
7
8static const struct mtk_desc_pin mtk_pins_mt6397[] = {
9	MTK_PIN(PINCTRL_PIN(0, "INT"),
10		"N2", "mt6397",
11		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
12		MTK_FUNCTION(0, "GPIO0"),
13		MTK_FUNCTION(1, "INT")
14	),
15	MTK_PIN(PINCTRL_PIN(1, "SRCVOLTEN"),
16		"M4", "mt6397",
17		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
18		MTK_FUNCTION(0, "GPIO1"),
19		MTK_FUNCTION(1, "SRCVOLTEN"),
20		MTK_FUNCTION(6, "TEST_CK1")
21	),
22	MTK_PIN(PINCTRL_PIN(2, "SRCLKEN_PERI"),
23		"M2", "mt6397",
24		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
25		MTK_FUNCTION(0, "GPIO2"),
26		MTK_FUNCTION(1, "SRCLKEN_PERI"),
27		MTK_FUNCTION(6, "TEST_CK2")
28	),
29	MTK_PIN(PINCTRL_PIN(3, "RTC_32K1V8"),
30		"K3", "mt6397",
31		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
32		MTK_FUNCTION(0, "GPIO3"),
33		MTK_FUNCTION(1, "RTC_32K1V8"),
34		MTK_FUNCTION(6, "TEST_CK3")
35	),
36	MTK_PIN(PINCTRL_PIN(4, "WRAP_EVENT"),
37		"J2", "mt6397",
38		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
39		MTK_FUNCTION(0, "GPIO4"),
40		MTK_FUNCTION(1, "WRAP_EVENT")
41	),
42	MTK_PIN(PINCTRL_PIN(5, "SPI_CLK"),
43		"L4", "mt6397",
44		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
45		MTK_FUNCTION(0, "GPIO5"),
46		MTK_FUNCTION(1, "SPI_CLK")
47	),
48	MTK_PIN(PINCTRL_PIN(6, "SPI_CSN"),
49		"J3", "mt6397",
50		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
51		MTK_FUNCTION(0, "GPIO6"),
52		MTK_FUNCTION(1, "SPI_CSN")
53	),
54	MTK_PIN(PINCTRL_PIN(7, "SPI_MOSI"),
55		"J1", "mt6397",
56		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
57		MTK_FUNCTION(0, "GPIO7"),
58		MTK_FUNCTION(1, "SPI_MOSI")
59	),
60	MTK_PIN(PINCTRL_PIN(8, "SPI_MISO"),
61		"L3", "mt6397",
62		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
63		MTK_FUNCTION(0, "GPIO8"),
64		MTK_FUNCTION(1, "SPI_MISO")
65	),
66	MTK_PIN(PINCTRL_PIN(9, "AUD_CLK_MOSI"),
67		"H2", "mt6397",
68		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
69		MTK_FUNCTION(0, "GPIO9"),
70		MTK_FUNCTION(1, "AUD_CLK"),
71		MTK_FUNCTION(6, "TEST_IN0"),
72		MTK_FUNCTION(7, "TEST_OUT0")
73	),
74	MTK_PIN(PINCTRL_PIN(10, "AUD_DAT_MISO"),
75		"H3", "mt6397",
76		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
77		MTK_FUNCTION(0, "GPIO10"),
78		MTK_FUNCTION(1, "AUD_MISO"),
79		MTK_FUNCTION(6, "TEST_IN1"),
80		MTK_FUNCTION(7, "TEST_OUT1")
81	),
82	MTK_PIN(PINCTRL_PIN(11, "AUD_DAT_MOSI"),
83		"H1", "mt6397",
84		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
85		MTK_FUNCTION(0, "GPIO11"),
86		MTK_FUNCTION(1, "AUD_MOSI"),
87		MTK_FUNCTION(6, "TEST_IN2"),
88		MTK_FUNCTION(7, "TEST_OUT2")
89	),
90	MTK_PIN(PINCTRL_PIN(12, "COL0"),
91		"F3", "mt6397",
92		MTK_EINT_FUNCTION(2, 10),
93		MTK_FUNCTION(0, "GPIO12"),
94		MTK_FUNCTION(1, "COL0_USBDL"),
95		MTK_FUNCTION(2, "EINT10_1X"),
96		MTK_FUNCTION(3, "PWM1_3X"),
97		MTK_FUNCTION(6, "TEST_IN3"),
98		MTK_FUNCTION(7, "TEST_OUT3")
99	),
100	MTK_PIN(PINCTRL_PIN(13, "COL1"),
101		"G8", "mt6397",
102		MTK_EINT_FUNCTION(2, 11),
103		MTK_FUNCTION(0, "GPIO13"),
104		MTK_FUNCTION(1, "COL1"),
105		MTK_FUNCTION(2, "EINT11_1X"),
106		MTK_FUNCTION(3, "SCL0_2X"),
107		MTK_FUNCTION(6, "TEST_IN4"),
108		MTK_FUNCTION(7, "TEST_OUT4")
109	),
110	MTK_PIN(PINCTRL_PIN(14, "COL2"),
111		"H4", "mt6397",
112		MTK_EINT_FUNCTION(2, 12),
113		MTK_FUNCTION(0, "GPIO14"),
114		MTK_FUNCTION(1, "COL2"),
115		MTK_FUNCTION(2, "EINT12_1X"),
116		MTK_FUNCTION(3, "SDA0_2X"),
117		MTK_FUNCTION(6, "TEST_IN5"),
118		MTK_FUNCTION(7, "TEST_OUT5")
119	),
120	MTK_PIN(PINCTRL_PIN(15, "COL3"),
121		"G2", "mt6397",
122		MTK_EINT_FUNCTION(2, 13),
123		MTK_FUNCTION(0, "GPIO15"),
124		MTK_FUNCTION(1, "COL3"),
125		MTK_FUNCTION(2, "EINT13_1X"),
126		MTK_FUNCTION(3, "SCL1_2X"),
127		MTK_FUNCTION(6, "TEST_IN6"),
128		MTK_FUNCTION(7, "TEST_OUT6")
129	),
130	MTK_PIN(PINCTRL_PIN(16, "COL4"),
131		"F2", "mt6397",
132		MTK_EINT_FUNCTION(2, 14),
133		MTK_FUNCTION(0, "GPIO16"),
134		MTK_FUNCTION(1, "COL4"),
135		MTK_FUNCTION(2, "EINT14_1X"),
136		MTK_FUNCTION(3, "SDA1_2X"),
137		MTK_FUNCTION(6, "TEST_IN7"),
138		MTK_FUNCTION(7, "TEST_OUT7")
139	),
140	MTK_PIN(PINCTRL_PIN(17, "COL5"),
141		"G7", "mt6397",
142		MTK_EINT_FUNCTION(2, 15),
143		MTK_FUNCTION(0, "GPIO17"),
144		MTK_FUNCTION(1, "COL5"),
145		MTK_FUNCTION(2, "EINT15_1X"),
146		MTK_FUNCTION(3, "SCL2_2X"),
147		MTK_FUNCTION(6, "TEST_IN8"),
148		MTK_FUNCTION(7, "TEST_OUT8")
149	),
150	MTK_PIN(PINCTRL_PIN(18, "COL6"),
151		"J6", "mt6397",
152		MTK_EINT_FUNCTION(2, 16),
153		MTK_FUNCTION(0, "GPIO18"),
154		MTK_FUNCTION(1, "COL6"),
155		MTK_FUNCTION(2, "EINT16_1X"),
156		MTK_FUNCTION(3, "SDA2_2X"),
157		MTK_FUNCTION(4, "GPIO32K_0"),
158		MTK_FUNCTION(5, "GPIO26M_0"),
159		MTK_FUNCTION(6, "TEST_IN9"),
160		MTK_FUNCTION(7, "TEST_OUT9")
161	),
162	MTK_PIN(PINCTRL_PIN(19, "COL7"),
163		"J5", "mt6397",
164		MTK_EINT_FUNCTION(2, 17),
165		MTK_FUNCTION(0, "GPIO19"),
166		MTK_FUNCTION(1, "COL7"),
167		MTK_FUNCTION(2, "EINT17_1X"),
168		MTK_FUNCTION(3, "PWM2_3X"),
169		MTK_FUNCTION(4, "GPIO32K_1"),
170		MTK_FUNCTION(5, "GPIO26M_1"),
171		MTK_FUNCTION(6, "TEST_IN10"),
172		MTK_FUNCTION(7, "TEST_OUT10")
173	),
174	MTK_PIN(PINCTRL_PIN(20, "ROW0"),
175		"L7", "mt6397",
176		MTK_EINT_FUNCTION(2, 18),
177		MTK_FUNCTION(0, "GPIO20"),
178		MTK_FUNCTION(1, "ROW0"),
179		MTK_FUNCTION(2, "EINT18_1X"),
180		MTK_FUNCTION(3, "SCL0_3X"),
181		MTK_FUNCTION(6, "TEST_IN11"),
182		MTK_FUNCTION(7, "TEST_OUT11")
183	),
184	MTK_PIN(PINCTRL_PIN(21, "ROW1"),
185		"P1", "mt6397",
186		MTK_EINT_FUNCTION(2, 19),
187		MTK_FUNCTION(0, "GPIO21"),
188		MTK_FUNCTION(1, "ROW1"),
189		MTK_FUNCTION(2, "EINT19_1X"),
190		MTK_FUNCTION(3, "SDA0_3X"),
191		MTK_FUNCTION(4, "AUD_TSTCK"),
192		MTK_FUNCTION(6, "TEST_IN12"),
193		MTK_FUNCTION(7, "TEST_OUT12")
194	),
195	MTK_PIN(PINCTRL_PIN(22, "ROW2"),
196		"J8", "mt6397",
197		MTK_EINT_FUNCTION(2, 20),
198		MTK_FUNCTION(0, "GPIO22"),
199		MTK_FUNCTION(1, "ROW2"),
200		MTK_FUNCTION(2, "EINT20_1X"),
201		MTK_FUNCTION(3, "SCL1_3X"),
202		MTK_FUNCTION(6, "TEST_IN13"),
203		MTK_FUNCTION(7, "TEST_OUT13")
204	),
205	MTK_PIN(PINCTRL_PIN(23, "ROW3"),
206		"J7", "mt6397",
207		MTK_EINT_FUNCTION(2, 21),
208		MTK_FUNCTION(0, "GPIO23"),
209		MTK_FUNCTION(1, "ROW3"),
210		MTK_FUNCTION(2, "EINT21_1X"),
211		MTK_FUNCTION(3, "SDA1_3X"),
212		MTK_FUNCTION(6, "TEST_IN14"),
213		MTK_FUNCTION(7, "TEST_OUT14")
214	),
215	MTK_PIN(PINCTRL_PIN(24, "ROW4"),
216		"L5", "mt6397",
217		MTK_EINT_FUNCTION(2, 22),
218		MTK_FUNCTION(0, "GPIO24"),
219		MTK_FUNCTION(1, "ROW4"),
220		MTK_FUNCTION(2, "EINT22_1X"),
221		MTK_FUNCTION(3, "SCL2_3X"),
222		MTK_FUNCTION(6, "TEST_IN15"),
223		MTK_FUNCTION(7, "TEST_OUT15")
224	),
225	MTK_PIN(PINCTRL_PIN(25, "ROW5"),
226		"N6", "mt6397",
227		MTK_EINT_FUNCTION(2, 23),
228		MTK_FUNCTION(0, "GPIO25"),
229		MTK_FUNCTION(1, "ROW5"),
230		MTK_FUNCTION(2, "EINT23_1X"),
231		MTK_FUNCTION(3, "SDA2_3X"),
232		MTK_FUNCTION(6, "TEST_IN16"),
233		MTK_FUNCTION(7, "TEST_OUT16")
234	),
235	MTK_PIN(PINCTRL_PIN(26, "ROW6"),
236		"L6", "mt6397",
237		MTK_EINT_FUNCTION(2, 24),
238		MTK_FUNCTION(0, "GPIO26"),
239		MTK_FUNCTION(1, "ROW6"),
240		MTK_FUNCTION(2, "EINT24_1X"),
241		MTK_FUNCTION(3, "PWM3_3X"),
242		MTK_FUNCTION(4, "GPIO32K_2"),
243		MTK_FUNCTION(5, "GPIO26M_2"),
244		MTK_FUNCTION(6, "TEST_IN17"),
245		MTK_FUNCTION(7, "TEST_OUT17")
246	),
247	MTK_PIN(PINCTRL_PIN(27, "ROW7"),
248		"P2", "mt6397",
249		MTK_EINT_FUNCTION(2, 3),
250		MTK_FUNCTION(0, "GPIO27"),
251		MTK_FUNCTION(1, "ROW7"),
252		MTK_FUNCTION(2, "EINT3_1X"),
253		MTK_FUNCTION(3, "CBUS"),
254		MTK_FUNCTION(4, "GPIO32K_3"),
255		MTK_FUNCTION(5, "GPIO26M_3"),
256		MTK_FUNCTION(6, "TEST_IN18"),
257		MTK_FUNCTION(7, "TEST_OUT18")
258	),
259	MTK_PIN(PINCTRL_PIN(28, "PWM1(VMSEL1)"),
260		"J4", "mt6397",
261		MTK_EINT_FUNCTION(2, 4),
262		MTK_FUNCTION(0, "GPIO28"),
263		MTK_FUNCTION(1, "PWM1"),
264		MTK_FUNCTION(2, "EINT4_1X"),
265		MTK_FUNCTION(4, "GPIO32K_4"),
266		MTK_FUNCTION(5, "GPIO26M_4"),
267		MTK_FUNCTION(6, "TEST_IN19"),
268		MTK_FUNCTION(7, "TEST_OUT19")
269	),
270	MTK_PIN(PINCTRL_PIN(29, "PWM2(VMSEL2)"),
271		"N5", "mt6397",
272		MTK_EINT_FUNCTION(2, 5),
273		MTK_FUNCTION(0, "GPIO29"),
274		MTK_FUNCTION(1, "PWM2"),
275		MTK_FUNCTION(2, "EINT5_1X"),
276		MTK_FUNCTION(4, "GPIO32K_5"),
277		MTK_FUNCTION(5, "GPIO26M_5"),
278		MTK_FUNCTION(6, "TEST_IN20"),
279		MTK_FUNCTION(7, "TEST_OUT20")
280	),
281	MTK_PIN(PINCTRL_PIN(30, "PWM3(PWM)"),
282		"R3", "mt6397",
283		MTK_EINT_FUNCTION(2, 6),
284		MTK_FUNCTION(0, "GPIO30"),
285		MTK_FUNCTION(1, "PWM3"),
286		MTK_FUNCTION(2, "EINT6_1X"),
287		MTK_FUNCTION(3, "COL0"),
288		MTK_FUNCTION(4, "GPIO32K_6"),
289		MTK_FUNCTION(5, "GPIO26M_6"),
290		MTK_FUNCTION(6, "TEST_IN21"),
291		MTK_FUNCTION(7, "TEST_OUT21")
292	),
293	MTK_PIN(PINCTRL_PIN(31, "SCL0"),
294		"N1", "mt6397",
295		MTK_EINT_FUNCTION(2, 7),
296		MTK_FUNCTION(0, "GPIO31"),
297		MTK_FUNCTION(1, "SCL0"),
298		MTK_FUNCTION(2, "EINT7_1X"),
299		MTK_FUNCTION(3, "PWM1_2X"),
300		MTK_FUNCTION(6, "TEST_IN22"),
301		MTK_FUNCTION(7, "TEST_OUT22")
302	),
303	MTK_PIN(PINCTRL_PIN(32, "SDA0"),
304		"N3", "mt6397",
305		MTK_EINT_FUNCTION(2, 8),
306		MTK_FUNCTION(0, "GPIO32"),
307		MTK_FUNCTION(1, "SDA0"),
308		MTK_FUNCTION(2, "EINT8_1X"),
309		MTK_FUNCTION(6, "TEST_IN23"),
310		MTK_FUNCTION(7, "TEST_OUT23")
311	),
312	MTK_PIN(PINCTRL_PIN(33, "SCL1"),
313		"T1", "mt6397",
314		MTK_EINT_FUNCTION(2, 9),
315		MTK_FUNCTION(0, "GPIO33"),
316		MTK_FUNCTION(1, "SCL1"),
317		MTK_FUNCTION(2, "EINT9_1X"),
318		MTK_FUNCTION(3, "PWM2_2X"),
319		MTK_FUNCTION(6, "TEST_IN24"),
320		MTK_FUNCTION(7, "TEST_OUT24")
321	),
322	MTK_PIN(PINCTRL_PIN(34, "SDA1"),
323		"T2", "mt6397",
324		MTK_EINT_FUNCTION(2, 0),
325		MTK_FUNCTION(0, "GPIO34"),
326		MTK_FUNCTION(1, "SDA1"),
327		MTK_FUNCTION(2, "EINT0_1X"),
328		MTK_FUNCTION(6, "TEST_IN25"),
329		MTK_FUNCTION(7, "TEST_OUT25")
330	),
331	MTK_PIN(PINCTRL_PIN(35, "SCL2"),
332		"T3", "mt6397",
333		MTK_EINT_FUNCTION(2, 1),
334		MTK_FUNCTION(0, "GPIO35"),
335		MTK_FUNCTION(1, "SCL2"),
336		MTK_FUNCTION(2, "EINT1_1X"),
337		MTK_FUNCTION(3, "PWM3_2X"),
338		MTK_FUNCTION(6, "TEST_IN26"),
339		MTK_FUNCTION(7, "TEST_OUT26")
340	),
341	MTK_PIN(PINCTRL_PIN(36, "SDA2"),
342		"U2", "mt6397",
343		MTK_EINT_FUNCTION(2, 2),
344		MTK_FUNCTION(0, "GPIO36"),
345		MTK_FUNCTION(1, "SDA2"),
346		MTK_FUNCTION(2, "EINT2_1X"),
347		MTK_FUNCTION(6, "TEST_IN27"),
348		MTK_FUNCTION(7, "TEST_OUT27")
349	),
350	MTK_PIN(PINCTRL_PIN(37, "HDMISD"),
351		"H6", "mt6397",
352		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
353		MTK_FUNCTION(0, "GPIO37"),
354		MTK_FUNCTION(1, "HDMISD"),
355		MTK_FUNCTION(6, "TEST_IN28"),
356		MTK_FUNCTION(7, "TEST_OUT28")
357	),
358	MTK_PIN(PINCTRL_PIN(38, "HDMISCK"),
359		"H5", "mt6397",
360		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
361		MTK_FUNCTION(0, "GPIO38"),
362		MTK_FUNCTION(1, "HDMISCK"),
363		MTK_FUNCTION(6, "TEST_IN29"),
364		MTK_FUNCTION(7, "TEST_OUT29")
365	),
366	MTK_PIN(PINCTRL_PIN(39, "HTPLG"),
367		"H7", "mt6397",
368		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
369		MTK_FUNCTION(0, "GPIO39"),
370		MTK_FUNCTION(1, "HTPLG"),
371		MTK_FUNCTION(6, "TEST_IN30"),
372		MTK_FUNCTION(7, "TEST_OUT30")
373	),
374	MTK_PIN(PINCTRL_PIN(40, "CEC"),
375		"J9", "mt6397",
376		MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
377		MTK_FUNCTION(0, "GPIO40"),
378		MTK_FUNCTION(1, "CEC"),
379		MTK_FUNCTION(6, "TEST_IN31"),
380		MTK_FUNCTION(7, "TEST_OUT31")
381	),
382};
383
384#endif /* __PINCTRL_MTK_MT6397_H */
385