Linux Audio

Check our new training course

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