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