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