Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: Add pinctrl support to exynos5410

Add the required pin configuration support to Exynos5410 using pinctrl
interface.

Signed-off-by: Hakjoo Kim <ruppi.kim@hardkernel.com>
[AF: Rebased, style changes]
Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Tested-by: Pavel Fedin <p.fedin@samsung.com>
[k.kozlowski: Move pinctrl nodes into soc node]
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

authored by

Hakjoo Kim and committed by
Krzysztof Kozlowski
1eca825f 92e963f5

+442
+406
arch/arm/boot/dts/exynos5410-pinctrl.dtsi
··· 1 + /* 2 + * Exynos5410 SoC pin-mux and pin-config device tree source 3 + * 4 + * Copyright (c) 2013 Hardkernel Co., Ltd. 5 + * http://www.hardkernel.com 6 + * 7 + * This program is free software; you can redistribute it and/or modify 8 + * it under the terms of the GNU General Public License version 2 as 9 + * published by the Free Software Foundation. 10 + */ 11 + 12 + &pinctrl_0 { 13 + gpa0: gpa0 { 14 + gpio-controller; 15 + #gpio-cells = <2>; 16 + 17 + interrupt-controller; 18 + #interrupt-cells = <2>; 19 + }; 20 + 21 + gpa1: gpa1 { 22 + gpio-controller; 23 + #gpio-cells = <2>; 24 + 25 + interrupt-controller; 26 + #interrupt-cells = <2>; 27 + }; 28 + 29 + gpa2: gpa2 { 30 + gpio-controller; 31 + #gpio-cells = <2>; 32 + 33 + interrupt-controller; 34 + #interrupt-cells = <2>; 35 + }; 36 + 37 + gpb0: gpb0 { 38 + gpio-controller; 39 + #gpio-cells = <2>; 40 + 41 + interrupt-controller; 42 + #interrupt-cells = <2>; 43 + }; 44 + 45 + gpb1: gpb1 { 46 + gpio-controller; 47 + #gpio-cells = <2>; 48 + 49 + interrupt-controller; 50 + #interrupt-cells = <2>; 51 + }; 52 + 53 + gpb2: gpb2 { 54 + gpio-controller; 55 + #gpio-cells = <2>; 56 + 57 + interrupt-controller; 58 + #interrupt-cells = <2>; 59 + }; 60 + 61 + gpb3: gpb3 { 62 + gpio-controller; 63 + #gpio-cells = <2>; 64 + 65 + interrupt-controller; 66 + #interrupt-cells = <2>; 67 + }; 68 + 69 + gpc0: gpc0 { 70 + gpio-controller; 71 + #gpio-cells = <2>; 72 + 73 + interrupt-controller; 74 + #interrupt-cells = <2>; 75 + }; 76 + 77 + gpc3: gpc3 { 78 + gpio-controller; 79 + #gpio-cells = <2>; 80 + 81 + interrupt-controller; 82 + #interrupt-cells = <2>; 83 + }; 84 + 85 + gpc1: gpc1 { 86 + gpio-controller; 87 + #gpio-cells = <2>; 88 + 89 + interrupt-controller; 90 + #interrupt-cells = <2>; 91 + }; 92 + 93 + gpc2: gpc2 { 94 + gpio-controller; 95 + #gpio-cells = <2>; 96 + 97 + interrupt-controller; 98 + #interrupt-cells = <2>; 99 + }; 100 + 101 + gpm5: gpm5 { 102 + gpio-controller; 103 + #gpio-cells = <2>; 104 + }; 105 + 106 + gpd1: gpd1 { 107 + gpio-controller; 108 + #gpio-cells = <2>; 109 + 110 + interrupt-controller; 111 + #interrupt-cells = <2>; 112 + }; 113 + 114 + gpe0: gpe0 { 115 + gpio-controller; 116 + #gpio-cells = <2>; 117 + 118 + interrupt-controller; 119 + #interrupt-cells = <2>; 120 + }; 121 + 122 + gpe1: gpe1 { 123 + gpio-controller; 124 + #gpio-cells = <2>; 125 + 126 + interrupt-controller; 127 + #interrupt-cells = <2>; 128 + }; 129 + 130 + gpf0: gpf0 { 131 + gpio-controller; 132 + #gpio-cells = <2>; 133 + 134 + interrupt-controller; 135 + #interrupt-cells = <2>; 136 + }; 137 + 138 + gpf1: gpf1 { 139 + gpio-controller; 140 + #gpio-cells = <2>; 141 + 142 + interrupt-controller; 143 + #interrupt-cells = <2>; 144 + }; 145 + 146 + gpg0: gpg0 { 147 + gpio-controller; 148 + #gpio-cells = <2>; 149 + 150 + interrupt-controller; 151 + #interrupt-cells = <2>; 152 + }; 153 + 154 + gpg1: gpg1 { 155 + gpio-controller; 156 + #gpio-cells = <2>; 157 + 158 + interrupt-controller; 159 + #interrupt-cells = <2>; 160 + }; 161 + 162 + gpg2: gpg2 { 163 + gpio-controller; 164 + #gpio-cells = <2>; 165 + 166 + interrupt-controller; 167 + #interrupt-cells = <2>; 168 + }; 169 + 170 + gph0: gph0 { 171 + gpio-controller; 172 + #gpio-cells = <2>; 173 + 174 + interrupt-controller; 175 + #interrupt-cells = <2>; 176 + }; 177 + 178 + gph1: gph1 { 179 + gpio-controller; 180 + #gpio-cells = <2>; 181 + 182 + interrupt-controller; 183 + #interrupt-cells = <2>; 184 + }; 185 + 186 + gpm7: gpm7 { 187 + gpio-controller; 188 + #gpio-cells = <2>; 189 + }; 190 + 191 + gpy0: gpy0 { 192 + gpio-controller; 193 + #gpio-cells = <2>; 194 + }; 195 + 196 + gpy1: gpy1 { 197 + gpio-controller; 198 + #gpio-cells = <2>; 199 + }; 200 + 201 + gpy2: gpy2 { 202 + gpio-controller; 203 + #gpio-cells = <2>; 204 + }; 205 + 206 + gpy3: gpy3 { 207 + gpio-controller; 208 + #gpio-cells = <2>; 209 + }; 210 + 211 + gpy4: gpy4 { 212 + gpio-controller; 213 + #gpio-cells = <2>; 214 + }; 215 + 216 + gpy5: gpy5 { 217 + gpio-controller; 218 + #gpio-cells = <2>; 219 + }; 220 + 221 + gpy6: gpy6 { 222 + gpio-controller; 223 + #gpio-cells = <2>; 224 + }; 225 + 226 + gpy7: gpy7 { 227 + gpio-controller; 228 + #gpio-cells = <2>; 229 + }; 230 + 231 + gpx0: gpx0 { 232 + gpio-controller; 233 + #gpio-cells = <2>; 234 + 235 + interrupt-controller; 236 + interrupt-parent = <&combiner>; 237 + #interrupt-cells = <2>; 238 + interrupts = <23 0>, 239 + <24 0>, 240 + <25 0>, 241 + <25 1>, 242 + <26 0>, 243 + <26 1>, 244 + <27 0>, 245 + <27 1>; 246 + }; 247 + 248 + gpx1: gpx1 { 249 + gpio-controller; 250 + #gpio-cells = <2>; 251 + 252 + interrupt-controller; 253 + interrupt-parent = <&combiner>; 254 + #interrupt-cells = <2>; 255 + interrupts = <28 0>, 256 + <28 1>, 257 + <29 0>, 258 + <29 1>, 259 + <30 0>, 260 + <30 1>, 261 + <31 0>, 262 + <31 1>; 263 + }; 264 + 265 + gpx2: gpx2 { 266 + gpio-controller; 267 + #gpio-cells = <2>; 268 + 269 + interrupt-controller; 270 + #interrupt-cells = <2>; 271 + }; 272 + 273 + gpx3: gpx3 { 274 + gpio-controller; 275 + #gpio-cells = <2>; 276 + 277 + interrupt-controller; 278 + #interrupt-cells = <2>; 279 + }; 280 + }; 281 + 282 + &pinctrl_1 { 283 + gpj0: gpj0 { 284 + gpio-controller; 285 + #gpio-cells = <2>; 286 + 287 + interrupt-controller; 288 + #interrupt-cells = <2>; 289 + }; 290 + 291 + gpj1: gpj1 { 292 + gpio-controller; 293 + #gpio-cells = <2>; 294 + 295 + interrupt-controller; 296 + #interrupt-cells = <2>; 297 + }; 298 + 299 + gpj2: gpj2 { 300 + gpio-controller; 301 + #gpio-cells = <2>; 302 + 303 + interrupt-controller; 304 + #interrupt-cells = <2>; 305 + }; 306 + 307 + gpj3: gpj3 { 308 + gpio-controller; 309 + #gpio-cells = <2>; 310 + 311 + interrupt-controller; 312 + #interrupt-cells = <2>; 313 + }; 314 + 315 + gpj4: gpj4 { 316 + gpio-controller; 317 + #gpio-cells = <2>; 318 + 319 + interrupt-controller; 320 + #interrupt-cells = <2>; 321 + }; 322 + 323 + gpk0: gpk0 { 324 + gpio-controller; 325 + #gpio-cells = <2>; 326 + 327 + interrupt-controller; 328 + #interrupt-cells = <2>; 329 + }; 330 + 331 + gpk1: gpk1 { 332 + gpio-controller; 333 + #gpio-cells = <2>; 334 + 335 + interrupt-controller; 336 + #interrupt-cells = <2>; 337 + }; 338 + 339 + gpk2: gpk2 { 340 + gpio-controller; 341 + #gpio-cells = <2>; 342 + 343 + interrupt-controller; 344 + #interrupt-cells = <2>; 345 + }; 346 + 347 + gpk3: gpk3 { 348 + gpio-controller; 349 + #gpio-cells = <2>; 350 + 351 + interrupt-controller; 352 + #interrupt-cells = <2>; 353 + }; 354 + }; 355 + 356 + &pinctrl_2 { 357 + gpv0: gpv0 { 358 + gpio-controller; 359 + #gpio-cells = <2>; 360 + 361 + interrupt-controller; 362 + #interrupt-cells = <2>; 363 + }; 364 + 365 + gpv1: gpv1 { 366 + gpio-controller; 367 + #gpio-cells = <2>; 368 + 369 + interrupt-controller; 370 + #interrupt-cells = <2>; 371 + }; 372 + 373 + gpv2: gpv2 { 374 + gpio-controller; 375 + #gpio-cells = <2>; 376 + 377 + interrupt-controller; 378 + #interrupt-cells = <2>; 379 + }; 380 + 381 + gpv3: gpv3 { 382 + gpio-controller; 383 + #gpio-cells = <2>; 384 + 385 + interrupt-controller; 386 + #interrupt-cells = <2>; 387 + }; 388 + 389 + gpv4: gpv4 { 390 + gpio-controller; 391 + #gpio-cells = <2>; 392 + 393 + interrupt-controller; 394 + #interrupt-cells = <2>; 395 + }; 396 + }; 397 + 398 + &pinctrl_3 { 399 + gpz: gpz { 400 + gpio-controller; 401 + #gpio-cells = <2>; 402 + 403 + interrupt-controller; 404 + #interrupt-cells = <2>; 405 + }; 406 + };
+36
arch/arm/boot/dts/exynos5410.dtsi
··· 21 21 interrupt-parent = <&gic>; 22 22 23 23 aliases { 24 + pinctrl0 = &pinctrl_0; 25 + pinctrl1 = &pinctrl_1; 26 + pinctrl2 = &pinctrl_2; 27 + pinctrl3 = &pinctrl_3; 24 28 serial0 = &uart0; 25 29 serial1 = &uart1; 26 30 serial2 = &uart2; ··· 209 205 status = "disabled"; 210 206 }; 211 207 208 + pinctrl_0: pinctrl@13400000 { 209 + compatible = "samsung,exynos5410-pinctrl"; 210 + reg = <0x13400000 0x1000>; 211 + interrupts = <0 45 0>; 212 + 213 + wakeup-interrupt-controller { 214 + compatible = "samsung,exynos4210-wakeup-eint"; 215 + interrupt-parent = <&gic>; 216 + interrupts = <0 32 0>; 217 + }; 218 + }; 219 + 220 + pinctrl_1: pinctrl@14000000 { 221 + compatible = "samsung,exynos5410-pinctrl"; 222 + reg = <0x14000000 0x1000>; 223 + interrupts = <0 46 0>; 224 + }; 225 + 226 + pinctrl_2: pinctrl@10d10000 { 227 + compatible = "samsung,exynos5410-pinctrl"; 228 + reg = <0x10d10000 0x1000>; 229 + interrupts = <0 50 0>; 230 + }; 231 + 232 + pinctrl_3: pinctrl@03860000 { 233 + compatible = "samsung,exynos5410-pinctrl"; 234 + reg = <0x03860000 0x1000>; 235 + interrupts = <0 47 0>; 236 + }; 237 + 212 238 uart0: serial@12C00000 { 213 239 compatible = "samsung,exynos4210-uart"; 214 240 reg = <0x12C00000 0x100>; ··· 267 233 }; 268 234 }; 269 235 }; 236 + 237 + #include "exynos5410-pinctrl.dtsi"