Merge remote-tracking branches 'regmap/topic/bulk', 'regmap/topic/i2c', 'regmap/topic...
[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 #define PIN_PULL_NONE           0
16 #define PIN_PULL_DOWN           1
17 #define PIN_PULL_UP             3
18
19 #define PIN_DRV_LV1             0
20 #define PIN_DRV_LV2             2
21 #define PIN_DRV_LV3             1
22 #define PIN_DRV_LV4             3
23
24 #define PIN_PDN_OUT0            0
25 #define PIN_PDN_OUT1            1
26 #define PIN_PDN_INPUT           2
27 #define PIN_PDN_PREV            3
28
29 #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
62 #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
69 &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
161         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
168         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
493         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
528         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 };