aa0f4d30ceadebc91ba1bc4adf650228800661a8
[openwrt.git] / target / linux / mediatek / patches / 0053-pinctrl-mediatek-Add-Pinctrl-GPIO-driver-for-mt6397.patch
1 From 3031cefd8cd323e04be11a8058616d8cf21c1313 Mon Sep 17 00:00:00 2001
2 From: Hongzhou Yang <hongzhou.yang@mediatek.com>
3 Date: Mon, 18 May 2015 23:11:17 -0700
4 Subject: [PATCH 53/76] pinctrl: mediatek: Add Pinctrl/GPIO driver for mt6397.
5
6 Add mt6397 support using mediatek common pinctrl driver.
7
8 mt6397 is a PMIC, and pinctrl/GPIO is part of 6397 chip.
9 Pinctrl/GPIO driver should obtain regmap from PMIC,
10 so adding this support to common code.
11
12 Also, mt6397 is no need to support interrupt controller,
13 so changing common code to skip it.
14
15 Signed-off-by: Hongzhou Yang <hongzhou.yang@mediatek.com>
16 ---
17  drivers/pinctrl/mediatek/Kconfig              |    6 +
18  drivers/pinctrl/mediatek/Makefile             |    1 +
19  drivers/pinctrl/mediatek/pinctrl-mt6397.c     |   78 +++++
20  drivers/pinctrl/mediatek/pinctrl-mt8135.c     |    2 +-
21  drivers/pinctrl/mediatek/pinctrl-mt8173.c     |    2 +-
22  drivers/pinctrl/mediatek/pinctrl-mtk-common.c |   13 +-
23  drivers/pinctrl/mediatek/pinctrl-mtk-common.h |    3 +-
24  drivers/pinctrl/mediatek/pinctrl-mtk-mt6397.h |  424 +++++++++++++++++++++++++
25  8 files changed, 524 insertions(+), 5 deletions(-)
26  create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt6397.c
27  create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-mt6397.h
28
29 --- a/drivers/pinctrl/mediatek/Kconfig
30 +++ b/drivers/pinctrl/mediatek/Kconfig
31 @@ -23,4 +23,10 @@ config PINCTRL_MT8173
32         default ARM64 && ARCH_MEDIATEK
33         select PINCTRL_MTK_COMMON
34  
35 +# For PMIC
36 +config PINCTRL_MT6397
37 +       bool "Mediatek MT6397 pin control" if COMPILE_TEST && !MFD_MT6397
38 +       default MFD_MT6397
39 +       select PINCTRL_MTK_COMMON
40 +
41  endif
42 --- a/drivers/pinctrl/mediatek/Makefile
43 +++ b/drivers/pinctrl/mediatek/Makefile
44 @@ -4,3 +4,4 @@ obj-$(CONFIG_PINCTRL_MTK_COMMON)        += pinc
45  # SoC Drivers
46  obj-$(CONFIG_PINCTRL_MT8135)           += pinctrl-mt8135.o
47  obj-$(CONFIG_PINCTRL_MT8173)           += pinctrl-mt8173.o
48 +obj-$(CONFIG_PINCTRL_MT6397)           += pinctrl-mt6397.o
49 --- /dev/null
50 +++ b/drivers/pinctrl/mediatek/pinctrl-mt6397.c
51 @@ -0,0 +1,78 @@
52 +/*
53 + * Copyright (c) 2015 MediaTek Inc.
54 + * Author: Hongzhou.Yang <hongzhou.yang@mediatek.com>
55 + *
56 + * This program is free software; you can redistribute it and/or modify
57 + * it under the terms of the GNU General Public License version 2 as
58 + * published by the Free Software Foundation.
59 + *
60 + * This program is distributed in the hope that it will be useful,
61 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
62 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
63 + * GNU General Public License for more details.
64 + */
65 +
66 +#include <linux/module.h>
67 +#include <linux/platform_device.h>
68 +#include <linux/of.h>
69 +#include <linux/of_device.h>
70 +#include <linux/pinctrl/pinctrl.h>
71 +#include <linux/pinctrl/pinconf-generic.h>
72 +#include <linux/mfd/mt6397/core.h>
73 +
74 +#include "pinctrl-mtk-common.h"
75 +#include "pinctrl-mtk-mt6397.h"
76 +
77 +#define MT6397_PIN_REG_BASE  0xc000
78 +
79 +static const struct mtk_pinctrl_devdata mt6397_pinctrl_data = {
80 +       .pins = mtk_pins_mt6397,
81 +       .npins = ARRAY_SIZE(mtk_pins_mt6397),
82 +       .dir_offset = (MT6397_PIN_REG_BASE + 0x000),
83 +       .ies_offset = MTK_PINCTRL_NOT_SUPPORT,
84 +       .smt_offset = MTK_PINCTRL_NOT_SUPPORT,
85 +       .pullen_offset = (MT6397_PIN_REG_BASE + 0x020),
86 +       .pullsel_offset = (MT6397_PIN_REG_BASE + 0x040),
87 +       .dout_offset = (MT6397_PIN_REG_BASE + 0x080),
88 +       .din_offset = (MT6397_PIN_REG_BASE + 0x0a0),
89 +       .pinmux_offset = (MT6397_PIN_REG_BASE + 0x0c0),
90 +       .type1_start = 41,
91 +       .type1_end = 41,
92 +       .port_shf = 3,
93 +       .port_mask = 0x3,
94 +       .port_align = 2,
95 +};
96 +
97 +static int mt6397_pinctrl_probe(struct platform_device *pdev)
98 +{
99 +       struct mt6397_chip *mt6397;
100 +
101 +       mt6397 = dev_get_drvdata(pdev->dev.parent);
102 +       return mtk_pctrl_init(pdev, &mt6397_pinctrl_data, mt6397->regmap);
103 +}
104 +
105 +static const struct of_device_id mt6397_pctrl_match[] = {
106 +       { .compatible = "mediatek,mt6397-pinctrl", },
107 +       { }
108 +};
109 +MODULE_DEVICE_TABLE(of, mt6397_pctrl_match);
110 +
111 +static struct platform_driver mtk_pinctrl_driver = {
112 +       .probe = mt6397_pinctrl_probe,
113 +       .driver = {
114 +               .name = "mediatek-mt6397-pinctrl",
115 +               .owner = THIS_MODULE,
116 +               .of_match_table = mt6397_pctrl_match,
117 +       },
118 +};
119 +
120 +static int __init mtk_pinctrl_init(void)
121 +{
122 +       return platform_driver_register(&mtk_pinctrl_driver);
123 +}
124 +
125 +module_init(mtk_pinctrl_init);
126 +
127 +MODULE_LICENSE("GPL v2");
128 +MODULE_DESCRIPTION("MediaTek MT6397 Pinctrl Driver");
129 +MODULE_AUTHOR("Hongzhou Yang <hongzhou.yang@mediatek.com>");
130 --- a/drivers/pinctrl/mediatek/pinctrl-mt8135.c
131 +++ b/drivers/pinctrl/mediatek/pinctrl-mt8135.c
132 @@ -342,7 +342,7 @@ static const struct mtk_pinctrl_devdata
133  
134  static int mt8135_pinctrl_probe(struct platform_device *pdev)
135  {
136 -       return mtk_pctrl_init(pdev, &mt8135_pinctrl_data);
137 +       return mtk_pctrl_init(pdev, &mt8135_pinctrl_data, NULL);
138  }
139  
140  static const struct of_device_id mt8135_pctrl_match[] = {
141 --- a/drivers/pinctrl/mediatek/pinctrl-mt8173.c
142 +++ b/drivers/pinctrl/mediatek/pinctrl-mt8173.c
143 @@ -361,7 +361,7 @@ static const struct mtk_pinctrl_devdata
144  
145  static int mt8173_pinctrl_probe(struct platform_device *pdev)
146  {
147 -       return mtk_pctrl_init(pdev, &mt8173_pinctrl_data);
148 +       return mtk_pctrl_init(pdev, &mt8173_pinctrl_data, NULL);
149  }
150  
151  static const struct of_device_id mt8173_pctrl_match[] = {
152 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
153 +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
154 @@ -1209,7 +1209,8 @@ static struct pinctrl_desc mtk_pctrl_des
155  };
156  
157  int mtk_pctrl_init(struct platform_device *pdev,
158 -               const struct mtk_pinctrl_devdata *data)
159 +               const struct mtk_pinctrl_devdata *data,
160 +               struct regmap *regmap)
161  {
162         struct pinctrl_pin_desc *pins;
163         struct mtk_pinctrl *pctl;
164 @@ -1235,6 +1236,11 @@ int mtk_pctrl_init(struct platform_devic
165                 pctl->regmap1 = syscon_node_to_regmap(node);
166                 if (IS_ERR(pctl->regmap1))
167                         return PTR_ERR(pctl->regmap1);
168 +       } else if (regmap) {
169 +               pctl->regmap1  = regmap;
170 +       } else {
171 +               dev_err(&pdev->dev, "Pinctrl node has not register regmap.\n");
172 +               return -EINVAL;
173         }
174  
175         /* Only 8135 has two base addr, other SoCs have only one. */
176 @@ -1280,7 +1286,7 @@ int mtk_pctrl_init(struct platform_devic
177         pctl->chip->ngpio = pctl->devdata->npins;
178         pctl->chip->label = dev_name(&pdev->dev);
179         pctl->chip->dev = &pdev->dev;
180 -       pctl->chip->base = 0;
181 +       pctl->chip->base = -1;
182  
183         ret = gpiochip_add(pctl->chip);
184         if (ret) {
185 @@ -1296,6 +1302,9 @@ int mtk_pctrl_init(struct platform_devic
186                 goto chip_error;
187         }
188  
189 +       if (of_find_property(np, "interrupt-controller", NULL))
190 +               return 0;
191 +
192         /* Get EINT register base from dts. */
193         res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
194         if (!res) {
195 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.h
196 +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.h
197 @@ -269,7 +269,8 @@ struct mtk_pinctrl {
198  };
199  
200  int mtk_pctrl_init(struct platform_device *pdev,
201 -               const struct mtk_pinctrl_devdata *data);
202 +               const struct mtk_pinctrl_devdata *data,
203 +               struct regmap *regmap);
204  
205  int mtk_pctrl_spec_pull_set_samereg(struct regmap *regmap,
206                 const struct mtk_pin_spec_pupd_set_samereg *pupd_infos,
207 --- /dev/null
208 +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-mt6397.h
209 @@ -0,0 +1,424 @@
210 +#ifndef __PINCTRL_MTK_MT6397_H
211 +#define __PINCTRL_MTK_MT6397_H
212 +
213 +#include <linux/pinctrl/pinctrl.h>
214 +#include "pinctrl-mtk-common.h"
215 +
216 +static const struct mtk_desc_pin mtk_pins_mt6397[] = {
217 +       MTK_PIN(
218 +               PINCTRL_PIN(0, "INT"),
219 +               "N2", "mt6397",
220 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
221 +               MTK_FUNCTION(0, "GPIO0"),
222 +               MTK_FUNCTION(1, "INT")
223 +       ),
224 +       MTK_PIN(
225 +               PINCTRL_PIN(1, "SRCVOLTEN"),
226 +               "M4", "mt6397",
227 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
228 +               MTK_FUNCTION(0, "GPIO1"),
229 +               MTK_FUNCTION(1, "SRCVOLTEN"),
230 +               MTK_FUNCTION(6, "TEST_CK1")
231 +       ),
232 +       MTK_PIN(
233 +               PINCTRL_PIN(2, "SRCLKEN_PERI"),
234 +               "M2", "mt6397",
235 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
236 +               MTK_FUNCTION(0, "GPIO2"),
237 +               MTK_FUNCTION(1, "SRCLKEN_PERI"),
238 +               MTK_FUNCTION(6, "TEST_CK2")
239 +       ),
240 +       MTK_PIN(
241 +               PINCTRL_PIN(3, "RTC_32K1V8"),
242 +               "K3", "mt6397",
243 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
244 +               MTK_FUNCTION(0, "GPIO3"),
245 +               MTK_FUNCTION(1, "RTC_32K1V8"),
246 +               MTK_FUNCTION(6, "TEST_CK3")
247 +       ),
248 +       MTK_PIN(
249 +               PINCTRL_PIN(4, "WRAP_EVENT"),
250 +               "J2", "mt6397",
251 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
252 +               MTK_FUNCTION(0, "GPIO4"),
253 +               MTK_FUNCTION(1, "WRAP_EVENT")
254 +       ),
255 +       MTK_PIN(
256 +               PINCTRL_PIN(5, "SPI_CLK"),
257 +               "L4", "mt6397",
258 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
259 +               MTK_FUNCTION(0, "GPIO5"),
260 +               MTK_FUNCTION(1, "SPI_CLK")
261 +       ),
262 +       MTK_PIN(
263 +               PINCTRL_PIN(6, "SPI_CSN"),
264 +               "J3", "mt6397",
265 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
266 +               MTK_FUNCTION(0, "GPIO6"),
267 +               MTK_FUNCTION(1, "SPI_CSN")
268 +       ),
269 +       MTK_PIN(
270 +               PINCTRL_PIN(7, "SPI_MOSI"),
271 +               "J1", "mt6397",
272 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
273 +               MTK_FUNCTION(0, "GPIO7"),
274 +               MTK_FUNCTION(1, "SPI_MOSI")
275 +       ),
276 +       MTK_PIN(
277 +               PINCTRL_PIN(8, "SPI_MISO"),
278 +               "L3", "mt6397",
279 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
280 +               MTK_FUNCTION(0, "GPIO8"),
281 +               MTK_FUNCTION(1, "SPI_MISO")
282 +       ),
283 +       MTK_PIN(
284 +               PINCTRL_PIN(9, "AUD_CLK_MOSI"),
285 +               "H2", "mt6397",
286 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
287 +               MTK_FUNCTION(0, "GPIO9"),
288 +               MTK_FUNCTION(1, "AUD_CLK"),
289 +               MTK_FUNCTION(6, "TEST_IN0"),
290 +               MTK_FUNCTION(7, "TEST_OUT0")
291 +       ),
292 +       MTK_PIN(
293 +               PINCTRL_PIN(10, "AUD_DAT_MISO"),
294 +               "H3", "mt6397",
295 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
296 +               MTK_FUNCTION(0, "GPIO10"),
297 +               MTK_FUNCTION(1, "AUD_MISO"),
298 +               MTK_FUNCTION(6, "TEST_IN1"),
299 +               MTK_FUNCTION(7, "TEST_OUT1")
300 +       ),
301 +       MTK_PIN(
302 +               PINCTRL_PIN(11, "AUD_DAT_MOSI"),
303 +               "H1", "mt6397",
304 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
305 +               MTK_FUNCTION(0, "GPIO11"),
306 +               MTK_FUNCTION(1, "AUD_MOSI"),
307 +               MTK_FUNCTION(6, "TEST_IN2"),
308 +               MTK_FUNCTION(7, "TEST_OUT2")
309 +       ),
310 +       MTK_PIN(
311 +               PINCTRL_PIN(12, "COL0"),
312 +               "F3", "mt6397",
313 +               MTK_EINT_FUNCTION(2, 10),
314 +               MTK_FUNCTION(0, "GPIO12"),
315 +               MTK_FUNCTION(1, "COL0_USBDL"),
316 +               MTK_FUNCTION(2, "EINT10_1X"),
317 +               MTK_FUNCTION(3, "PWM1_3X"),
318 +               MTK_FUNCTION(6, "TEST_IN3"),
319 +               MTK_FUNCTION(7, "TEST_OUT3")
320 +       ),
321 +       MTK_PIN(
322 +               PINCTRL_PIN(13, "COL1"),
323 +               "G8", "mt6397",
324 +               MTK_EINT_FUNCTION(2, 11),
325 +               MTK_FUNCTION(0, "GPIO13"),
326 +               MTK_FUNCTION(1, "COL1"),
327 +               MTK_FUNCTION(2, "EINT11_1X"),
328 +               MTK_FUNCTION(3, "SCL0_2X"),
329 +               MTK_FUNCTION(6, "TEST_IN4"),
330 +               MTK_FUNCTION(7, "TEST_OUT4")
331 +       ),
332 +       MTK_PIN(
333 +               PINCTRL_PIN(14, "COL2"),
334 +               "H4", "mt6397",
335 +               MTK_EINT_FUNCTION(2, 12),
336 +               MTK_FUNCTION(0, "GPIO14"),
337 +               MTK_FUNCTION(1, "COL2"),
338 +               MTK_FUNCTION(2, "EINT12_1X"),
339 +               MTK_FUNCTION(3, "SDA0_2X"),
340 +               MTK_FUNCTION(6, "TEST_IN5"),
341 +               MTK_FUNCTION(7, "TEST_OUT5")
342 +       ),
343 +       MTK_PIN(
344 +               PINCTRL_PIN(15, "COL3"),
345 +               "G2", "mt6397",
346 +               MTK_EINT_FUNCTION(2, 13),
347 +               MTK_FUNCTION(0, "GPIO15"),
348 +               MTK_FUNCTION(1, "COL3"),
349 +               MTK_FUNCTION(2, "EINT13_1X"),
350 +               MTK_FUNCTION(3, "SCL1_2X"),
351 +               MTK_FUNCTION(6, "TEST_IN6"),
352 +               MTK_FUNCTION(7, "TEST_OUT6")
353 +       ),
354 +       MTK_PIN(
355 +               PINCTRL_PIN(16, "COL4"),
356 +               "F2", "mt6397",
357 +               MTK_EINT_FUNCTION(2, 14),
358 +               MTK_FUNCTION(0, "GPIO16"),
359 +               MTK_FUNCTION(1, "COL4"),
360 +               MTK_FUNCTION(2, "EINT14_1X"),
361 +               MTK_FUNCTION(3, "SDA1_2X"),
362 +               MTK_FUNCTION(6, "TEST_IN7"),
363 +               MTK_FUNCTION(7, "TEST_OUT7")
364 +       ),
365 +       MTK_PIN(
366 +               PINCTRL_PIN(17, "COL5"),
367 +               "G7", "mt6397",
368 +               MTK_EINT_FUNCTION(2, 15),
369 +               MTK_FUNCTION(0, "GPIO17"),
370 +               MTK_FUNCTION(1, "COL5"),
371 +               MTK_FUNCTION(2, "EINT15_1X"),
372 +               MTK_FUNCTION(3, "SCL2_2X"),
373 +               MTK_FUNCTION(6, "TEST_IN8"),
374 +               MTK_FUNCTION(7, "TEST_OUT8")
375 +       ),
376 +       MTK_PIN(
377 +               PINCTRL_PIN(18, "COL6"),
378 +               "J6", "mt6397",
379 +               MTK_EINT_FUNCTION(2, 16),
380 +               MTK_FUNCTION(0, "GPIO18"),
381 +               MTK_FUNCTION(1, "COL6"),
382 +               MTK_FUNCTION(2, "EINT16_1X"),
383 +               MTK_FUNCTION(3, "SDA2_2X"),
384 +               MTK_FUNCTION(4, "GPIO32K_0"),
385 +               MTK_FUNCTION(5, "GPIO26M_0"),
386 +               MTK_FUNCTION(6, "TEST_IN9"),
387 +               MTK_FUNCTION(7, "TEST_OUT9")
388 +       ),
389 +       MTK_PIN(
390 +               PINCTRL_PIN(19, "COL7"),
391 +               "J5", "mt6397",
392 +               MTK_EINT_FUNCTION(2, 17),
393 +               MTK_FUNCTION(0, "GPIO19"),
394 +               MTK_FUNCTION(1, "COL7"),
395 +               MTK_FUNCTION(2, "EINT17_1X"),
396 +               MTK_FUNCTION(3, "PWM2_3X"),
397 +               MTK_FUNCTION(4, "GPIO32K_1"),
398 +               MTK_FUNCTION(5, "GPIO26M_1"),
399 +               MTK_FUNCTION(6, "TEST_IN10"),
400 +               MTK_FUNCTION(7, "TEST_OUT10")
401 +       ),
402 +       MTK_PIN(
403 +               PINCTRL_PIN(20, "ROW0"),
404 +               "L7", "mt6397",
405 +               MTK_EINT_FUNCTION(2, 18),
406 +               MTK_FUNCTION(0, "GPIO20"),
407 +               MTK_FUNCTION(1, "ROW0"),
408 +               MTK_FUNCTION(2, "EINT18_1X"),
409 +               MTK_FUNCTION(3, "SCL0_3X"),
410 +               MTK_FUNCTION(6, "TEST_IN11"),
411 +               MTK_FUNCTION(7, "TEST_OUT11")
412 +       ),
413 +       MTK_PIN(
414 +               PINCTRL_PIN(21, "ROW1"),
415 +               "P1", "mt6397",
416 +               MTK_EINT_FUNCTION(2, 19),
417 +               MTK_FUNCTION(0, "GPIO21"),
418 +               MTK_FUNCTION(1, "ROW1"),
419 +               MTK_FUNCTION(2, "EINT19_1X"),
420 +               MTK_FUNCTION(3, "SDA0_3X"),
421 +               MTK_FUNCTION(4, "AUD_TSTCK"),
422 +               MTK_FUNCTION(6, "TEST_IN12"),
423 +               MTK_FUNCTION(7, "TEST_OUT12")
424 +       ),
425 +       MTK_PIN(
426 +               PINCTRL_PIN(22, "ROW2"),
427 +               "J8", "mt6397",
428 +               MTK_EINT_FUNCTION(2, 20),
429 +               MTK_FUNCTION(0, "GPIO22"),
430 +               MTK_FUNCTION(1, "ROW2"),
431 +               MTK_FUNCTION(2, "EINT20_1X"),
432 +               MTK_FUNCTION(3, "SCL1_3X"),
433 +               MTK_FUNCTION(6, "TEST_IN13"),
434 +               MTK_FUNCTION(7, "TEST_OUT13")
435 +       ),
436 +       MTK_PIN(
437 +               PINCTRL_PIN(23, "ROW3"),
438 +               "J7", "mt6397",
439 +               MTK_EINT_FUNCTION(2, 21),
440 +               MTK_FUNCTION(0, "GPIO23"),
441 +               MTK_FUNCTION(1, "ROW3"),
442 +               MTK_FUNCTION(2, "EINT21_1X"),
443 +               MTK_FUNCTION(3, "SDA1_3X"),
444 +               MTK_FUNCTION(6, "TEST_IN14"),
445 +               MTK_FUNCTION(7, "TEST_OUT14")
446 +       ),
447 +       MTK_PIN(
448 +               PINCTRL_PIN(24, "ROW4"),
449 +               "L5", "mt6397",
450 +               MTK_EINT_FUNCTION(2, 22),
451 +               MTK_FUNCTION(0, "GPIO24"),
452 +               MTK_FUNCTION(1, "ROW4"),
453 +               MTK_FUNCTION(2, "EINT22_1X"),
454 +               MTK_FUNCTION(3, "SCL2_3X"),
455 +               MTK_FUNCTION(6, "TEST_IN15"),
456 +               MTK_FUNCTION(7, "TEST_OUT15")
457 +       ),
458 +       MTK_PIN(
459 +               PINCTRL_PIN(25, "ROW5"),
460 +               "N6", "mt6397",
461 +               MTK_EINT_FUNCTION(2, 23),
462 +               MTK_FUNCTION(0, "GPIO25"),
463 +               MTK_FUNCTION(1, "ROW5"),
464 +               MTK_FUNCTION(2, "EINT23_1X"),
465 +               MTK_FUNCTION(3, "SDA2_3X"),
466 +               MTK_FUNCTION(6, "TEST_IN16"),
467 +               MTK_FUNCTION(7, "TEST_OUT16")
468 +       ),
469 +       MTK_PIN(
470 +               PINCTRL_PIN(26, "ROW6"),
471 +               "L6", "mt6397",
472 +               MTK_EINT_FUNCTION(2, 24),
473 +               MTK_FUNCTION(0, "GPIO26"),
474 +               MTK_FUNCTION(1, "ROW6"),
475 +               MTK_FUNCTION(2, "EINT24_1X"),
476 +               MTK_FUNCTION(3, "PWM3_3X"),
477 +               MTK_FUNCTION(4, "GPIO32K_2"),
478 +               MTK_FUNCTION(5, "GPIO26M_2"),
479 +               MTK_FUNCTION(6, "TEST_IN17"),
480 +               MTK_FUNCTION(7, "TEST_OUT17")
481 +       ),
482 +       MTK_PIN(
483 +               PINCTRL_PIN(27, "ROW7"),
484 +               "P2", "mt6397",
485 +               MTK_EINT_FUNCTION(2, 3),
486 +               MTK_FUNCTION(0, "GPIO27"),
487 +               MTK_FUNCTION(1, "ROW7"),
488 +               MTK_FUNCTION(2, "EINT3_1X"),
489 +               MTK_FUNCTION(3, "CBUS"),
490 +               MTK_FUNCTION(4, "GPIO32K_3"),
491 +               MTK_FUNCTION(5, "GPIO26M_3"),
492 +               MTK_FUNCTION(6, "TEST_IN18"),
493 +               MTK_FUNCTION(7, "TEST_OUT18")
494 +       ),
495 +       MTK_PIN(
496 +               PINCTRL_PIN(28, "PWM1(VMSEL1)"),
497 +               "J4", "mt6397",
498 +               MTK_EINT_FUNCTION(2, 4),
499 +               MTK_FUNCTION(0, "GPIO28"),
500 +               MTK_FUNCTION(1, "PWM1"),
501 +               MTK_FUNCTION(2, "EINT4_1X"),
502 +               MTK_FUNCTION(4, "GPIO32K_4"),
503 +               MTK_FUNCTION(5, "GPIO26M_4"),
504 +               MTK_FUNCTION(6, "TEST_IN19"),
505 +               MTK_FUNCTION(7, "TEST_OUT19")
506 +       ),
507 +       MTK_PIN(
508 +               PINCTRL_PIN(29, "PWM2(VMSEL2)"),
509 +               "N5", "mt6397",
510 +               MTK_EINT_FUNCTION(2, 5),
511 +               MTK_FUNCTION(0, "GPIO29"),
512 +               MTK_FUNCTION(1, "PWM2"),
513 +               MTK_FUNCTION(2, "EINT5_1X"),
514 +               MTK_FUNCTION(4, "GPIO32K_5"),
515 +               MTK_FUNCTION(5, "GPIO26M_5"),
516 +               MTK_FUNCTION(6, "TEST_IN20"),
517 +               MTK_FUNCTION(7, "TEST_OUT20")
518 +       ),
519 +       MTK_PIN(
520 +               PINCTRL_PIN(30, "PWM3(PWM)"),
521 +               "R3", "mt6397",
522 +               MTK_EINT_FUNCTION(2, 6),
523 +               MTK_FUNCTION(0, "GPIO30"),
524 +               MTK_FUNCTION(1, "PWM3"),
525 +               MTK_FUNCTION(2, "EINT6_1X"),
526 +               MTK_FUNCTION(3, "COL0"),
527 +               MTK_FUNCTION(4, "GPIO32K_6"),
528 +               MTK_FUNCTION(5, "GPIO26M_6"),
529 +               MTK_FUNCTION(6, "TEST_IN21"),
530 +               MTK_FUNCTION(7, "TEST_OUT21")
531 +       ),
532 +       MTK_PIN(
533 +               PINCTRL_PIN(31, "SCL0"),
534 +               "N1", "mt6397",
535 +               MTK_EINT_FUNCTION(2, 7),
536 +               MTK_FUNCTION(0, "GPIO31"),
537 +               MTK_FUNCTION(1, "SCL0"),
538 +               MTK_FUNCTION(2, "EINT7_1X"),
539 +               MTK_FUNCTION(3, "PWM1_2X"),
540 +               MTK_FUNCTION(6, "TEST_IN22"),
541 +               MTK_FUNCTION(7, "TEST_OUT22")
542 +       ),
543 +       MTK_PIN(
544 +               PINCTRL_PIN(32, "SDA0"),
545 +               "N3", "mt6397",
546 +               MTK_EINT_FUNCTION(2, 8),
547 +               MTK_FUNCTION(0, "GPIO32"),
548 +               MTK_FUNCTION(1, "SDA0"),
549 +               MTK_FUNCTION(2, "EINT8_1X"),
550 +               MTK_FUNCTION(6, "TEST_IN23"),
551 +               MTK_FUNCTION(7, "TEST_OUT23")
552 +       ),
553 +       MTK_PIN(
554 +               PINCTRL_PIN(33, "SCL1"),
555 +               "T1", "mt6397",
556 +               MTK_EINT_FUNCTION(2, 9),
557 +               MTK_FUNCTION(0, "GPIO33"),
558 +               MTK_FUNCTION(1, "SCL1"),
559 +               MTK_FUNCTION(2, "EINT9_1X"),
560 +               MTK_FUNCTION(3, "PWM2_2X"),
561 +               MTK_FUNCTION(6, "TEST_IN24"),
562 +               MTK_FUNCTION(7, "TEST_OUT24")
563 +       ),
564 +       MTK_PIN(
565 +               PINCTRL_PIN(34, "SDA1"),
566 +               "T2", "mt6397",
567 +               MTK_EINT_FUNCTION(2, 0),
568 +               MTK_FUNCTION(0, "GPIO34"),
569 +               MTK_FUNCTION(1, "SDA1"),
570 +               MTK_FUNCTION(2, "EINT0_1X"),
571 +               MTK_FUNCTION(6, "TEST_IN25"),
572 +               MTK_FUNCTION(7, "TEST_OUT25")
573 +       ),
574 +       MTK_PIN(
575 +               PINCTRL_PIN(35, "SCL2"),
576 +               "T3", "mt6397",
577 +               MTK_EINT_FUNCTION(2, 1),
578 +               MTK_FUNCTION(0, "GPIO35"),
579 +               MTK_FUNCTION(1, "SCL2"),
580 +               MTK_FUNCTION(2, "EINT1_1X"),
581 +               MTK_FUNCTION(3, "PWM3_2X"),
582 +               MTK_FUNCTION(6, "TEST_IN26"),
583 +               MTK_FUNCTION(7, "TEST_OUT26")
584 +       ),
585 +       MTK_PIN(
586 +               PINCTRL_PIN(36, "SDA2"),
587 +               "U2", "mt6397",
588 +               MTK_EINT_FUNCTION(2, 2),
589 +               MTK_FUNCTION(0, "GPIO36"),
590 +               MTK_FUNCTION(1, "SDA2"),
591 +               MTK_FUNCTION(2, "EINT2_1X"),
592 +               MTK_FUNCTION(6, "TEST_IN27"),
593 +               MTK_FUNCTION(7, "TEST_OUT27")
594 +       ),
595 +       MTK_PIN(
596 +               PINCTRL_PIN(37, "HDMISD"),
597 +               "H6", "mt6397",
598 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
599 +               MTK_FUNCTION(0, "GPIO37"),
600 +               MTK_FUNCTION(1, "HDMISD"),
601 +               MTK_FUNCTION(6, "TEST_IN28"),
602 +               MTK_FUNCTION(7, "TEST_OUT28")
603 +       ),
604 +       MTK_PIN(
605 +               PINCTRL_PIN(38, "HDMISCK"),
606 +               "H5", "mt6397",
607 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
608 +               MTK_FUNCTION(0, "GPIO38"),
609 +               MTK_FUNCTION(1, "HDMISCK"),
610 +               MTK_FUNCTION(6, "TEST_IN29"),
611 +               MTK_FUNCTION(7, "TEST_OUT29")
612 +       ),
613 +       MTK_PIN(
614 +               PINCTRL_PIN(39, "HTPLG"),
615 +               "H7", "mt6397",
616 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
617 +               MTK_FUNCTION(0, "GPIO39"),
618 +               MTK_FUNCTION(1, "HTPLG"),
619 +               MTK_FUNCTION(6, "TEST_IN30"),
620 +               MTK_FUNCTION(7, "TEST_OUT30")
621 +       ),
622 +       MTK_PIN(
623 +               PINCTRL_PIN(40, "CEC"),
624 +               "J9", "mt6397",
625 +               MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),
626 +               MTK_FUNCTION(0, "GPIO40"),
627 +               MTK_FUNCTION(1, "CEC"),
628 +               MTK_FUNCTION(6, "TEST_IN31"),
629 +               MTK_FUNCTION(7, "TEST_OUT31")
630 +       ),
631 +};
632 +
633 +#endif /* __PINCTRL_MTK_MT6397_H */