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