blob: 40ea7de449336ca8677579834d979708e077fc0d [file] [log] [blame]
Tomasz Figa5a992a92014-05-15 06:01:27 +09001/*
2 * Samsung's Exynos3250 SoCs pin-mux and pin-config device tree source
3 *
4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 *
7 * Samsung's Exynos3250 SoCs pin-mux and pin-config optiosn are listed as device
8 * tree nodes are listed in this file.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13*/
14
Chanwoo Choi18073d62014-11-07 08:10:13 +090015#define PIN_PULL_NONE 0
16#define PIN_PULL_DOWN 1
17#define PIN_PULL_UP 3
18
Chanwoo Choi40bbd192016-03-31 11:47:57 +090019#define PIN_DRV_LV1 0
20#define PIN_DRV_LV2 2
21#define PIN_DRV_LV3 1
22#define PIN_DRV_LV4 3
23
Chanwoo Choi18073d62014-11-07 08:10:13 +090024#define PIN_PDN_OUT0 0
25#define PIN_PDN_OUT1 1
26#define PIN_PDN_INPUT 2
27#define PIN_PDN_PREV 3
28
Chanwoo Choi40bbd192016-03-31 11:47:57 +090029#define PIN_IN(_pin, _pull, _drv) \
30 _pin { \
31 samsung,pins = #_pin; \
32 samsung,pin-function = <0>; \
33 samsung,pin-pud = <PIN_PULL_ ##_pull>; \
34 samsung,pin-drv = <PIN_DRV_ ##_drv>; \
35 }
36
37#define PIN_OUT(_pin, _drv) \
38 _pin { \
39 samsung,pins = #_pin; \
40 samsung,pin-function = <1>; \
41 samsung,pin-pud = <0>; \
42 samsung,pin-drv = <PIN_DRV_ ##_drv>; \
43 }
44
45#define PIN_OUT_SET(_pin, _val, _drv) \
46 _pin { \
47 samsung,pins = #_pin; \
48 samsung,pin-function = <1>; \
49 samsung,pin-pud = <0>; \
50 samsung,pin-drv = <PIN_DRV_ ##_drv>; \
51 samsung,pin-val = <_val>; \
52 }
53
54#define PIN_CFG(_pin, _sel, _pull, _drv) \
55 _pin { \
56 samsung,pins = #_pin; \
57 samsung,pin-function = <_sel>; \
58 samsung,pin-pud = <PIN_PULL_ ##_pull>; \
59 samsung,pin-drv = <PIN_DRV_ ##_drv>; \
60 }
61
Chanwoo Choi18073d62014-11-07 08:10:13 +090062#define PIN_SLP(_pin, _mode, _pull) \
63 _pin { \
64 samsung,pins = #_pin; \
65 samsung,pin-con-pdn = <PIN_PDN_ ##_mode>; \
66 samsung,pin-pud-pdn = <PIN_PULL_ ##_pull>; \
67 }
68
Tomasz Figa5a992a92014-05-15 06:01:27 +090069&pinctrl_0 {
70 gpa0: gpa0 {
71 gpio-controller;
72 #gpio-cells = <2>;
73
74 interrupt-controller;
75 #interrupt-cells = <2>;
76 };
77
78 gpa1: gpa1 {
79 gpio-controller;
80 #gpio-cells = <2>;
81
82 interrupt-controller;
83 #interrupt-cells = <2>;
84 };
85
86 gpb: gpb {
87 gpio-controller;
88 #gpio-cells = <2>;
89
90 interrupt-controller;
91 #interrupt-cells = <2>;
92 };
93
94 gpc0: gpc0 {
95 gpio-controller;
96 #gpio-cells = <2>;
97
98 interrupt-controller;
99 #interrupt-cells = <2>;
100 };
101
102 gpc1: gpc1 {
103 gpio-controller;
104 #gpio-cells = <2>;
105
106 interrupt-controller;
107 #interrupt-cells = <2>;
108 };
109
110 gpd0: gpd0 {
111 gpio-controller;
112 #gpio-cells = <2>;
113
114 interrupt-controller;
115 #interrupt-cells = <2>;
116 };
117
118 gpd1: gpd1 {
119 gpio-controller;
120 #gpio-cells = <2>;
121
122 interrupt-controller;
123 #interrupt-cells = <2>;
124 };
125
126 uart0_data: uart0-data {
127 samsung,pins = "gpa0-0", "gpa0-1";
128 samsung,pin-function = <0x2>;
129 samsung,pin-pud = <0>;
130 samsung,pin-drv = <0>;
131 };
132
133 uart0_fctl: uart0-fctl {
134 samsung,pins = "gpa0-2", "gpa0-3";
135 samsung,pin-function = <2>;
136 samsung,pin-pud = <0>;
137 samsung,pin-drv = <0>;
138 };
139
140 uart1_data: uart1-data {
141 samsung,pins = "gpa0-4", "gpa0-5";
142 samsung,pin-function = <2>;
143 samsung,pin-pud = <0>;
144 samsung,pin-drv = <0>;
145 };
146
147 uart1_fctl: uart1-fctl {
148 samsung,pins = "gpa0-6", "gpa0-7";
149 samsung,pin-function = <2>;
150 samsung,pin-pud = <0>;
151 samsung,pin-drv = <0>;
152 };
153
154 i2c2_bus: i2c2-bus {
155 samsung,pins = "gpa0-6", "gpa0-7";
156 samsung,pin-function = <3>;
157 samsung,pin-pud = <3>;
158 samsung,pin-drv = <0>;
159 };
160
Pankaj Dubeyecaba512016-03-31 11:48:01 +0900161 uart2_data: uart2-data {
162 samsung,pins = "gpa1-0", "gpa1-1";
163 samsung,pin-function = <2>;
164 samsung,pin-pud = <0>;
165 samsung,pin-drv = <0>;
166 };
167
Tomasz Figa5a992a92014-05-15 06:01:27 +0900168 i2c3_bus: i2c3-bus {
169 samsung,pins = "gpa1-2", "gpa1-3";
170 samsung,pin-function = <3>;
171 samsung,pin-pud = <3>;
172 samsung,pin-drv = <0>;
173 };
174
175 spi0_bus: spi0-bus {
176 samsung,pins = "gpb-0", "gpb-2", "gpb-3";
177 samsung,pin-function = <2>;
178 samsung,pin-pud = <3>;
179 samsung,pin-drv = <0>;
180 };
181
182 i2c4_bus: i2c4-bus {
183 samsung,pins = "gpb-0", "gpb-1";
184 samsung,pin-function = <3>;
185 samsung,pin-pud = <3>;
186 samsung,pin-drv = <0>;
187 };
188
189 spi1_bus: spi1-bus {
190 samsung,pins = "gpb-4", "gpb-6", "gpb-7";
191 samsung,pin-function = <2>;
192 samsung,pin-pud = <3>;
193 samsung,pin-drv = <0>;
194 };
195
196 i2c5_bus: i2c5-bus {
197 samsung,pins = "gpb-2", "gpb-3";
198 samsung,pin-function = <3>;
199 samsung,pin-pud = <3>;
200 samsung,pin-drv = <0>;
201 };
202
203 i2s2_bus: i2s2-bus {
204 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
205 "gpc1-4";
206 samsung,pin-function = <2>;
207 samsung,pin-pud = <0>;
208 samsung,pin-drv = <0>;
209 };
210
211 pcm2_bus: pcm2-bus {
212 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
213 "gpc1-4";
214 samsung,pin-function = <3>;
215 samsung,pin-pud = <0>;
216 samsung,pin-drv = <0>;
217 };
218
219 i2c6_bus: i2c6-bus {
220 samsung,pins = "gpc1-3", "gpc1-4";
221 samsung,pin-function = <4>;
222 samsung,pin-pud = <3>;
223 samsung,pin-drv = <0>;
224 };
225
226 pwm0_out: pwm0-out {
227 samsung,pins = "gpd0-0";
228 samsung,pin-function = <2>;
229 samsung,pin-pud = <0>;
230 samsung,pin-drv = <0>;
231 };
232
233 pwm1_out: pwm1-out {
234 samsung,pins = "gpd0-1";
235 samsung,pin-function = <2>;
236 samsung,pin-pud = <0>;
237 samsung,pin-drv = <0>;
238 };
239
240 i2c7_bus: i2c7-bus {
241 samsung,pins = "gpd0-2", "gpd0-3";
242 samsung,pin-function = <3>;
243 samsung,pin-pud = <3>;
244 samsung,pin-drv = <0>;
245 };
246
247 pwm2_out: pwm2-out {
248 samsung,pins = "gpd0-2";
249 samsung,pin-function = <2>;
250 samsung,pin-pud = <0>;
251 samsung,pin-drv = <0>;
252 };
253
254 pwm3_out: pwm3-out {
255 samsung,pins = "gpd0-3";
256 samsung,pin-function = <2>;
257 samsung,pin-pud = <0>;
258 samsung,pin-drv = <0>;
259 };
260
261 i2c0_bus: i2c0-bus {
262 samsung,pins = "gpd1-0", "gpd1-1";
263 samsung,pin-function = <2>;
264 samsung,pin-pud = <3>;
265 samsung,pin-drv = <0>;
266 };
267
268 mipi0_clk: mipi0-clk {
269 samsung,pins = "gpd1-0", "gpd1-1";
270 samsung,pin-function = <3>;
271 samsung,pin-pud = <0>;
272 samsung,pin-drv = <0>;
273 };
274
275 i2c1_bus: i2c1-bus {
276 samsung,pins = "gpd1-2", "gpd1-3";
277 samsung,pin-function = <2>;
278 samsung,pin-pud = <3>;
279 samsung,pin-drv = <0>;
280 };
281};
282
283&pinctrl_1 {
284 gpe0: gpe0 {
285 gpio-controller;
286 #gpio-cells = <2>;
287 };
288
289 gpe1: gpe1 {
290 gpio-controller;
291 #gpio-cells = <2>;
292 };
293
294 gpe2: gpe2 {
295 gpio-controller;
296 #gpio-cells = <2>;
297 };
298
299 gpk0: gpk0 {
300 gpio-controller;
301 #gpio-cells = <2>;
302
303 interrupt-controller;
304 #interrupt-cells = <2>;
305 };
306
307 gpk1: gpk1 {
308 gpio-controller;
309 #gpio-cells = <2>;
310
311 interrupt-controller;
312 #interrupt-cells = <2>;
313 };
314
315 gpk2: gpk2 {
316 gpio-controller;
317 #gpio-cells = <2>;
318
319 interrupt-controller;
320 #interrupt-cells = <2>;
321 };
322
323 gpl0: gpl0 {
324 gpio-controller;
325 #gpio-cells = <2>;
326
327 interrupt-controller;
328 #interrupt-cells = <2>;
329 };
330
331 gpm0: gpm0 {
332 gpio-controller;
333 #gpio-cells = <2>;
334
335 interrupt-controller;
336 #interrupt-cells = <2>;
337 };
338
339 gpm1: gpm1 {
340 gpio-controller;
341 #gpio-cells = <2>;
342
343 interrupt-controller;
344 #interrupt-cells = <2>;
345 };
346
347 gpm2: gpm2 {
348 gpio-controller;
349 #gpio-cells = <2>;
350
351 interrupt-controller;
352 #interrupt-cells = <2>;
353 };
354
355 gpm3: gpm3 {
356 gpio-controller;
357 #gpio-cells = <2>;
358
359 interrupt-controller;
360 #interrupt-cells = <2>;
361 };
362
363 gpm4: gpm4 {
364 gpio-controller;
365 #gpio-cells = <2>;
366
367 interrupt-controller;
368 #interrupt-cells = <2>;
369 };
370
371 gpx0: gpx0 {
372 gpio-controller;
373 #gpio-cells = <2>;
374
375 interrupt-controller;
376 interrupt-parent = <&gic>;
377 interrupts = <0 32 0>, <0 33 0>, <0 34 0>, <0 35 0>,
378 <0 36 0>, <0 37 0>, <0 38 0>, <0 39 0>;
379 #interrupt-cells = <2>;
380 };
381
382 gpx1: gpx1 {
383 gpio-controller;
384 #gpio-cells = <2>;
385
386 interrupt-controller;
387 interrupt-parent = <&gic>;
388 interrupts = <0 40 0>, <0 41 0>, <0 42 0>, <0 43 0>,
389 <0 44 0>, <0 45 0>, <0 46 0>, <0 47 0>;
390 #interrupt-cells = <2>;
391 };
392
393 gpx2: gpx2 {
394 gpio-controller;
395 #gpio-cells = <2>;
396
397 interrupt-controller;
398 #interrupt-cells = <2>;
399 };
400
401 gpx3: gpx3 {
402 gpio-controller;
403 #gpio-cells = <2>;
404
405 interrupt-controller;
406 #interrupt-cells = <2>;
407 };
408
409 sd0_clk: sd0-clk {
410 samsung,pins = "gpk0-0";
411 samsung,pin-function = <2>;
412 samsung,pin-pud = <0>;
413 samsung,pin-drv = <3>;
414 };
415
416 sd0_cmd: sd0-cmd {
417 samsung,pins = "gpk0-1";
418 samsung,pin-function = <2>;
419 samsung,pin-pud = <0>;
420 samsung,pin-drv = <3>;
421 };
422
423 sd0_cd: sd0-cd {
424 samsung,pins = "gpk0-2";
425 samsung,pin-function = <2>;
426 samsung,pin-pud = <3>;
427 samsung,pin-drv = <3>;
428 };
429
430 sd0_rdqs: sd0-rdqs {
431 samsung,pins = "gpk0-7";
432 samsung,pin-function = <2>;
433 samsung,pin-pud = <0>;
434 samsung,pin-drv = <3>;
435 };
436
437 sd0_bus1: sd0-bus-width1 {
438 samsung,pins = "gpk0-3";
439 samsung,pin-function = <2>;
440 samsung,pin-pud = <3>;
441 samsung,pin-drv = <3>;
442 };
443
444 sd0_bus4: sd0-bus-width4 {
445 samsung,pins = "gpk0-4", "gpk0-5", "gpk0-6";
446 samsung,pin-function = <2>;
447 samsung,pin-pud = <3>;
448 samsung,pin-drv = <3>;
449 };
450
451 sd0_bus8: sd0-bus-width8 {
452 samsung,pins = "gpl0-0", "gpl0-1", "gpl0-2", "gpl0-3";
453 samsung,pin-function = <2>;
454 samsung,pin-pud = <3>;
455 samsung,pin-drv = <3>;
456 };
457
458 sd1_clk: sd1-clk {
459 samsung,pins = "gpk1-0";
460 samsung,pin-function = <2>;
461 samsung,pin-pud = <0>;
462 samsung,pin-drv = <3>;
463 };
464
465 sd1_cmd: sd1-cmd {
466 samsung,pins = "gpk1-1";
467 samsung,pin-function = <2>;
468 samsung,pin-pud = <0>;
469 samsung,pin-drv = <3>;
470 };
471
472 sd1_cd: sd1-cd {
473 samsung,pins = "gpk1-2";
474 samsung,pin-function = <2>;
475 samsung,pin-pud = <3>;
476 samsung,pin-drv = <3>;
477 };
478
479 sd1_bus1: sd1-bus-width1 {
480 samsung,pins = "gpk1-3";
481 samsung,pin-function = <2>;
482 samsung,pin-pud = <3>;
483 samsung,pin-drv = <3>;
484 };
485
486 sd1_bus4: sd1-bus-width4 {
487 samsung,pins = "gpk1-4", "gpk1-5", "gpk1-6";
488 samsung,pin-function = <2>;
489 samsung,pin-pud = <3>;
490 samsung,pin-drv = <3>;
491 };
492
Chanwoo Choi92173e62016-03-31 11:48:03 +0900493 sd2_clk: sd2-clk {
494 samsung,pins = "gpk2-0";
495 samsung,pin-function = <2>;
496 samsung,pin-pud = <0>;
497 samsung,pin-drv = <3>;
498 };
499
500 sd2_cmd: sd2-cmd {
501 samsung,pins = "gpk2-1";
502 samsung,pin-function = <2>;
503 samsung,pin-pud = <0>;
504 samsung,pin-drv = <3>;
505 };
506
507 sd2_cd: sd2-cd {
508 samsung,pins = "gpk2-2";
509 samsung,pin-function = <2>;
510 samsung,pin-pud = <3>;
511 samsung,pin-drv = <3>;
512 };
513
514 sd2_bus1: sd2-bus-width1 {
515 samsung,pins = "gpk2-3";
516 samsung,pin-function = <2>;
517 samsung,pin-pud = <3>;
518 samsung,pin-drv = <3>;
519 };
520
521 sd2_bus4: sd2-bus-width4 {
522 samsung,pins = "gpk2-4", "gpk2-5", "gpk2-6";
523 samsung,pin-function = <2>;
524 samsung,pin-pud = <3>;
525 samsung,pin-drv = <3>;
526 };
527
Tomasz Figa5a992a92014-05-15 06:01:27 +0900528 cam_port_b_io: cam-port-b-io {
529 samsung,pins = "gpm0-0", "gpm0-1", "gpm0-2", "gpm0-3",
530 "gpm0-4", "gpm0-5", "gpm0-6", "gpm0-7",
531 "gpm1-0", "gpm1-1", "gpm2-0", "gpm2-1";
532 samsung,pin-function = <3>;
533 samsung,pin-pud = <3>;
534 samsung,pin-drv = <0>;
535 };
536
537 cam_port_b_clk_active: cam-port-b-clk-active {
538 samsung,pins = "gpm2-2";
539 samsung,pin-function = <3>;
540 samsung,pin-pud = <0>;
541 samsung,pin-drv = <3>;
542 };
543
544 cam_port_b_clk_idle: cam-port-b-clk-idle {
545 samsung,pins = "gpm2-2";
546 samsung,pin-function = <0>;
547 samsung,pin-pud = <0>;
548 samsung,pin-drv = <0>;
549 };
550
551 fimc_is_i2c0: fimc-is-i2c0 {
552 samsung,pins = "gpm4-0", "gpm4-1";
553 samsung,pin-function = <2>;
554 samsung,pin-pud = <0>;
555 samsung,pin-drv = <0>;
556 };
557
558 fimc_is_i2c1: fimc-is-i2c1 {
559 samsung,pins = "gpm4-2", "gpm4-3";
560 samsung,pin-function = <2>;
561 samsung,pin-pud = <0>;
562 samsung,pin-drv = <0>;
563 };
564
565 fimc_is_uart: fimc-is-uart {
566 samsung,pins = "gpm3-5", "gpm3-7";
567 samsung,pin-function = <3>;
568 samsung,pin-pud = <0>;
569 samsung,pin-drv = <0>;
570 };
571};