blob: 2df8bbecebfc4c5742e5652386186ce67a7aba7e [file] [log] [blame]
Masahiro Yamada95372f92015-07-14 11:40:04 +09001/*
2 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#include <linux/kernel.h>
16#include <linux/module.h>
17#include <linux/pinctrl/pinctrl.h>
18#include <linux/platform_device.h>
19
20#include "pinctrl-uniphier.h"
21
22#define DRIVER_NAME "ph1-sld8-pinctrl"
23
24static const struct pinctrl_pin_desc ph1_sld8_pins[] = {
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090025 UNIPHIER_PINCTRL_PIN(0, "PCA00", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090026 15, UNIPHIER_PIN_DRV_4_8,
27 15, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090028 UNIPHIER_PINCTRL_PIN(1, "PCA01", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090029 16, UNIPHIER_PIN_DRV_4_8,
30 16, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090031 UNIPHIER_PINCTRL_PIN(2, "PCA02", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090032 17, UNIPHIER_PIN_DRV_4_8,
33 17, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090034 UNIPHIER_PINCTRL_PIN(3, "PCA03", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090035 18, UNIPHIER_PIN_DRV_4_8,
36 18, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090037 UNIPHIER_PINCTRL_PIN(4, "PCA04", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090038 19, UNIPHIER_PIN_DRV_4_8,
39 19, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090040 UNIPHIER_PINCTRL_PIN(5, "PCA05", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090041 20, UNIPHIER_PIN_DRV_4_8,
42 20, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090043 UNIPHIER_PINCTRL_PIN(6, "PCA06", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090044 21, UNIPHIER_PIN_DRV_4_8,
45 21, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090046 UNIPHIER_PINCTRL_PIN(7, "PCA07", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090047 22, UNIPHIER_PIN_DRV_4_8,
48 22, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090049 UNIPHIER_PINCTRL_PIN(8, "PCA08", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090050 23, UNIPHIER_PIN_DRV_4_8,
51 23, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090052 UNIPHIER_PINCTRL_PIN(9, "PCA09", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090053 24, UNIPHIER_PIN_DRV_4_8,
54 24, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090055 UNIPHIER_PINCTRL_PIN(10, "PCA10", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090056 25, UNIPHIER_PIN_DRV_4_8,
57 25, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090058 UNIPHIER_PINCTRL_PIN(11, "PCA11", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090059 26, UNIPHIER_PIN_DRV_4_8,
60 26, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090061 UNIPHIER_PINCTRL_PIN(12, "PCA12", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090062 27, UNIPHIER_PIN_DRV_4_8,
63 27, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090064 UNIPHIER_PINCTRL_PIN(13, "PCA13", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090065 28, UNIPHIER_PIN_DRV_4_8,
66 28, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +090067 UNIPHIER_PINCTRL_PIN(14, "PCA14", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +090068 29, UNIPHIER_PIN_DRV_4_8,
69 29, UNIPHIER_PIN_PULL_DOWN),
70 UNIPHIER_PINCTRL_PIN(15, "XNFRE_GB", UNIPHIER_PIN_IECTRL_NONE,
71 30, UNIPHIER_PIN_DRV_4_8,
72 30, UNIPHIER_PIN_PULL_UP),
73 UNIPHIER_PINCTRL_PIN(16, "XNFWE_GB", UNIPHIER_PIN_IECTRL_NONE,
74 31, UNIPHIER_PIN_DRV_4_8,
75 31, UNIPHIER_PIN_PULL_UP),
76 UNIPHIER_PINCTRL_PIN(17, "NFALE_GB", UNIPHIER_PIN_IECTRL_NONE,
77 32, UNIPHIER_PIN_DRV_4_8,
78 32, UNIPHIER_PIN_PULL_DOWN),
79 UNIPHIER_PINCTRL_PIN(18, "NFCLE_GB", UNIPHIER_PIN_IECTRL_NONE,
80 33, UNIPHIER_PIN_DRV_4_8,
81 33, UNIPHIER_PIN_PULL_DOWN),
82 UNIPHIER_PINCTRL_PIN(19, "XNFWP_GB", UNIPHIER_PIN_IECTRL_NONE,
83 34, UNIPHIER_PIN_DRV_4_8,
84 34, UNIPHIER_PIN_PULL_DOWN),
85 UNIPHIER_PINCTRL_PIN(20, "XNFCE0_GB", UNIPHIER_PIN_IECTRL_NONE,
86 35, UNIPHIER_PIN_DRV_4_8,
87 35, UNIPHIER_PIN_PULL_UP),
88 UNIPHIER_PINCTRL_PIN(21, "NANDRYBY0_GB", UNIPHIER_PIN_IECTRL_NONE,
89 36, UNIPHIER_PIN_DRV_4_8,
90 36, UNIPHIER_PIN_PULL_UP),
91 UNIPHIER_PINCTRL_PIN(22, "XNFCE1_GB", UNIPHIER_PIN_IECTRL_NONE,
92 0, UNIPHIER_PIN_DRV_8_12_16_20,
93 119, UNIPHIER_PIN_PULL_UP),
94 UNIPHIER_PINCTRL_PIN(23, "NANDRYBY1_GB", UNIPHIER_PIN_IECTRL_NONE,
95 4, UNIPHIER_PIN_DRV_8_12_16_20,
96 120, UNIPHIER_PIN_PULL_UP),
97 UNIPHIER_PINCTRL_PIN(24, "NFD0_GB", UNIPHIER_PIN_IECTRL_NONE,
98 8, UNIPHIER_PIN_DRV_8_12_16_20,
99 121, UNIPHIER_PIN_PULL_UP),
100 UNIPHIER_PINCTRL_PIN(25, "NFD1_GB", UNIPHIER_PIN_IECTRL_NONE,
101 12, UNIPHIER_PIN_DRV_8_12_16_20,
102 122, UNIPHIER_PIN_PULL_UP),
103 UNIPHIER_PINCTRL_PIN(26, "NFD2_GB", UNIPHIER_PIN_IECTRL_NONE,
104 16, UNIPHIER_PIN_DRV_8_12_16_20,
105 123, UNIPHIER_PIN_PULL_UP),
106 UNIPHIER_PINCTRL_PIN(27, "NFD3_GB", UNIPHIER_PIN_IECTRL_NONE,
107 20, UNIPHIER_PIN_DRV_8_12_16_20,
108 124, UNIPHIER_PIN_PULL_UP),
109 UNIPHIER_PINCTRL_PIN(28, "NFD4_GB", UNIPHIER_PIN_IECTRL_NONE,
110 24, UNIPHIER_PIN_DRV_8_12_16_20,
111 125, UNIPHIER_PIN_PULL_UP),
112 UNIPHIER_PINCTRL_PIN(29, "NFD5_GB", UNIPHIER_PIN_IECTRL_NONE,
113 28, UNIPHIER_PIN_DRV_8_12_16_20,
114 126, UNIPHIER_PIN_PULL_UP),
115 UNIPHIER_PINCTRL_PIN(30, "NFD6_GB", UNIPHIER_PIN_IECTRL_NONE,
116 32, UNIPHIER_PIN_DRV_8_12_16_20,
117 127, UNIPHIER_PIN_PULL_UP),
118 UNIPHIER_PINCTRL_PIN(31, "NFD7_GB", UNIPHIER_PIN_IECTRL_NONE,
119 36, UNIPHIER_PIN_DRV_8_12_16_20,
120 128, UNIPHIER_PIN_PULL_UP),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900121 UNIPHIER_PINCTRL_PIN(32, "SDCLK", 8,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900122 40, UNIPHIER_PIN_DRV_8_12_16_20,
123 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900124 UNIPHIER_PINCTRL_PIN(33, "SDCMD", 8,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900125 44, UNIPHIER_PIN_DRV_8_12_16_20,
126 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900127 UNIPHIER_PINCTRL_PIN(34, "SDDAT0", 8,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900128 48, UNIPHIER_PIN_DRV_8_12_16_20,
129 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900130 UNIPHIER_PINCTRL_PIN(35, "SDDAT1", 8,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900131 52, UNIPHIER_PIN_DRV_8_12_16_20,
132 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900133 UNIPHIER_PINCTRL_PIN(36, "SDDAT2", 8,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900134 56, UNIPHIER_PIN_DRV_8_12_16_20,
135 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900136 UNIPHIER_PINCTRL_PIN(37, "SDDAT3", 8,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900137 60, UNIPHIER_PIN_DRV_8_12_16_20,
138 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900139 UNIPHIER_PINCTRL_PIN(38, "SDCD", 8,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900140 -1, UNIPHIER_PIN_DRV_FIXED_4,
141 129, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900142 UNIPHIER_PINCTRL_PIN(39, "SDWP", 8,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900143 -1, UNIPHIER_PIN_DRV_FIXED_4,
144 130, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900145 UNIPHIER_PINCTRL_PIN(40, "SDVOLC", 9,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900146 -1, UNIPHIER_PIN_DRV_FIXED_4,
147 131, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900148 UNIPHIER_PINCTRL_PIN(41, "USB0VBUS", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900149 37, UNIPHIER_PIN_DRV_4_8,
150 37, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900151 UNIPHIER_PINCTRL_PIN(42, "USB0OD", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900152 38, UNIPHIER_PIN_DRV_4_8,
153 38, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900154 UNIPHIER_PINCTRL_PIN(43, "USB1VBUS", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900155 39, UNIPHIER_PIN_DRV_4_8,
156 39, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900157 UNIPHIER_PINCTRL_PIN(44, "USB1OD", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900158 40, UNIPHIER_PIN_DRV_4_8,
159 40, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900160 UNIPHIER_PINCTRL_PIN(45, "PCRESET", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900161 41, UNIPHIER_PIN_DRV_4_8,
162 41, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900163 UNIPHIER_PINCTRL_PIN(46, "PCREG", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900164 42, UNIPHIER_PIN_DRV_4_8,
165 42, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900166 UNIPHIER_PINCTRL_PIN(47, "PCCE2", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900167 43, UNIPHIER_PIN_DRV_4_8,
168 43, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900169 UNIPHIER_PINCTRL_PIN(48, "PCVS1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900170 44, UNIPHIER_PIN_DRV_4_8,
171 44, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900172 UNIPHIER_PINCTRL_PIN(49, "PCCD2", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900173 45, UNIPHIER_PIN_DRV_4_8,
174 45, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900175 UNIPHIER_PINCTRL_PIN(50, "PCCD1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900176 46, UNIPHIER_PIN_DRV_4_8,
177 46, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900178 UNIPHIER_PINCTRL_PIN(51, "PCREADY", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900179 47, UNIPHIER_PIN_DRV_4_8,
180 47, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900181 UNIPHIER_PINCTRL_PIN(52, "PCDOE", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900182 48, UNIPHIER_PIN_DRV_4_8,
183 48, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900184 UNIPHIER_PINCTRL_PIN(53, "PCCE1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900185 49, UNIPHIER_PIN_DRV_4_8,
186 49, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900187 UNIPHIER_PINCTRL_PIN(54, "PCWE", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900188 50, UNIPHIER_PIN_DRV_4_8,
189 50, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900190 UNIPHIER_PINCTRL_PIN(55, "PCOE", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900191 51, UNIPHIER_PIN_DRV_4_8,
192 51, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900193 UNIPHIER_PINCTRL_PIN(56, "PCWAIT", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900194 52, UNIPHIER_PIN_DRV_4_8,
195 52, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900196 UNIPHIER_PINCTRL_PIN(57, "PCIOWR", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900197 53, UNIPHIER_PIN_DRV_4_8,
198 53, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900199 UNIPHIER_PINCTRL_PIN(58, "PCIORD", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900200 54, UNIPHIER_PIN_DRV_4_8,
201 54, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900202 UNIPHIER_PINCTRL_PIN(59, "HS0DIN0", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900203 55, UNIPHIER_PIN_DRV_4_8,
204 55, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900205 UNIPHIER_PINCTRL_PIN(60, "HS0DIN1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900206 56, UNIPHIER_PIN_DRV_4_8,
207 56, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900208 UNIPHIER_PINCTRL_PIN(61, "HS0DIN2", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900209 57, UNIPHIER_PIN_DRV_4_8,
210 57, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900211 UNIPHIER_PINCTRL_PIN(62, "HS0DIN3", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900212 58, UNIPHIER_PIN_DRV_4_8,
213 58, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900214 UNIPHIER_PINCTRL_PIN(63, "HS0DIN4", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900215 59, UNIPHIER_PIN_DRV_4_8,
216 59, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900217 UNIPHIER_PINCTRL_PIN(64, "HS0DIN5", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900218 60, UNIPHIER_PIN_DRV_4_8,
219 60, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900220 UNIPHIER_PINCTRL_PIN(65, "HS0DIN6", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900221 61, UNIPHIER_PIN_DRV_4_8,
222 61, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900223 UNIPHIER_PINCTRL_PIN(66, "HS0DIN7", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900224 62, UNIPHIER_PIN_DRV_4_8,
225 62, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900226 UNIPHIER_PINCTRL_PIN(67, "HS0BCLKIN", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900227 63, UNIPHIER_PIN_DRV_4_8,
228 63, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900229 UNIPHIER_PINCTRL_PIN(68, "HS0VALIN", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900230 64, UNIPHIER_PIN_DRV_4_8,
231 64, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900232 UNIPHIER_PINCTRL_PIN(69, "HS0SYNCIN", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900233 65, UNIPHIER_PIN_DRV_4_8,
234 65, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900235 UNIPHIER_PINCTRL_PIN(70, "HSDOUT0", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900236 66, UNIPHIER_PIN_DRV_4_8,
237 66, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900238 UNIPHIER_PINCTRL_PIN(71, "HSDOUT1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900239 67, UNIPHIER_PIN_DRV_4_8,
240 67, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900241 UNIPHIER_PINCTRL_PIN(72, "HSDOUT2", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900242 68, UNIPHIER_PIN_DRV_4_8,
243 68, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900244 UNIPHIER_PINCTRL_PIN(73, "HSDOUT3", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900245 69, UNIPHIER_PIN_DRV_4_8,
246 69, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900247 UNIPHIER_PINCTRL_PIN(74, "HSDOUT4", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900248 70, UNIPHIER_PIN_DRV_4_8,
249 70, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900250 UNIPHIER_PINCTRL_PIN(75, "HSDOUT5", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900251 71, UNIPHIER_PIN_DRV_4_8,
252 71, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900253 UNIPHIER_PINCTRL_PIN(76, "HSDOUT6", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900254 72, UNIPHIER_PIN_DRV_4_8,
255 72, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900256 UNIPHIER_PINCTRL_PIN(77, "HSDOUT7", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900257 73, UNIPHIER_PIN_DRV_4_8,
258 73, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900259 UNIPHIER_PINCTRL_PIN(78, "HSBCLKOUT", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900260 74, UNIPHIER_PIN_DRV_4_8,
261 74, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900262 UNIPHIER_PINCTRL_PIN(79, "HSVALOUT", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900263 75, UNIPHIER_PIN_DRV_4_8,
264 75, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900265 UNIPHIER_PINCTRL_PIN(80, "HSSYNCOUT", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900266 76, UNIPHIER_PIN_DRV_4_8,
267 76, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900268 UNIPHIER_PINCTRL_PIN(81, "HS1DIN0", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900269 77, UNIPHIER_PIN_DRV_4_8,
270 77, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900271 UNIPHIER_PINCTRL_PIN(82, "HS1DIN1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900272 78, UNIPHIER_PIN_DRV_4_8,
273 78, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900274 UNIPHIER_PINCTRL_PIN(83, "HS1DIN2", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900275 79, UNIPHIER_PIN_DRV_4_8,
276 79, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900277 UNIPHIER_PINCTRL_PIN(84, "HS1DIN3", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900278 80, UNIPHIER_PIN_DRV_4_8,
279 80, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900280 UNIPHIER_PINCTRL_PIN(85, "HS1DIN4", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900281 81, UNIPHIER_PIN_DRV_4_8,
282 81, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900283 UNIPHIER_PINCTRL_PIN(86, "HS1DIN5", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900284 82, UNIPHIER_PIN_DRV_4_8,
285 82, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900286 UNIPHIER_PINCTRL_PIN(87, "HS1DIN6", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900287 83, UNIPHIER_PIN_DRV_4_8,
288 83, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900289 UNIPHIER_PINCTRL_PIN(88, "HS1DIN7", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900290 84, UNIPHIER_PIN_DRV_4_8,
291 84, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900292 UNIPHIER_PINCTRL_PIN(89, "HS1BCLKIN", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900293 85, UNIPHIER_PIN_DRV_4_8,
294 85, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900295 UNIPHIER_PINCTRL_PIN(90, "HS1VALIN", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900296 86, UNIPHIER_PIN_DRV_4_8,
297 86, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900298 UNIPHIER_PINCTRL_PIN(91, "HS1SYNCIN", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900299 87, UNIPHIER_PIN_DRV_4_8,
300 87, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900301 UNIPHIER_PINCTRL_PIN(92, "AGCI", 3,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900302 -1, UNIPHIER_PIN_DRV_FIXED_4,
303 132, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900304 UNIPHIER_PINCTRL_PIN(93, "AGCR", 4,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900305 -1, UNIPHIER_PIN_DRV_FIXED_4,
306 133, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900307 UNIPHIER_PINCTRL_PIN(94, "AGCBS", 5,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900308 -1, UNIPHIER_PIN_DRV_FIXED_4,
309 134, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900310 UNIPHIER_PINCTRL_PIN(95, "IECOUT", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900311 88, UNIPHIER_PIN_DRV_4_8,
312 88, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900313 UNIPHIER_PINCTRL_PIN(96, "ASMCK", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900314 89, UNIPHIER_PIN_DRV_4_8,
315 89, UNIPHIER_PIN_PULL_DOWN),
316 UNIPHIER_PINCTRL_PIN(97, "ABCKO", UNIPHIER_PIN_IECTRL_NONE,
317 90, UNIPHIER_PIN_DRV_4_8,
318 90, UNIPHIER_PIN_PULL_DOWN),
319 UNIPHIER_PINCTRL_PIN(98, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE,
320 91, UNIPHIER_PIN_DRV_4_8,
321 91, UNIPHIER_PIN_PULL_DOWN),
322 UNIPHIER_PINCTRL_PIN(99, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE,
323 92, UNIPHIER_PIN_DRV_4_8,
324 92, UNIPHIER_PIN_PULL_DOWN),
325 UNIPHIER_PINCTRL_PIN(100, "ASDOUT1", UNIPHIER_PIN_IECTRL_NONE,
326 93, UNIPHIER_PIN_DRV_4_8,
327 93, UNIPHIER_PIN_PULL_UP),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900328 UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900329 94, UNIPHIER_PIN_DRV_4_8,
330 94, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900331 UNIPHIER_PINCTRL_PIN(102, "SDA0", 10,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900332 -1, UNIPHIER_PIN_DRV_FIXED_4,
333 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900334 UNIPHIER_PINCTRL_PIN(103, "SCL0", 10,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900335 -1, UNIPHIER_PIN_DRV_FIXED_4,
336 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900337 UNIPHIER_PINCTRL_PIN(104, "SDA1", 11,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900338 -1, UNIPHIER_PIN_DRV_FIXED_4,
339 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900340 UNIPHIER_PINCTRL_PIN(105, "SCL1", 11,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900341 -1, UNIPHIER_PIN_DRV_FIXED_4,
342 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900343 UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", 12,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900344 -1, UNIPHIER_PIN_DRV_FIXED_4,
345 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900346 UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", 12,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900347 -1, UNIPHIER_PIN_DRV_FIXED_4,
348 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900349 UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", 13,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900350 -1, UNIPHIER_PIN_DRV_FIXED_4,
351 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900352 UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", 13,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900353 -1, UNIPHIER_PIN_DRV_FIXED_4,
354 -1, UNIPHIER_PIN_PULL_NONE),
355 UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE,
356 95, UNIPHIER_PIN_DRV_4_8,
357 95, UNIPHIER_PIN_PULL_UP),
358 UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE,
359 96, UNIPHIER_PIN_DRV_4_8,
360 96, UNIPHIER_PIN_PULL_UP),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900361 UNIPHIER_PINCTRL_PIN(112, "SBO1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900362 97, UNIPHIER_PIN_DRV_4_8,
363 97, UNIPHIER_PIN_PULL_UP),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900364 UNIPHIER_PINCTRL_PIN(113, "SBI1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900365 98, UNIPHIER_PIN_DRV_4_8,
366 98, UNIPHIER_PIN_PULL_UP),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900367 UNIPHIER_PINCTRL_PIN(114, "TXD1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900368 99, UNIPHIER_PIN_DRV_4_8,
369 99, UNIPHIER_PIN_PULL_UP),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900370 UNIPHIER_PINCTRL_PIN(115, "RXD1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900371 100, UNIPHIER_PIN_DRV_4_8,
372 100, UNIPHIER_PIN_PULL_UP),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900373 UNIPHIER_PINCTRL_PIN(116, "HIN", 1,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900374 -1, UNIPHIER_PIN_DRV_FIXED_5,
375 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900376 UNIPHIER_PINCTRL_PIN(117, "VIN", 2,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900377 -1, UNIPHIER_PIN_DRV_FIXED_5,
378 -1, UNIPHIER_PIN_PULL_NONE),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900379 UNIPHIER_PINCTRL_PIN(118, "TCON0", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900380 101, UNIPHIER_PIN_DRV_4_8,
381 101, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900382 UNIPHIER_PINCTRL_PIN(119, "TCON1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900383 102, UNIPHIER_PIN_DRV_4_8,
384 102, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900385 UNIPHIER_PINCTRL_PIN(120, "TCON2", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900386 103, UNIPHIER_PIN_DRV_4_8,
387 103, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900388 UNIPHIER_PINCTRL_PIN(121, "TCON3", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900389 104, UNIPHIER_PIN_DRV_4_8,
390 104, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900391 UNIPHIER_PINCTRL_PIN(122, "TCON4", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900392 105, UNIPHIER_PIN_DRV_4_8,
393 105, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900394 UNIPHIER_PINCTRL_PIN(123, "TCON5", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900395 106, UNIPHIER_PIN_DRV_4_8,
396 106, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900397 UNIPHIER_PINCTRL_PIN(124, "TCON6", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900398 107, UNIPHIER_PIN_DRV_4_8,
399 107, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900400 UNIPHIER_PINCTRL_PIN(125, "TCON7", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900401 108, UNIPHIER_PIN_DRV_4_8,
402 108, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900403 UNIPHIER_PINCTRL_PIN(126, "TCON8", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900404 109, UNIPHIER_PIN_DRV_4_8,
405 109, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900406 UNIPHIER_PINCTRL_PIN(127, "PWMA", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900407 110, UNIPHIER_PIN_DRV_4_8,
408 110, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900409 UNIPHIER_PINCTRL_PIN(128, "XIRQ0", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900410 111, UNIPHIER_PIN_DRV_4_8,
411 111, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900412 UNIPHIER_PINCTRL_PIN(129, "XIRQ1", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900413 112, UNIPHIER_PIN_DRV_4_8,
414 112, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900415 UNIPHIER_PINCTRL_PIN(130, "XIRQ2", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900416 113, UNIPHIER_PIN_DRV_4_8,
417 113, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900418 UNIPHIER_PINCTRL_PIN(131, "XIRQ3", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900419 114, UNIPHIER_PIN_DRV_4_8,
420 114, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900421 UNIPHIER_PINCTRL_PIN(132, "XIRQ4", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900422 115, UNIPHIER_PIN_DRV_4_8,
423 115, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900424 UNIPHIER_PINCTRL_PIN(133, "XIRQ5", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900425 116, UNIPHIER_PIN_DRV_4_8,
426 116, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900427 UNIPHIER_PINCTRL_PIN(134, "XIRQ6", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900428 117, UNIPHIER_PIN_DRV_4_8,
429 117, UNIPHIER_PIN_PULL_DOWN),
Masahiro Yamadade7f8e32015-09-24 21:26:46 +0900430 UNIPHIER_PINCTRL_PIN(135, "XIRQ7", 0,
Masahiro Yamada95372f92015-07-14 11:40:04 +0900431 118, UNIPHIER_PIN_DRV_4_8,
432 118, UNIPHIER_PIN_PULL_DOWN),
433};
434
435static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27};
436static const unsigned emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1};
437static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31};
438static const unsigned emmc_dat8_muxvals[] = {1, 1, 1, 1};
439static const unsigned i2c0_pins[] = {102, 103};
440static const unsigned i2c0_muxvals[] = {0, 0};
441static const unsigned i2c1_pins[] = {104, 105};
442static const unsigned i2c1_muxvals[] = {0, 0};
443static const unsigned i2c2_pins[] = {108, 109};
444static const unsigned i2c2_muxvals[] = {2, 2};
445static const unsigned i2c3_pins[] = {108, 109};
446static const unsigned i2c3_muxvals[] = {3, 3};
447static const unsigned nand_pins[] = {15, 16, 17, 18, 19, 20, 21, 24, 25, 26,
448 27, 28, 29, 30, 31};
449static const unsigned nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
450 0, 0};
451static const unsigned nand_cs1_pins[] = {22, 23};
452static const unsigned nand_cs1_muxvals[] = {0, 0};
453static const unsigned uart0_pins[] = {70, 71};
454static const unsigned uart0_muxvals[] = {3, 3};
455static const unsigned uart1_pins[] = {114, 115};
456static const unsigned uart1_muxvals[] = {0, 0};
457static const unsigned uart2_pins[] = {112, 113};
458static const unsigned uart2_muxvals[] = {1, 1};
459static const unsigned uart3_pins[] = {110, 111};
460static const unsigned uart3_muxvals[] = {1, 1};
461static const unsigned usb0_pins[] = {41, 42};
462static const unsigned usb0_muxvals[] = {0, 0};
463static const unsigned usb1_pins[] = {43, 44};
464static const unsigned usb1_muxvals[] = {0, 0};
465static const unsigned usb2_pins[] = {114, 115};
466static const unsigned usb2_muxvals[] = {1, 1};
467static const unsigned port_range0_pins[] = {
468 0, 1, 2, 3, 4, 5, 6, 7, /* PORT0x */
469 8, 9, 10, 11, 12, 13, 14, 15, /* PORT1x */
470 32, 33, 34, 35, 36, 37, 38, 39, /* PORT2x */
471 59, 60, 61, 62, 63, 64, 65, 66, /* PORT3x */
472 95, 96, 97, 98, 99, 100, 101, 57, /* PORT4x */
473 70, 71, 72, 73, 74, 75, 76, 77, /* PORT5x */
474 81, 83, 84, 85, 86, 89, 90, 91, /* PORT6x */
475 118, 119, 120, 121, 122, 53, 54, 55, /* PORT7x */
476 41, 42, 43, 44, 79, 80, 18, 19, /* PORT8x */
477 110, 111, 112, 113, 114, 115, 16, 17, /* PORT9x */
478 40, 67, 68, 69, 78, 92, 93, 94, /* PORT10x */
479 48, 49, 46, 45, 123, 124, 125, 126, /* PORT11x */
480 47, 127, 20, 56, 22, /* PORT120-124 */
481};
482static const unsigned port_range0_muxvals[] = {
483 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
484 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
485 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
486 15, 15, 15, 15, 15, 15, 15, 15, /* PORT3x */
487 15, 15, 15, 15, 15, 15, 15, 15, /* PORT4x */
488 15, 15, 15, 15, 15, 15, 15, 15, /* PORT5x */
489 15, 15, 15, 15, 15, 15, 15, 15, /* PORT6x */
490 15, 15, 15, 15, 15, 15, 15, 15, /* PORT7x */
491 15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */
492 15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */
493 15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */
494 15, 15, 15, 15, 15, 15, 15, 15, /* PORT11x */
495 15, 15, 15, 15, 15, /* PORT120-124 */
496};
497static const unsigned port_range1_pins[] = {
498 116, 117, /* PORT130-131 */
499};
500static const unsigned port_range1_muxvals[] = {
501 15, 15, /* PORT130-131 */
502};
503static const unsigned port_range2_pins[] = {
504 102, 103, 104, 105, 106, 107, 108, 109, /* PORT14x */
505};
506static const unsigned port_range2_muxvals[] = {
507 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */
508};
509static const unsigned port_range3_pins[] = {
510 23, /* PORT166 */
511};
512static const unsigned port_range3_muxvals[] = {
513 15, /* PORT166 */
514};
515static const unsigned xirq_range0_pins[] = {
516 128, 129, 130, 131, 132, 133, 134, 135, /* XIRQ0-7 */
517 82, 87, 88, 50, 51, /* XIRQ8-12 */
518};
519static const unsigned xirq_range0_muxvals[] = {
520 0, 0, 0, 0, 0, 0, 0, 0, /* XIRQ0-7 */
521 14, 14, 14, 14, 14, /* XIRQ8-12 */
522};
523static const unsigned xirq_range1_pins[] = {
524 52, 58, /* XIRQ14-15 */
525};
526static const unsigned xirq_range1_muxvals[] = {
527 14, 14, /* XIRQ14-15 */
528};
529
530static const struct uniphier_pinctrl_group ph1_sld8_groups[] = {
531 UNIPHIER_PINCTRL_GROUP(emmc),
532 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
533 UNIPHIER_PINCTRL_GROUP(i2c0),
534 UNIPHIER_PINCTRL_GROUP(i2c1),
535 UNIPHIER_PINCTRL_GROUP(i2c2),
536 UNIPHIER_PINCTRL_GROUP(i2c3),
537 UNIPHIER_PINCTRL_GROUP(nand),
538 UNIPHIER_PINCTRL_GROUP(nand_cs1),
539 UNIPHIER_PINCTRL_GROUP(uart0),
540 UNIPHIER_PINCTRL_GROUP(uart1),
541 UNIPHIER_PINCTRL_GROUP(uart2),
542 UNIPHIER_PINCTRL_GROUP(uart3),
543 UNIPHIER_PINCTRL_GROUP(usb0),
544 UNIPHIER_PINCTRL_GROUP(usb1),
545 UNIPHIER_PINCTRL_GROUP(usb2),
546 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range0),
547 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range1),
548 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range2),
549 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range3),
550 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_range0),
551 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_range1),
552 UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range0, 0),
553 UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range0, 1),
554 UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range0, 2),
555 UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range0, 3),
556 UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range0, 4),
557 UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range0, 5),
558 UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range0, 6),
559 UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range0, 7),
560 UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range0, 8),
561 UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range0, 9),
562 UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range0, 10),
563 UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range0, 11),
564 UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range0, 12),
565 UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range0, 13),
566 UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range0, 14),
567 UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range0, 15),
568 UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range0, 16),
569 UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range0, 17),
570 UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range0, 18),
571 UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range0, 19),
572 UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range0, 20),
573 UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range0, 21),
574 UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range0, 22),
575 UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range0, 23),
576 UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range0, 24),
577 UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range0, 25),
578 UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range0, 26),
579 UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range0, 27),
580 UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range0, 28),
581 UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range0, 29),
582 UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range0, 30),
583 UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range0, 31),
584 UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range0, 32),
585 UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range0, 33),
586 UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range0, 34),
587 UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range0, 35),
588 UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range0, 36),
589 UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range0, 37),
590 UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range0, 38),
591 UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range0, 39),
592 UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range0, 40),
593 UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range0, 41),
594 UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range0, 42),
595 UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range0, 43),
596 UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range0, 44),
597 UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range0, 45),
598 UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range0, 46),
599 UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range0, 47),
600 UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range0, 48),
601 UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range0, 49),
602 UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range0, 50),
603 UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range0, 51),
604 UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range0, 52),
605 UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range0, 53),
606 UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range0, 54),
607 UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range0, 55),
608 UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range0, 56),
609 UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range0, 57),
610 UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range0, 58),
611 UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range0, 59),
612 UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range0, 60),
613 UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range0, 61),
614 UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range0, 62),
615 UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range0, 63),
616 UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range0, 64),
617 UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range0, 65),
618 UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range0, 66),
619 UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range0, 67),
620 UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range0, 68),
621 UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range0, 69),
622 UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range0, 70),
623 UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range0, 71),
624 UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range0, 72),
625 UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range0, 73),
626 UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range0, 74),
627 UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range0, 75),
628 UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range0, 76),
629 UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range0, 77),
630 UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range0, 78),
631 UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range0, 79),
632 UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range0, 80),
633 UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range0, 81),
634 UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range0, 82),
635 UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range0, 83),
636 UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range0, 84),
637 UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range0, 85),
638 UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range0, 86),
639 UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range0, 87),
640 UNIPHIER_PINCTRL_GROUP_SINGLE(port110, port_range0, 88),
641 UNIPHIER_PINCTRL_GROUP_SINGLE(port111, port_range0, 89),
642 UNIPHIER_PINCTRL_GROUP_SINGLE(port112, port_range0, 90),
643 UNIPHIER_PINCTRL_GROUP_SINGLE(port113, port_range0, 91),
644 UNIPHIER_PINCTRL_GROUP_SINGLE(port114, port_range0, 92),
645 UNIPHIER_PINCTRL_GROUP_SINGLE(port115, port_range0, 93),
646 UNIPHIER_PINCTRL_GROUP_SINGLE(port116, port_range0, 94),
647 UNIPHIER_PINCTRL_GROUP_SINGLE(port117, port_range0, 95),
648 UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range0, 96),
649 UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range0, 97),
650 UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range0, 98),
651 UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range0, 99),
652 UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range0, 100),
653 UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range1, 0),
654 UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range1, 1),
655 UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range2, 0),
656 UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range2, 1),
657 UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range2, 2),
658 UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range2, 3),
659 UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range2, 4),
660 UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range2, 5),
661 UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range2, 6),
662 UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range2, 7),
663 UNIPHIER_PINCTRL_GROUP_SINGLE(port166, port_range3, 0),
664 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq_range0, 0),
665 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq_range0, 1),
666 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq_range0, 2),
667 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3, xirq_range0, 3),
668 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4, xirq_range0, 4),
669 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5, xirq_range0, 5),
670 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6, xirq_range0, 6),
671 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7, xirq_range0, 7),
672 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8, xirq_range0, 8),
673 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9, xirq_range0, 9),
674 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10, xirq_range0, 10),
675 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11, xirq_range0, 11),
676 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq12, xirq_range0, 12),
677 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14, xirq_range1, 0),
678 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq15, xirq_range1, 1),
679};
680
681static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
682static const char * const i2c0_groups[] = {"i2c0"};
683static const char * const i2c1_groups[] = {"i2c1"};
684static const char * const i2c2_groups[] = {"i2c2"};
685static const char * const i2c3_groups[] = {"i2c3"};
686static const char * const nand_groups[] = {"nand", "nand_cs1"};
687static const char * const uart0_groups[] = {"uart0"};
688static const char * const uart1_groups[] = {"uart1"};
689static const char * const uart2_groups[] = {"uart2"};
690static const char * const uart3_groups[] = {"uart3"};
691static const char * const usb0_groups[] = {"usb0"};
692static const char * const usb1_groups[] = {"usb1"};
693static const char * const usb2_groups[] = {"usb2"};
694static const char * const port_groups[] = {
695 "port00", "port01", "port02", "port03",
696 "port04", "port05", "port06", "port07",
697 "port10", "port11", "port12", "port13",
698 "port14", "port15", "port16", "port17",
699 "port20", "port21", "port22", "port23",
700 "port24", "port25", "port26", "port27",
701 "port30", "port31", "port32", "port33",
702 "port34", "port35", "port36", "port37",
703 "port40", "port41", "port42", "port43",
704 "port44", "port45", "port46", "port47",
705 "port50", "port51", "port52", "port53",
706 "port54", "port55", "port56", "port57",
707 "port60", "port61", "port62", "port63",
708 "port64", "port65", "port66", "port67",
709 "port70", "port71", "port72", "port73",
710 "port74", "port75", "port76", "port77",
711 "port80", "port81", "port82", "port83",
712 "port84", "port85", "port86", "port87",
713 "port90", "port91", "port92", "port93",
714 "port94", "port95", "port96", "port97",
715 "port100", "port101", "port102", "port103",
716 "port104", "port105", "port106", "port107",
717 "port110", "port111", "port112", "port113",
718 "port114", "port115", "port116", "port117",
719 "port120", "port121", "port122", "port123",
720 "port124", "port125", "port126", "port127",
721 "port130", "port131", "port132", "port133",
722 "port134", "port135", "port136", "port137",
723 "port140", "port141", "port142", "port143",
724 "port144", "port145", "port146", "port147",
725 /* port150-164 missing */
726 /* none */ "port165",
727};
728static const char * const xirq_groups[] = {
729 "xirq0", "xirq1", "xirq2", "xirq3",
730 "xirq4", "xirq5", "xirq6", "xirq7",
731 "xirq8", "xirq9", "xirq10", "xirq11",
732 "xirq12", /* none*/ "xirq14", "xirq15",
733};
734
735static const struct uniphier_pinmux_function ph1_sld8_functions[] = {
736 UNIPHIER_PINMUX_FUNCTION(emmc),
737 UNIPHIER_PINMUX_FUNCTION(i2c0),
738 UNIPHIER_PINMUX_FUNCTION(i2c1),
739 UNIPHIER_PINMUX_FUNCTION(i2c2),
740 UNIPHIER_PINMUX_FUNCTION(i2c3),
741 UNIPHIER_PINMUX_FUNCTION(nand),
742 UNIPHIER_PINMUX_FUNCTION(uart0),
743 UNIPHIER_PINMUX_FUNCTION(uart1),
744 UNIPHIER_PINMUX_FUNCTION(uart2),
745 UNIPHIER_PINMUX_FUNCTION(uart3),
746 UNIPHIER_PINMUX_FUNCTION(usb0),
747 UNIPHIER_PINMUX_FUNCTION(usb1),
748 UNIPHIER_PINMUX_FUNCTION(usb2),
749 UNIPHIER_PINMUX_FUNCTION(port),
750 UNIPHIER_PINMUX_FUNCTION(xirq),
751};
752
753static struct uniphier_pinctrl_socdata ph1_sld8_pindata = {
754 .groups = ph1_sld8_groups,
755 .groups_count = ARRAY_SIZE(ph1_sld8_groups),
756 .functions = ph1_sld8_functions,
757 .functions_count = ARRAY_SIZE(ph1_sld8_functions),
758 .mux_bits = 8,
759 .reg_stride = 4,
760 .load_pinctrl = false,
761};
762
763static struct pinctrl_desc ph1_sld8_pinctrl_desc = {
764 .name = DRIVER_NAME,
765 .pins = ph1_sld8_pins,
766 .npins = ARRAY_SIZE(ph1_sld8_pins),
767 .owner = THIS_MODULE,
768};
769
770static int ph1_sld8_pinctrl_probe(struct platform_device *pdev)
771{
772 return uniphier_pinctrl_probe(pdev, &ph1_sld8_pinctrl_desc,
773 &ph1_sld8_pindata);
774}
775
776static const struct of_device_id ph1_sld8_pinctrl_match[] = {
777 { .compatible = "socionext,ph1-sld8-pinctrl" },
778 { /* sentinel */ }
779};
780MODULE_DEVICE_TABLE(of, ph1_sld8_pinctrl_match);
781
782static struct platform_driver ph1_sld8_pinctrl_driver = {
783 .probe = ph1_sld8_pinctrl_probe,
784 .remove = uniphier_pinctrl_remove,
785 .driver = {
786 .name = DRIVER_NAME,
787 .of_match_table = ph1_sld8_pinctrl_match,
788 },
789};
790module_platform_driver(ph1_sld8_pinctrl_driver);
791
792MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>");
793MODULE_DESCRIPTION("UniPhier PH1-sLD8 pinctrl driver");
794MODULE_LICENSE("GPL");