Merge branch 'for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/mason...
[deliverable/linux.git] / drivers / pinctrl / uniphier / pinctrl-uniphier-sld8.c
CommitLineData
95372f9d
MY
1/*
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
a4c6052b 22static const struct pinctrl_pin_desc uniphier_sld8_pins[] = {
de7f8e3e 23 UNIPHIER_PINCTRL_PIN(0, "PCA00", 0,
9eaa98a6 24 15, UNIPHIER_PIN_DRV_1BIT,
95372f9d 25 15, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 26 UNIPHIER_PINCTRL_PIN(1, "PCA01", 0,
9eaa98a6 27 16, UNIPHIER_PIN_DRV_1BIT,
95372f9d 28 16, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 29 UNIPHIER_PINCTRL_PIN(2, "PCA02", 0,
9eaa98a6 30 17, UNIPHIER_PIN_DRV_1BIT,
95372f9d 31 17, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 32 UNIPHIER_PINCTRL_PIN(3, "PCA03", 0,
9eaa98a6 33 18, UNIPHIER_PIN_DRV_1BIT,
95372f9d 34 18, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 35 UNIPHIER_PINCTRL_PIN(4, "PCA04", 0,
9eaa98a6 36 19, UNIPHIER_PIN_DRV_1BIT,
95372f9d 37 19, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 38 UNIPHIER_PINCTRL_PIN(5, "PCA05", 0,
9eaa98a6 39 20, UNIPHIER_PIN_DRV_1BIT,
95372f9d 40 20, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 41 UNIPHIER_PINCTRL_PIN(6, "PCA06", 0,
9eaa98a6 42 21, UNIPHIER_PIN_DRV_1BIT,
95372f9d 43 21, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 44 UNIPHIER_PINCTRL_PIN(7, "PCA07", 0,
9eaa98a6 45 22, UNIPHIER_PIN_DRV_1BIT,
95372f9d 46 22, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 47 UNIPHIER_PINCTRL_PIN(8, "PCA08", 0,
9eaa98a6 48 23, UNIPHIER_PIN_DRV_1BIT,
95372f9d 49 23, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 50 UNIPHIER_PINCTRL_PIN(9, "PCA09", 0,
9eaa98a6 51 24, UNIPHIER_PIN_DRV_1BIT,
95372f9d 52 24, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 53 UNIPHIER_PINCTRL_PIN(10, "PCA10", 0,
9eaa98a6 54 25, UNIPHIER_PIN_DRV_1BIT,
95372f9d 55 25, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 56 UNIPHIER_PINCTRL_PIN(11, "PCA11", 0,
9eaa98a6 57 26, UNIPHIER_PIN_DRV_1BIT,
95372f9d 58 26, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 59 UNIPHIER_PINCTRL_PIN(12, "PCA12", 0,
9eaa98a6 60 27, UNIPHIER_PIN_DRV_1BIT,
95372f9d 61 27, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 62 UNIPHIER_PINCTRL_PIN(13, "PCA13", 0,
9eaa98a6 63 28, UNIPHIER_PIN_DRV_1BIT,
95372f9d 64 28, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 65 UNIPHIER_PINCTRL_PIN(14, "PCA14", 0,
9eaa98a6 66 29, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
67 29, UNIPHIER_PIN_PULL_DOWN),
68 UNIPHIER_PINCTRL_PIN(15, "XNFRE_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 69 30, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
70 30, UNIPHIER_PIN_PULL_UP),
71 UNIPHIER_PINCTRL_PIN(16, "XNFWE_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 72 31, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
73 31, UNIPHIER_PIN_PULL_UP),
74 UNIPHIER_PINCTRL_PIN(17, "NFALE_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 75 32, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
76 32, UNIPHIER_PIN_PULL_DOWN),
77 UNIPHIER_PINCTRL_PIN(18, "NFCLE_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 78 33, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
79 33, UNIPHIER_PIN_PULL_DOWN),
80 UNIPHIER_PINCTRL_PIN(19, "XNFWP_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 81 34, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
82 34, UNIPHIER_PIN_PULL_DOWN),
83 UNIPHIER_PINCTRL_PIN(20, "XNFCE0_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 84 35, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
85 35, UNIPHIER_PIN_PULL_UP),
86 UNIPHIER_PINCTRL_PIN(21, "NANDRYBY0_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 87 36, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
88 36, UNIPHIER_PIN_PULL_UP),
89 UNIPHIER_PINCTRL_PIN(22, "XNFCE1_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 90 0, UNIPHIER_PIN_DRV_2BIT,
95372f9d
MY
91 119, UNIPHIER_PIN_PULL_UP),
92 UNIPHIER_PINCTRL_PIN(23, "NANDRYBY1_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 93 1, UNIPHIER_PIN_DRV_2BIT,
95372f9d
MY
94 120, UNIPHIER_PIN_PULL_UP),
95 UNIPHIER_PINCTRL_PIN(24, "NFD0_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 96 2, UNIPHIER_PIN_DRV_2BIT,
95372f9d
MY
97 121, UNIPHIER_PIN_PULL_UP),
98 UNIPHIER_PINCTRL_PIN(25, "NFD1_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 99 3, UNIPHIER_PIN_DRV_2BIT,
95372f9d
MY
100 122, UNIPHIER_PIN_PULL_UP),
101 UNIPHIER_PINCTRL_PIN(26, "NFD2_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 102 4, UNIPHIER_PIN_DRV_2BIT,
95372f9d
MY
103 123, UNIPHIER_PIN_PULL_UP),
104 UNIPHIER_PINCTRL_PIN(27, "NFD3_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 105 5, UNIPHIER_PIN_DRV_2BIT,
95372f9d
MY
106 124, UNIPHIER_PIN_PULL_UP),
107 UNIPHIER_PINCTRL_PIN(28, "NFD4_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 108 6, UNIPHIER_PIN_DRV_2BIT,
95372f9d
MY
109 125, UNIPHIER_PIN_PULL_UP),
110 UNIPHIER_PINCTRL_PIN(29, "NFD5_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 111 7, UNIPHIER_PIN_DRV_2BIT,
95372f9d
MY
112 126, UNIPHIER_PIN_PULL_UP),
113 UNIPHIER_PINCTRL_PIN(30, "NFD6_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 114 8, UNIPHIER_PIN_DRV_2BIT,
95372f9d
MY
115 127, UNIPHIER_PIN_PULL_UP),
116 UNIPHIER_PINCTRL_PIN(31, "NFD7_GB", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 117 9, UNIPHIER_PIN_DRV_2BIT,
95372f9d 118 128, UNIPHIER_PIN_PULL_UP),
de7f8e3e 119 UNIPHIER_PINCTRL_PIN(32, "SDCLK", 8,
9eaa98a6 120 10, UNIPHIER_PIN_DRV_2BIT,
95372f9d 121 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 122 UNIPHIER_PINCTRL_PIN(33, "SDCMD", 8,
9eaa98a6 123 11, UNIPHIER_PIN_DRV_2BIT,
95372f9d 124 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 125 UNIPHIER_PINCTRL_PIN(34, "SDDAT0", 8,
9eaa98a6 126 12, UNIPHIER_PIN_DRV_2BIT,
95372f9d 127 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 128 UNIPHIER_PINCTRL_PIN(35, "SDDAT1", 8,
9eaa98a6 129 13, UNIPHIER_PIN_DRV_2BIT,
95372f9d 130 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 131 UNIPHIER_PINCTRL_PIN(36, "SDDAT2", 8,
9eaa98a6 132 14, UNIPHIER_PIN_DRV_2BIT,
95372f9d 133 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 134 UNIPHIER_PINCTRL_PIN(37, "SDDAT3", 8,
9eaa98a6 135 15, UNIPHIER_PIN_DRV_2BIT,
95372f9d 136 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 137 UNIPHIER_PINCTRL_PIN(38, "SDCD", 8,
9eaa98a6 138 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 139 129, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 140 UNIPHIER_PINCTRL_PIN(39, "SDWP", 8,
9eaa98a6 141 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 142 130, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 143 UNIPHIER_PINCTRL_PIN(40, "SDVOLC", 9,
9eaa98a6 144 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 145 131, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 146 UNIPHIER_PINCTRL_PIN(41, "USB0VBUS", 0,
9eaa98a6 147 37, UNIPHIER_PIN_DRV_1BIT,
95372f9d 148 37, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 149 UNIPHIER_PINCTRL_PIN(42, "USB0OD", 0,
9eaa98a6 150 38, UNIPHIER_PIN_DRV_1BIT,
95372f9d 151 38, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 152 UNIPHIER_PINCTRL_PIN(43, "USB1VBUS", 0,
9eaa98a6 153 39, UNIPHIER_PIN_DRV_1BIT,
95372f9d 154 39, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 155 UNIPHIER_PINCTRL_PIN(44, "USB1OD", 0,
9eaa98a6 156 40, UNIPHIER_PIN_DRV_1BIT,
95372f9d 157 40, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 158 UNIPHIER_PINCTRL_PIN(45, "PCRESET", 0,
9eaa98a6 159 41, UNIPHIER_PIN_DRV_1BIT,
95372f9d 160 41, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 161 UNIPHIER_PINCTRL_PIN(46, "PCREG", 0,
9eaa98a6 162 42, UNIPHIER_PIN_DRV_1BIT,
95372f9d 163 42, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 164 UNIPHIER_PINCTRL_PIN(47, "PCCE2", 0,
9eaa98a6 165 43, UNIPHIER_PIN_DRV_1BIT,
95372f9d 166 43, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 167 UNIPHIER_PINCTRL_PIN(48, "PCVS1", 0,
9eaa98a6 168 44, UNIPHIER_PIN_DRV_1BIT,
95372f9d 169 44, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 170 UNIPHIER_PINCTRL_PIN(49, "PCCD2", 0,
9eaa98a6 171 45, UNIPHIER_PIN_DRV_1BIT,
95372f9d 172 45, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 173 UNIPHIER_PINCTRL_PIN(50, "PCCD1", 0,
9eaa98a6 174 46, UNIPHIER_PIN_DRV_1BIT,
95372f9d 175 46, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 176 UNIPHIER_PINCTRL_PIN(51, "PCREADY", 0,
9eaa98a6 177 47, UNIPHIER_PIN_DRV_1BIT,
95372f9d 178 47, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 179 UNIPHIER_PINCTRL_PIN(52, "PCDOE", 0,
9eaa98a6 180 48, UNIPHIER_PIN_DRV_1BIT,
95372f9d 181 48, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 182 UNIPHIER_PINCTRL_PIN(53, "PCCE1", 0,
9eaa98a6 183 49, UNIPHIER_PIN_DRV_1BIT,
95372f9d 184 49, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 185 UNIPHIER_PINCTRL_PIN(54, "PCWE", 0,
9eaa98a6 186 50, UNIPHIER_PIN_DRV_1BIT,
95372f9d 187 50, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 188 UNIPHIER_PINCTRL_PIN(55, "PCOE", 0,
9eaa98a6 189 51, UNIPHIER_PIN_DRV_1BIT,
95372f9d 190 51, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 191 UNIPHIER_PINCTRL_PIN(56, "PCWAIT", 0,
9eaa98a6 192 52, UNIPHIER_PIN_DRV_1BIT,
95372f9d 193 52, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 194 UNIPHIER_PINCTRL_PIN(57, "PCIOWR", 0,
9eaa98a6 195 53, UNIPHIER_PIN_DRV_1BIT,
95372f9d 196 53, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 197 UNIPHIER_PINCTRL_PIN(58, "PCIORD", 0,
9eaa98a6 198 54, UNIPHIER_PIN_DRV_1BIT,
95372f9d 199 54, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 200 UNIPHIER_PINCTRL_PIN(59, "HS0DIN0", 0,
9eaa98a6 201 55, UNIPHIER_PIN_DRV_1BIT,
95372f9d 202 55, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 203 UNIPHIER_PINCTRL_PIN(60, "HS0DIN1", 0,
9eaa98a6 204 56, UNIPHIER_PIN_DRV_1BIT,
95372f9d 205 56, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 206 UNIPHIER_PINCTRL_PIN(61, "HS0DIN2", 0,
9eaa98a6 207 57, UNIPHIER_PIN_DRV_1BIT,
95372f9d 208 57, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 209 UNIPHIER_PINCTRL_PIN(62, "HS0DIN3", 0,
9eaa98a6 210 58, UNIPHIER_PIN_DRV_1BIT,
95372f9d 211 58, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 212 UNIPHIER_PINCTRL_PIN(63, "HS0DIN4", 0,
9eaa98a6 213 59, UNIPHIER_PIN_DRV_1BIT,
95372f9d 214 59, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 215 UNIPHIER_PINCTRL_PIN(64, "HS0DIN5", 0,
9eaa98a6 216 60, UNIPHIER_PIN_DRV_1BIT,
95372f9d 217 60, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 218 UNIPHIER_PINCTRL_PIN(65, "HS0DIN6", 0,
9eaa98a6 219 61, UNIPHIER_PIN_DRV_1BIT,
95372f9d 220 61, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 221 UNIPHIER_PINCTRL_PIN(66, "HS0DIN7", 0,
9eaa98a6 222 62, UNIPHIER_PIN_DRV_1BIT,
95372f9d 223 62, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 224 UNIPHIER_PINCTRL_PIN(67, "HS0BCLKIN", 0,
9eaa98a6 225 63, UNIPHIER_PIN_DRV_1BIT,
95372f9d 226 63, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 227 UNIPHIER_PINCTRL_PIN(68, "HS0VALIN", 0,
9eaa98a6 228 64, UNIPHIER_PIN_DRV_1BIT,
95372f9d 229 64, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 230 UNIPHIER_PINCTRL_PIN(69, "HS0SYNCIN", 0,
9eaa98a6 231 65, UNIPHIER_PIN_DRV_1BIT,
95372f9d 232 65, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 233 UNIPHIER_PINCTRL_PIN(70, "HSDOUT0", 0,
9eaa98a6 234 66, UNIPHIER_PIN_DRV_1BIT,
95372f9d 235 66, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 236 UNIPHIER_PINCTRL_PIN(71, "HSDOUT1", 0,
9eaa98a6 237 67, UNIPHIER_PIN_DRV_1BIT,
95372f9d 238 67, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 239 UNIPHIER_PINCTRL_PIN(72, "HSDOUT2", 0,
9eaa98a6 240 68, UNIPHIER_PIN_DRV_1BIT,
95372f9d 241 68, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 242 UNIPHIER_PINCTRL_PIN(73, "HSDOUT3", 0,
9eaa98a6 243 69, UNIPHIER_PIN_DRV_1BIT,
95372f9d 244 69, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 245 UNIPHIER_PINCTRL_PIN(74, "HSDOUT4", 0,
9eaa98a6 246 70, UNIPHIER_PIN_DRV_1BIT,
95372f9d 247 70, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 248 UNIPHIER_PINCTRL_PIN(75, "HSDOUT5", 0,
9eaa98a6 249 71, UNIPHIER_PIN_DRV_1BIT,
95372f9d 250 71, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 251 UNIPHIER_PINCTRL_PIN(76, "HSDOUT6", 0,
9eaa98a6 252 72, UNIPHIER_PIN_DRV_1BIT,
95372f9d 253 72, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 254 UNIPHIER_PINCTRL_PIN(77, "HSDOUT7", 0,
9eaa98a6 255 73, UNIPHIER_PIN_DRV_1BIT,
95372f9d 256 73, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 257 UNIPHIER_PINCTRL_PIN(78, "HSBCLKOUT", 0,
9eaa98a6 258 74, UNIPHIER_PIN_DRV_1BIT,
95372f9d 259 74, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 260 UNIPHIER_PINCTRL_PIN(79, "HSVALOUT", 0,
9eaa98a6 261 75, UNIPHIER_PIN_DRV_1BIT,
95372f9d 262 75, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 263 UNIPHIER_PINCTRL_PIN(80, "HSSYNCOUT", 0,
9eaa98a6 264 76, UNIPHIER_PIN_DRV_1BIT,
95372f9d 265 76, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 266 UNIPHIER_PINCTRL_PIN(81, "HS1DIN0", 0,
9eaa98a6 267 77, UNIPHIER_PIN_DRV_1BIT,
95372f9d 268 77, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 269 UNIPHIER_PINCTRL_PIN(82, "HS1DIN1", 0,
9eaa98a6 270 78, UNIPHIER_PIN_DRV_1BIT,
95372f9d 271 78, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 272 UNIPHIER_PINCTRL_PIN(83, "HS1DIN2", 0,
9eaa98a6 273 79, UNIPHIER_PIN_DRV_1BIT,
95372f9d 274 79, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 275 UNIPHIER_PINCTRL_PIN(84, "HS1DIN3", 0,
9eaa98a6 276 80, UNIPHIER_PIN_DRV_1BIT,
95372f9d 277 80, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 278 UNIPHIER_PINCTRL_PIN(85, "HS1DIN4", 0,
9eaa98a6 279 81, UNIPHIER_PIN_DRV_1BIT,
95372f9d 280 81, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 281 UNIPHIER_PINCTRL_PIN(86, "HS1DIN5", 0,
9eaa98a6 282 82, UNIPHIER_PIN_DRV_1BIT,
95372f9d 283 82, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 284 UNIPHIER_PINCTRL_PIN(87, "HS1DIN6", 0,
9eaa98a6 285 83, UNIPHIER_PIN_DRV_1BIT,
95372f9d 286 83, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 287 UNIPHIER_PINCTRL_PIN(88, "HS1DIN7", 0,
9eaa98a6 288 84, UNIPHIER_PIN_DRV_1BIT,
95372f9d 289 84, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 290 UNIPHIER_PINCTRL_PIN(89, "HS1BCLKIN", 0,
9eaa98a6 291 85, UNIPHIER_PIN_DRV_1BIT,
95372f9d 292 85, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 293 UNIPHIER_PINCTRL_PIN(90, "HS1VALIN", 0,
9eaa98a6 294 86, UNIPHIER_PIN_DRV_1BIT,
95372f9d 295 86, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 296 UNIPHIER_PINCTRL_PIN(91, "HS1SYNCIN", 0,
9eaa98a6 297 87, UNIPHIER_PIN_DRV_1BIT,
95372f9d 298 87, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 299 UNIPHIER_PINCTRL_PIN(92, "AGCI", 3,
9eaa98a6 300 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 301 132, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 302 UNIPHIER_PINCTRL_PIN(93, "AGCR", 4,
9eaa98a6 303 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 304 133, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 305 UNIPHIER_PINCTRL_PIN(94, "AGCBS", 5,
9eaa98a6 306 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 307 134, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 308 UNIPHIER_PINCTRL_PIN(95, "IECOUT", 0,
9eaa98a6 309 88, UNIPHIER_PIN_DRV_1BIT,
95372f9d 310 88, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 311 UNIPHIER_PINCTRL_PIN(96, "ASMCK", 0,
9eaa98a6 312 89, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
313 89, UNIPHIER_PIN_PULL_DOWN),
314 UNIPHIER_PINCTRL_PIN(97, "ABCKO", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 315 90, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
316 90, UNIPHIER_PIN_PULL_DOWN),
317 UNIPHIER_PINCTRL_PIN(98, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 318 91, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
319 91, UNIPHIER_PIN_PULL_DOWN),
320 UNIPHIER_PINCTRL_PIN(99, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 321 92, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
322 92, UNIPHIER_PIN_PULL_DOWN),
323 UNIPHIER_PINCTRL_PIN(100, "ASDOUT1", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 324 93, UNIPHIER_PIN_DRV_1BIT,
95372f9d 325 93, UNIPHIER_PIN_PULL_UP),
de7f8e3e 326 UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0,
9eaa98a6 327 94, UNIPHIER_PIN_DRV_1BIT,
95372f9d 328 94, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 329 UNIPHIER_PINCTRL_PIN(102, "SDA0", 10,
9eaa98a6 330 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 331 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 332 UNIPHIER_PINCTRL_PIN(103, "SCL0", 10,
9eaa98a6 333 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 334 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 335 UNIPHIER_PINCTRL_PIN(104, "SDA1", 11,
9eaa98a6 336 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 337 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 338 UNIPHIER_PINCTRL_PIN(105, "SCL1", 11,
9eaa98a6 339 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 340 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 341 UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", 12,
9eaa98a6 342 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 343 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 344 UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", 12,
9eaa98a6 345 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 346 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 347 UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", 13,
9eaa98a6 348 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d 349 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 350 UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", 13,
9eaa98a6 351 -1, UNIPHIER_PIN_DRV_FIXED4,
95372f9d
MY
352 -1, UNIPHIER_PIN_PULL_NONE),
353 UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 354 95, UNIPHIER_PIN_DRV_1BIT,
95372f9d
MY
355 95, UNIPHIER_PIN_PULL_UP),
356 UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE,
9eaa98a6 357 96, UNIPHIER_PIN_DRV_1BIT,
95372f9d 358 96, UNIPHIER_PIN_PULL_UP),
de7f8e3e 359 UNIPHIER_PINCTRL_PIN(112, "SBO1", 0,
9eaa98a6 360 97, UNIPHIER_PIN_DRV_1BIT,
95372f9d 361 97, UNIPHIER_PIN_PULL_UP),
de7f8e3e 362 UNIPHIER_PINCTRL_PIN(113, "SBI1", 0,
9eaa98a6 363 98, UNIPHIER_PIN_DRV_1BIT,
95372f9d 364 98, UNIPHIER_PIN_PULL_UP),
de7f8e3e 365 UNIPHIER_PINCTRL_PIN(114, "TXD1", 0,
9eaa98a6 366 99, UNIPHIER_PIN_DRV_1BIT,
95372f9d 367 99, UNIPHIER_PIN_PULL_UP),
de7f8e3e 368 UNIPHIER_PINCTRL_PIN(115, "RXD1", 0,
9eaa98a6 369 100, UNIPHIER_PIN_DRV_1BIT,
95372f9d 370 100, UNIPHIER_PIN_PULL_UP),
de7f8e3e 371 UNIPHIER_PINCTRL_PIN(116, "HIN", 1,
9eaa98a6 372 -1, UNIPHIER_PIN_DRV_FIXED5,
95372f9d 373 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 374 UNIPHIER_PINCTRL_PIN(117, "VIN", 2,
9eaa98a6 375 -1, UNIPHIER_PIN_DRV_FIXED5,
95372f9d 376 -1, UNIPHIER_PIN_PULL_NONE),
de7f8e3e 377 UNIPHIER_PINCTRL_PIN(118, "TCON0", 0,
9eaa98a6 378 101, UNIPHIER_PIN_DRV_1BIT,
95372f9d 379 101, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 380 UNIPHIER_PINCTRL_PIN(119, "TCON1", 0,
9eaa98a6 381 102, UNIPHIER_PIN_DRV_1BIT,
95372f9d 382 102, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 383 UNIPHIER_PINCTRL_PIN(120, "TCON2", 0,
9eaa98a6 384 103, UNIPHIER_PIN_DRV_1BIT,
95372f9d 385 103, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 386 UNIPHIER_PINCTRL_PIN(121, "TCON3", 0,
9eaa98a6 387 104, UNIPHIER_PIN_DRV_1BIT,
95372f9d 388 104, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 389 UNIPHIER_PINCTRL_PIN(122, "TCON4", 0,
9eaa98a6 390 105, UNIPHIER_PIN_DRV_1BIT,
95372f9d 391 105, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 392 UNIPHIER_PINCTRL_PIN(123, "TCON5", 0,
9eaa98a6 393 106, UNIPHIER_PIN_DRV_1BIT,
95372f9d 394 106, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 395 UNIPHIER_PINCTRL_PIN(124, "TCON6", 0,
9eaa98a6 396 107, UNIPHIER_PIN_DRV_1BIT,
95372f9d 397 107, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 398 UNIPHIER_PINCTRL_PIN(125, "TCON7", 0,
9eaa98a6 399 108, UNIPHIER_PIN_DRV_1BIT,
95372f9d 400 108, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 401 UNIPHIER_PINCTRL_PIN(126, "TCON8", 0,
9eaa98a6 402 109, UNIPHIER_PIN_DRV_1BIT,
95372f9d 403 109, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 404 UNIPHIER_PINCTRL_PIN(127, "PWMA", 0,
9eaa98a6 405 110, UNIPHIER_PIN_DRV_1BIT,
95372f9d 406 110, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 407 UNIPHIER_PINCTRL_PIN(128, "XIRQ0", 0,
9eaa98a6 408 111, UNIPHIER_PIN_DRV_1BIT,
95372f9d 409 111, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 410 UNIPHIER_PINCTRL_PIN(129, "XIRQ1", 0,
9eaa98a6 411 112, UNIPHIER_PIN_DRV_1BIT,
95372f9d 412 112, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 413 UNIPHIER_PINCTRL_PIN(130, "XIRQ2", 0,
9eaa98a6 414 113, UNIPHIER_PIN_DRV_1BIT,
95372f9d 415 113, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 416 UNIPHIER_PINCTRL_PIN(131, "XIRQ3", 0,
9eaa98a6 417 114, UNIPHIER_PIN_DRV_1BIT,
95372f9d 418 114, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 419 UNIPHIER_PINCTRL_PIN(132, "XIRQ4", 0,
9eaa98a6 420 115, UNIPHIER_PIN_DRV_1BIT,
95372f9d 421 115, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 422 UNIPHIER_PINCTRL_PIN(133, "XIRQ5", 0,
9eaa98a6 423 116, UNIPHIER_PIN_DRV_1BIT,
95372f9d 424 116, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 425 UNIPHIER_PINCTRL_PIN(134, "XIRQ6", 0,
9eaa98a6 426 117, UNIPHIER_PIN_DRV_1BIT,
95372f9d 427 117, UNIPHIER_PIN_PULL_DOWN),
de7f8e3e 428 UNIPHIER_PINCTRL_PIN(135, "XIRQ7", 0,
9eaa98a6 429 118, UNIPHIER_PIN_DRV_1BIT,
95372f9d 430 118, UNIPHIER_PIN_PULL_DOWN),
1e359ebe
MY
431 /* dedicated pins */
432 UNIPHIER_PINCTRL_PIN(136, "ED0", -1,
433 0, UNIPHIER_PIN_DRV_1BIT,
434 0, UNIPHIER_PIN_PULL_DOWN),
435 UNIPHIER_PINCTRL_PIN(137, "ED1", -1,
436 1, UNIPHIER_PIN_DRV_1BIT,
437 1, UNIPHIER_PIN_PULL_DOWN),
438 UNIPHIER_PINCTRL_PIN(138, "ED2", -1,
439 2, UNIPHIER_PIN_DRV_1BIT,
440 2, UNIPHIER_PIN_PULL_DOWN),
441 UNIPHIER_PINCTRL_PIN(139, "ED3", -1,
442 3, UNIPHIER_PIN_DRV_1BIT,
443 3, UNIPHIER_PIN_PULL_DOWN),
444 UNIPHIER_PINCTRL_PIN(140, "ED4", -1,
445 4, UNIPHIER_PIN_DRV_1BIT,
446 4, UNIPHIER_PIN_PULL_DOWN),
447 UNIPHIER_PINCTRL_PIN(141, "ED5", -1,
448 5, UNIPHIER_PIN_DRV_1BIT,
449 5, UNIPHIER_PIN_PULL_DOWN),
450 UNIPHIER_PINCTRL_PIN(142, "ED6", -1,
451 6, UNIPHIER_PIN_DRV_1BIT,
452 6, UNIPHIER_PIN_PULL_DOWN),
453 UNIPHIER_PINCTRL_PIN(143, "ED7", -1,
454 7, UNIPHIER_PIN_DRV_1BIT,
455 7, UNIPHIER_PIN_PULL_DOWN),
456 UNIPHIER_PINCTRL_PIN(144, "XERWE0", -1,
457 8, UNIPHIER_PIN_DRV_1BIT,
458 8, UNIPHIER_PIN_PULL_UP),
459 UNIPHIER_PINCTRL_PIN(145, "XERWE1", -1,
460 9, UNIPHIER_PIN_DRV_1BIT,
461 9, UNIPHIER_PIN_PULL_UP),
462 UNIPHIER_PINCTRL_PIN(146, "ERXW", -1,
463 10, UNIPHIER_PIN_DRV_1BIT,
464 10, UNIPHIER_PIN_PULL_UP),
465 UNIPHIER_PINCTRL_PIN(147, "ES0", -1,
466 11, UNIPHIER_PIN_DRV_1BIT,
467 11, UNIPHIER_PIN_PULL_UP),
468 UNIPHIER_PINCTRL_PIN(148, "ES1", -1,
469 12, UNIPHIER_PIN_DRV_1BIT,
470 12, UNIPHIER_PIN_PULL_UP),
471 UNIPHIER_PINCTRL_PIN(149, "ES2", -1,
472 13, UNIPHIER_PIN_DRV_1BIT,
473 13, UNIPHIER_PIN_PULL_UP),
474 UNIPHIER_PINCTRL_PIN(150, "XECS1", -1,
475 14, UNIPHIER_PIN_DRV_1BIT,
476 14, UNIPHIER_PIN_PULL_DOWN),
95372f9d
MY
477};
478
479static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27};
39ec9ace 480static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1};
95372f9d 481static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31};
39ec9ace 482static const int emmc_dat8_muxvals[] = {1, 1, 1, 1};
1e359ab1
MY
483static const unsigned ether_mii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14,
484 61, 63, 64, 65, 66, 67, 68};
485static const int ether_mii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
486 13, 13, 27, 27, 27, 27, 27, 27, 27};
487static const unsigned ether_rmii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13,
488 14};
489static const int ether_rmii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13,
490 13, 13, 13};
95372f9d 491static const unsigned i2c0_pins[] = {102, 103};
39ec9ace 492static const int i2c0_muxvals[] = {0, 0};
95372f9d 493static const unsigned i2c1_pins[] = {104, 105};
39ec9ace 494static const int i2c1_muxvals[] = {0, 0};
95372f9d 495static const unsigned i2c2_pins[] = {108, 109};
39ec9ace 496static const int i2c2_muxvals[] = {2, 2};
95372f9d 497static const unsigned i2c3_pins[] = {108, 109};
39ec9ace 498static const int i2c3_muxvals[] = {3, 3};
95372f9d
MY
499static const unsigned nand_pins[] = {15, 16, 17, 18, 19, 20, 21, 24, 25, 26,
500 27, 28, 29, 30, 31};
39ec9ace 501static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
95372f9d 502static const unsigned nand_cs1_pins[] = {22, 23};
39ec9ace 503static const int nand_cs1_muxvals[] = {0, 0};
e86c6206 504static const unsigned sd_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40};
39ec9ace 505static const int sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
a2456a77
MY
506static const unsigned system_bus_pins[] = {136, 137, 138, 139, 140, 141, 142,
507 143, 144, 145, 146, 147, 148, 149};
508static const int system_bus_muxvals[] = {-1, -1, -1, -1, -1, -1, -1, -1, -1,
509 -1, -1, -1, -1, -1};
510static const unsigned system_bus_cs1_pins[] = {150};
511static const int system_bus_cs1_muxvals[] = {-1};
512static const unsigned system_bus_cs2_pins[] = {10};
513static const int system_bus_cs2_muxvals[] = {1};
514static const unsigned system_bus_cs3_pins[] = {11};
515static const int system_bus_cs3_muxvals[] = {1};
516static const unsigned system_bus_cs4_pins[] = {12};
517static const int system_bus_cs4_muxvals[] = {1};
518static const unsigned system_bus_cs5_pins[] = {13};
519static const int system_bus_cs5_muxvals[] = {1};
95372f9d 520static const unsigned uart0_pins[] = {70, 71};
39ec9ace 521static const int uart0_muxvals[] = {3, 3};
95372f9d 522static const unsigned uart1_pins[] = {114, 115};
39ec9ace 523static const int uart1_muxvals[] = {0, 0};
95372f9d 524static const unsigned uart2_pins[] = {112, 113};
39ec9ace 525static const int uart2_muxvals[] = {1, 1};
95372f9d 526static const unsigned uart3_pins[] = {110, 111};
39ec9ace 527static const int uart3_muxvals[] = {1, 1};
95372f9d 528static const unsigned usb0_pins[] = {41, 42};
39ec9ace 529static const int usb0_muxvals[] = {0, 0};
95372f9d 530static const unsigned usb1_pins[] = {43, 44};
39ec9ace 531static const int usb1_muxvals[] = {0, 0};
95372f9d 532static const unsigned usb2_pins[] = {114, 115};
39ec9ace 533static const int usb2_muxvals[] = {1, 1};
95372f9d
MY
534static const unsigned port_range0_pins[] = {
535 0, 1, 2, 3, 4, 5, 6, 7, /* PORT0x */
536 8, 9, 10, 11, 12, 13, 14, 15, /* PORT1x */
537 32, 33, 34, 35, 36, 37, 38, 39, /* PORT2x */
538 59, 60, 61, 62, 63, 64, 65, 66, /* PORT3x */
539 95, 96, 97, 98, 99, 100, 101, 57, /* PORT4x */
540 70, 71, 72, 73, 74, 75, 76, 77, /* PORT5x */
541 81, 83, 84, 85, 86, 89, 90, 91, /* PORT6x */
542 118, 119, 120, 121, 122, 53, 54, 55, /* PORT7x */
543 41, 42, 43, 44, 79, 80, 18, 19, /* PORT8x */
544 110, 111, 112, 113, 114, 115, 16, 17, /* PORT9x */
545 40, 67, 68, 69, 78, 92, 93, 94, /* PORT10x */
546 48, 49, 46, 45, 123, 124, 125, 126, /* PORT11x */
547 47, 127, 20, 56, 22, /* PORT120-124 */
548};
39ec9ace 549static const int port_range0_muxvals[] = {
95372f9d
MY
550 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
551 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
552 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
553 15, 15, 15, 15, 15, 15, 15, 15, /* PORT3x */
554 15, 15, 15, 15, 15, 15, 15, 15, /* PORT4x */
555 15, 15, 15, 15, 15, 15, 15, 15, /* PORT5x */
556 15, 15, 15, 15, 15, 15, 15, 15, /* PORT6x */
557 15, 15, 15, 15, 15, 15, 15, 15, /* PORT7x */
558 15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */
559 15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */
560 15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */
561 15, 15, 15, 15, 15, 15, 15, 15, /* PORT11x */
562 15, 15, 15, 15, 15, /* PORT120-124 */
563};
564static const unsigned port_range1_pins[] = {
565 116, 117, /* PORT130-131 */
566};
39ec9ace 567static const int port_range1_muxvals[] = {
95372f9d
MY
568 15, 15, /* PORT130-131 */
569};
570static const unsigned port_range2_pins[] = {
571 102, 103, 104, 105, 106, 107, 108, 109, /* PORT14x */
572};
39ec9ace 573static const int port_range2_muxvals[] = {
95372f9d
MY
574 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */
575};
576static const unsigned port_range3_pins[] = {
577 23, /* PORT166 */
578};
39ec9ace 579static const int port_range3_muxvals[] = {
95372f9d
MY
580 15, /* PORT166 */
581};
582static const unsigned xirq_range0_pins[] = {
583 128, 129, 130, 131, 132, 133, 134, 135, /* XIRQ0-7 */
584 82, 87, 88, 50, 51, /* XIRQ8-12 */
585};
39ec9ace 586static const int xirq_range0_muxvals[] = {
95372f9d
MY
587 0, 0, 0, 0, 0, 0, 0, 0, /* XIRQ0-7 */
588 14, 14, 14, 14, 14, /* XIRQ8-12 */
589};
590static const unsigned xirq_range1_pins[] = {
591 52, 58, /* XIRQ14-15 */
592};
39ec9ace 593static const int xirq_range1_muxvals[] = {
95372f9d
MY
594 14, 14, /* XIRQ14-15 */
595};
596
a4c6052b 597static const struct uniphier_pinctrl_group uniphier_sld8_groups[] = {
95372f9d
MY
598 UNIPHIER_PINCTRL_GROUP(emmc),
599 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
1e359ab1
MY
600 UNIPHIER_PINCTRL_GROUP(ether_mii),
601 UNIPHIER_PINCTRL_GROUP(ether_rmii),
95372f9d
MY
602 UNIPHIER_PINCTRL_GROUP(i2c0),
603 UNIPHIER_PINCTRL_GROUP(i2c1),
604 UNIPHIER_PINCTRL_GROUP(i2c2),
605 UNIPHIER_PINCTRL_GROUP(i2c3),
606 UNIPHIER_PINCTRL_GROUP(nand),
607 UNIPHIER_PINCTRL_GROUP(nand_cs1),
e86c6206 608 UNIPHIER_PINCTRL_GROUP(sd),
a2456a77
MY
609 UNIPHIER_PINCTRL_GROUP(system_bus),
610 UNIPHIER_PINCTRL_GROUP(system_bus_cs1),
611 UNIPHIER_PINCTRL_GROUP(system_bus_cs2),
612 UNIPHIER_PINCTRL_GROUP(system_bus_cs3),
613 UNIPHIER_PINCTRL_GROUP(system_bus_cs4),
614 UNIPHIER_PINCTRL_GROUP(system_bus_cs5),
95372f9d
MY
615 UNIPHIER_PINCTRL_GROUP(uart0),
616 UNIPHIER_PINCTRL_GROUP(uart1),
617 UNIPHIER_PINCTRL_GROUP(uart2),
618 UNIPHIER_PINCTRL_GROUP(uart3),
619 UNIPHIER_PINCTRL_GROUP(usb0),
620 UNIPHIER_PINCTRL_GROUP(usb1),
621 UNIPHIER_PINCTRL_GROUP(usb2),
622 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range0),
623 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range1),
624 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range2),
625 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range3),
626 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_range0),
627 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_range1),
628 UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range0, 0),
629 UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range0, 1),
630 UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range0, 2),
631 UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range0, 3),
632 UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range0, 4),
633 UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range0, 5),
634 UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range0, 6),
635 UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range0, 7),
636 UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range0, 8),
637 UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range0, 9),
638 UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range0, 10),
639 UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range0, 11),
640 UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range0, 12),
641 UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range0, 13),
642 UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range0, 14),
643 UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range0, 15),
644 UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range0, 16),
645 UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range0, 17),
646 UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range0, 18),
647 UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range0, 19),
648 UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range0, 20),
649 UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range0, 21),
650 UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range0, 22),
651 UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range0, 23),
652 UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range0, 24),
653 UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range0, 25),
654 UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range0, 26),
655 UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range0, 27),
656 UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range0, 28),
657 UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range0, 29),
658 UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range0, 30),
659 UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range0, 31),
660 UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range0, 32),
661 UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range0, 33),
662 UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range0, 34),
663 UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range0, 35),
664 UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range0, 36),
665 UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range0, 37),
666 UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range0, 38),
667 UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range0, 39),
668 UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range0, 40),
669 UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range0, 41),
670 UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range0, 42),
671 UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range0, 43),
672 UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range0, 44),
673 UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range0, 45),
674 UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range0, 46),
675 UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range0, 47),
676 UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range0, 48),
677 UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range0, 49),
678 UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range0, 50),
679 UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range0, 51),
680 UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range0, 52),
681 UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range0, 53),
682 UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range0, 54),
683 UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range0, 55),
684 UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range0, 56),
685 UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range0, 57),
686 UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range0, 58),
687 UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range0, 59),
688 UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range0, 60),
689 UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range0, 61),
690 UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range0, 62),
691 UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range0, 63),
692 UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range0, 64),
693 UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range0, 65),
694 UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range0, 66),
695 UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range0, 67),
696 UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range0, 68),
697 UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range0, 69),
698 UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range0, 70),
699 UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range0, 71),
700 UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range0, 72),
701 UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range0, 73),
702 UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range0, 74),
703 UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range0, 75),
704 UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range0, 76),
705 UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range0, 77),
706 UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range0, 78),
707 UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range0, 79),
708 UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range0, 80),
709 UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range0, 81),
710 UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range0, 82),
711 UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range0, 83),
712 UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range0, 84),
713 UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range0, 85),
714 UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range0, 86),
715 UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range0, 87),
716 UNIPHIER_PINCTRL_GROUP_SINGLE(port110, port_range0, 88),
717 UNIPHIER_PINCTRL_GROUP_SINGLE(port111, port_range0, 89),
718 UNIPHIER_PINCTRL_GROUP_SINGLE(port112, port_range0, 90),
719 UNIPHIER_PINCTRL_GROUP_SINGLE(port113, port_range0, 91),
720 UNIPHIER_PINCTRL_GROUP_SINGLE(port114, port_range0, 92),
721 UNIPHIER_PINCTRL_GROUP_SINGLE(port115, port_range0, 93),
722 UNIPHIER_PINCTRL_GROUP_SINGLE(port116, port_range0, 94),
723 UNIPHIER_PINCTRL_GROUP_SINGLE(port117, port_range0, 95),
724 UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range0, 96),
725 UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range0, 97),
726 UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range0, 98),
727 UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range0, 99),
728 UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range0, 100),
729 UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range1, 0),
730 UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range1, 1),
731 UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range2, 0),
732 UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range2, 1),
733 UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range2, 2),
734 UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range2, 3),
735 UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range2, 4),
736 UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range2, 5),
737 UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range2, 6),
738 UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range2, 7),
739 UNIPHIER_PINCTRL_GROUP_SINGLE(port166, port_range3, 0),
740 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq_range0, 0),
741 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq_range0, 1),
742 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq_range0, 2),
743 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3, xirq_range0, 3),
744 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4, xirq_range0, 4),
745 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5, xirq_range0, 5),
746 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6, xirq_range0, 6),
747 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7, xirq_range0, 7),
748 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8, xirq_range0, 8),
749 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9, xirq_range0, 9),
750 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10, xirq_range0, 10),
751 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11, xirq_range0, 11),
752 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq12, xirq_range0, 12),
753 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14, xirq_range1, 0),
754 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq15, xirq_range1, 1),
755};
756
757static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
1e359ab1
MY
758static const char * const ether_mii_groups[] = {"ether_mii"};
759static const char * const ether_rmii_groups[] = {"ether_rmii"};
95372f9d
MY
760static const char * const i2c0_groups[] = {"i2c0"};
761static const char * const i2c1_groups[] = {"i2c1"};
762static const char * const i2c2_groups[] = {"i2c2"};
763static const char * const i2c3_groups[] = {"i2c3"};
764static const char * const nand_groups[] = {"nand", "nand_cs1"};
e86c6206 765static const char * const sd_groups[] = {"sd"};
a2456a77
MY
766static const char * const system_bus_groups[] = {"system_bus",
767 "system_bus_cs1",
768 "system_bus_cs2",
769 "system_bus_cs3",
770 "system_bus_cs4",
771 "system_bus_cs5"};
95372f9d
MY
772static const char * const uart0_groups[] = {"uart0"};
773static const char * const uart1_groups[] = {"uart1"};
774static const char * const uart2_groups[] = {"uart2"};
775static const char * const uart3_groups[] = {"uart3"};
776static const char * const usb0_groups[] = {"usb0"};
777static const char * const usb1_groups[] = {"usb1"};
778static const char * const usb2_groups[] = {"usb2"};
779static const char * const port_groups[] = {
780 "port00", "port01", "port02", "port03",
781 "port04", "port05", "port06", "port07",
782 "port10", "port11", "port12", "port13",
783 "port14", "port15", "port16", "port17",
784 "port20", "port21", "port22", "port23",
785 "port24", "port25", "port26", "port27",
786 "port30", "port31", "port32", "port33",
787 "port34", "port35", "port36", "port37",
788 "port40", "port41", "port42", "port43",
789 "port44", "port45", "port46", "port47",
790 "port50", "port51", "port52", "port53",
791 "port54", "port55", "port56", "port57",
792 "port60", "port61", "port62", "port63",
793 "port64", "port65", "port66", "port67",
794 "port70", "port71", "port72", "port73",
795 "port74", "port75", "port76", "port77",
796 "port80", "port81", "port82", "port83",
797 "port84", "port85", "port86", "port87",
798 "port90", "port91", "port92", "port93",
799 "port94", "port95", "port96", "port97",
800 "port100", "port101", "port102", "port103",
801 "port104", "port105", "port106", "port107",
802 "port110", "port111", "port112", "port113",
803 "port114", "port115", "port116", "port117",
804 "port120", "port121", "port122", "port123",
805 "port124", "port125", "port126", "port127",
806 "port130", "port131", "port132", "port133",
807 "port134", "port135", "port136", "port137",
808 "port140", "port141", "port142", "port143",
809 "port144", "port145", "port146", "port147",
810 /* port150-164 missing */
811 /* none */ "port165",
812};
813static const char * const xirq_groups[] = {
814 "xirq0", "xirq1", "xirq2", "xirq3",
815 "xirq4", "xirq5", "xirq6", "xirq7",
816 "xirq8", "xirq9", "xirq10", "xirq11",
817 "xirq12", /* none*/ "xirq14", "xirq15",
818};
819
a4c6052b 820static const struct uniphier_pinmux_function uniphier_sld8_functions[] = {
95372f9d 821 UNIPHIER_PINMUX_FUNCTION(emmc),
1e359ab1
MY
822 UNIPHIER_PINMUX_FUNCTION(ether_mii),
823 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
95372f9d
MY
824 UNIPHIER_PINMUX_FUNCTION(i2c0),
825 UNIPHIER_PINMUX_FUNCTION(i2c1),
826 UNIPHIER_PINMUX_FUNCTION(i2c2),
827 UNIPHIER_PINMUX_FUNCTION(i2c3),
828 UNIPHIER_PINMUX_FUNCTION(nand),
e86c6206 829 UNIPHIER_PINMUX_FUNCTION(sd),
a2456a77 830 UNIPHIER_PINMUX_FUNCTION(system_bus),
95372f9d
MY
831 UNIPHIER_PINMUX_FUNCTION(uart0),
832 UNIPHIER_PINMUX_FUNCTION(uart1),
833 UNIPHIER_PINMUX_FUNCTION(uart2),
834 UNIPHIER_PINMUX_FUNCTION(uart3),
835 UNIPHIER_PINMUX_FUNCTION(usb0),
836 UNIPHIER_PINMUX_FUNCTION(usb1),
837 UNIPHIER_PINMUX_FUNCTION(usb2),
838 UNIPHIER_PINMUX_FUNCTION(port),
839 UNIPHIER_PINMUX_FUNCTION(xirq),
840};
841
a4c6052b 842static struct uniphier_pinctrl_socdata uniphier_sld8_pindata = {
fc78a566
MY
843 .pins = uniphier_sld8_pins,
844 .npins = ARRAY_SIZE(uniphier_sld8_pins),
a4c6052b
MY
845 .groups = uniphier_sld8_groups,
846 .groups_count = ARRAY_SIZE(uniphier_sld8_groups),
847 .functions = uniphier_sld8_functions,
848 .functions_count = ARRAY_SIZE(uniphier_sld8_functions),
c2ebf475 849 .caps = 0,
95372f9d
MY
850};
851
a4c6052b 852static int uniphier_sld8_pinctrl_probe(struct platform_device *pdev)
95372f9d 853{
fc78a566 854 return uniphier_pinctrl_probe(pdev, &uniphier_sld8_pindata);
95372f9d
MY
855}
856
a4c6052b 857static const struct of_device_id uniphier_sld8_pinctrl_match[] = {
3e030b0b 858 { .compatible = "socionext,uniphier-sld8-pinctrl" },
95372f9d
MY
859 { .compatible = "socionext,ph1-sld8-pinctrl" },
860 { /* sentinel */ }
861};
a4c6052b 862MODULE_DEVICE_TABLE(of, uniphier_sld8_pinctrl_match);
95372f9d 863
a4c6052b
MY
864static struct platform_driver uniphier_sld8_pinctrl_driver = {
865 .probe = uniphier_sld8_pinctrl_probe,
95372f9d 866 .driver = {
4109508a 867 .name = "uniphier-sld8-pinctrl",
a4c6052b 868 .of_match_table = uniphier_sld8_pinctrl_match,
95372f9d
MY
869 },
870};
a4c6052b 871module_platform_driver(uniphier_sld8_pinctrl_driver);
95372f9d
MY
872
873MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>");
874MODULE_DESCRIPTION("UniPhier PH1-sLD8 pinctrl driver");
875MODULE_LICENSE("GPL");
This page took 0.119553 seconds and 5 git commands to generate.