1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Insignal's Exynos4412 based Origen board device tree source
4 *
5 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 *
8 * Device tree source file for Insignal's Origen board which is based on
9 * Samsung's Exynos4412 SoC.
10 */
11
12/dts-v1/;
13#include "exynos4412.dtsi"
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/input/input.h>
16#include "exynos-mfc-reserved-memory.dtsi"
17
18/ {
19	model = "Insignal Origen evaluation board based on Exynos4412";
20	compatible = "insignal,origen4412", "samsung,exynos4412", "samsung,exynos4";
21
22	memory@40000000 {
23		device_type = "memory";
24		reg = <0x40000000 0x40000000>;
25	};
26
27	chosen {
28		stdout-path = "serial2:115200n8";
29	};
30
31	firmware@203f000 {
32		compatible = "samsung,secure-firmware";
33		reg = <0x0203F000 0x1000>;
34	};
35
36	regulators {
37		compatible = "simple-bus";
38		#address-cells = <1>;
39		#size-cells = <0>;
40
41		mmc_reg: regulator@0 {
42			compatible = "regulator-fixed";
43			reg = <0>;
44			regulator-name = "VMEM_VDD_2.8V";
45			regulator-min-microvolt = <2800000>;
46			regulator-max-microvolt = <2800000>;
47			gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
48			enable-active-high;
49		};
50	};
51
52	display-timings {
53		native-mode = <&timing0>;
54		timing0: timing {
55			clock-frequency = <47500000>;
56			hactive = <1024>;
57			vactive = <600>;
58			hfront-porch = <64>;
59			hback-porch = <16>;
60			hsync-len = <48>;
61			vback-porch = <64>;
62			vfront-porch = <16>;
63			vsync-len = <3>;
64		};
65	};
66
67	fixed-rate-clocks {
68		xxti {
69			compatible = "samsung,clock-xxti";
70			clock-frequency = <0>;
71		};
72
73		xusbxti {
74			compatible = "samsung,clock-xusbxti";
75			clock-frequency = <24000000>;
76		};
77	};
78};
79
80&cpu0 {
81	cpu0-supply = <&buck2_reg>;
82};
83
84&exynos_usbphy {
85	status = "okay";
86};
87
88&ehci {
89	samsung,vbus-gpio = <&gpx3 5 1>;
90	status = "okay";
91	phys = <&exynos_usbphy 2>, <&exynos_usbphy 3>;
92	phy-names = "hsic0", "hsic1";
93};
94
95&fimd {
96	pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>;
97	pinctrl-names = "default";
98	status = "okay";
99};
100
101&i2c_0 {
102	#address-cells = <1>;
103	#size-cells = <0>;
104	samsung,i2c-sda-delay = <100>;
105	samsung,i2c-max-bus-freq = <20000>;
106	pinctrl-0 = <&i2c0_bus>;
107	pinctrl-names = "default";
108	status = "okay";
109
110	s5m8767_pmic@66 {
111		compatible = "samsung,s5m8767-pmic";
112		reg = <0x66>;
113
114		s5m8767,pmic-buck-default-dvs-idx = <3>;
115
116		s5m8767,pmic-buck-dvs-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>,
117						 <&gpx2 4 GPIO_ACTIVE_HIGH>,
118						 <&gpx2 5 GPIO_ACTIVE_HIGH>;
119
120		s5m8767,pmic-buck-ds-gpios = <&gpm3 5 GPIO_ACTIVE_HIGH>,
121						<&gpm3 6 GPIO_ACTIVE_HIGH>,
122						<&gpm3 7 GPIO_ACTIVE_HIGH>;
123
124		s5m8767,pmic-buck2-dvs-voltage = <1250000>, <1200000>,
125						 <1200000>, <1200000>,
126						 <1200000>, <1200000>,
127						 <1200000>, <1200000>;
128
129		s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
130						 <1100000>, <1100000>,
131						 <1100000>, <1100000>,
132						 <1100000>, <1100000>;
133
134		s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
135						 <1200000>, <1200000>,
136						 <1200000>, <1200000>,
137						 <1200000>, <1200000>;
138
139		regulators {
140			ldo1_reg: LDO1 {
141				regulator-name = "VDD_ALIVE";
142				regulator-min-microvolt = <1100000>;
143				regulator-max-microvolt = <1100000>;
144				regulator-always-on;
145				regulator-boot-on;
146				op_mode = <1>; /* Normal Mode */
147			};
148
149			ldo2_reg: LDO2 {
150				regulator-name = "VDDQ_M12";
151				regulator-min-microvolt = <1200000>;
152				regulator-max-microvolt = <1200000>;
153				regulator-always-on;
154				op_mode = <1>; /* Normal Mode */
155			};
156
157			ldo3_reg: LDO3 {
158				regulator-name = "VDDIOAP_18";
159				regulator-min-microvolt = <1800000>;
160				regulator-max-microvolt = <1800000>;
161				regulator-always-on;
162				op_mode = <1>; /* Normal Mode */
163			};
164
165			ldo4_reg: LDO4 {
166				regulator-name = "VDDQ_PRE";
167				regulator-min-microvolt = <1800000>;
168				regulator-max-microvolt = <1800000>;
169				regulator-always-on;
170				op_mode = <1>; /* Normal Mode */
171			};
172
173			ldo5_reg: LDO5 {
174				regulator-name = "VDD18_2M";
175				regulator-min-microvolt = <1800000>;
176				regulator-max-microvolt = <1800000>;
177				regulator-always-on;
178				op_mode = <1>; /* Normal Mode */
179			};
180
181			ldo6_reg: LDO6 {
182				regulator-name = "VDD10_MPLL";
183				regulator-min-microvolt = <1000000>;
184				regulator-max-microvolt = <1000000>;
185				regulator-always-on;
186				op_mode = <1>; /* Normal Mode */
187			};
188
189			ldo7_reg: LDO7 {
190				regulator-name = "VDD10_XPLL";
191				regulator-min-microvolt = <1000000>;
192				regulator-max-microvolt = <1000000>;
193				regulator-always-on;
194				op_mode = <1>; /* Normal Mode */
195			};
196
197			ldo8_reg: LDO8 {
198				regulator-name = "VDD10_MIPI";
199				regulator-min-microvolt = <1000000>;
200				regulator-max-microvolt = <1000000>;
201				regulator-always-on;
202				op_mode = <1>; /* Normal Mode */
203			};
204
205			ldo9_reg: LDO9 {
206				regulator-name = "VDD33_LCD";
207				regulator-min-microvolt = <3300000>;
208				regulator-max-microvolt = <3300000>;
209				regulator-always-on;
210				op_mode = <1>; /* Normal Mode */
211			};
212
213			ldo10_reg: LDO10 {
214				regulator-name = "VDD18_MIPI";
215				regulator-min-microvolt = <1800000>;
216				regulator-max-microvolt = <1800000>;
217				regulator-always-on;
218				op_mode = <1>; /* Normal Mode */
219			};
220
221			ldo11_reg: LDO11 {
222				regulator-name = "VDD18_ABB1";
223				regulator-min-microvolt = <1800000>;
224				regulator-max-microvolt = <1800000>;
225				regulator-always-on;
226				op_mode = <1>; /* Normal Mode */
227			};
228
229			ldo12_reg: LDO12 {
230				regulator-name = "VDD33_UOTG";
231				regulator-min-microvolt = <3300000>;
232				regulator-max-microvolt = <3300000>;
233				regulator-always-on;
234				op_mode = <1>; /* Normal Mode */
235			};
236
237			ldo13_reg: LDO13 {
238				regulator-name = "VDDIOPERI_18";
239				regulator-min-microvolt = <1800000>;
240				regulator-max-microvolt = <1800000>;
241				regulator-always-on;
242				op_mode = <1>; /* Normal Mode */
243			};
244
245			ldo14_reg: LDO14 {
246				regulator-name = "VDD18_ABB02";
247				regulator-min-microvolt = <1800000>;
248				regulator-max-microvolt = <1800000>;
249				regulator-always-on;
250				op_mode = <1>; /* Normal Mode */
251			};
252
253			ldo15_reg: LDO15 {
254				regulator-name = "VDD10_USH";
255				regulator-min-microvolt = <1000000>;
256				regulator-max-microvolt = <1000000>;
257				regulator-always-on;
258				op_mode = <1>; /* Normal Mode */
259			};
260
261			ldo16_reg: LDO16 {
262				regulator-name = "VDD18_HSIC";
263				regulator-min-microvolt = <1800000>;
264				regulator-max-microvolt = <1800000>;
265				regulator-always-on;
266				op_mode = <1>; /* Normal Mode */
267			};
268
269			ldo17_reg: LDO17 {
270				regulator-name = "VDDIOAP_MMC012_28";
271				regulator-min-microvolt = <2800000>;
272				regulator-max-microvolt = <2800000>;
273				regulator-always-on;
274				op_mode = <1>; /* Normal Mode */
275			};
276
277			ldo18_reg: LDO18 {
278				regulator-name = "VDDIOPERI_28";
279				regulator-min-microvolt = <2800000>;
280				regulator-max-microvolt = <2800000>;
281				regulator-always-on;
282				op_mode = <1>; /* Normal Mode */
283			};
284
285			ldo19_reg: LDO19 {
286				regulator-name = "DVDD25";
287				regulator-min-microvolt = <2500000>;
288				regulator-max-microvolt = <2500000>;
289				regulator-always-on;
290				op_mode = <1>; /* Normal Mode */
291			};
292
293			ldo20_reg: LDO20 {
294				regulator-name = "VDD28_CAM";
295				regulator-min-microvolt = <2800000>;
296				regulator-max-microvolt = <2800000>;
297				regulator-always-on;
298				op_mode = <1>; /* Normal Mode */
299			};
300
301			ldo21_reg: LDO21 {
302				regulator-name = "VDD28_AF";
303				regulator-min-microvolt = <2800000>;
304				regulator-max-microvolt = <2800000>;
305				regulator-always-on;
306				op_mode = <1>; /* Normal Mode */
307			};
308
309			ldo22_reg: LDO22 {
310				regulator-name = "VDDA28_2M";
311				regulator-min-microvolt = <2800000>;
312				regulator-max-microvolt = <2800000>;
313				regulator-always-on;
314				op_mode = <1>; /* Normal Mode */
315			};
316
317			ldo23_reg: LDO23 {
318				regulator-name = "VDD28_TF";
319				regulator-min-microvolt = <2800000>;
320				regulator-max-microvolt = <2800000>;
321				regulator-always-on;
322				op_mode = <1>; /* Normal Mode */
323			};
324
325			ldo24_reg: LDO24 {
326				regulator-name = "VDD33_A31";
327				regulator-min-microvolt = <3300000>;
328				regulator-max-microvolt = <3300000>;
329				regulator-always-on;
330				op_mode = <1>; /* Normal Mode */
331			};
332
333			ldo25_reg: LDO25 {
334				regulator-name = "VDD18_CAM";
335				regulator-min-microvolt = <1800000>;
336				regulator-max-microvolt = <1800000>;
337				regulator-always-on;
338				op_mode = <1>; /* Normal Mode */
339			};
340
341			ldo26_reg: LDO26 {
342				regulator-name = "VDD18_A31";
343				regulator-min-microvolt = <1800000>;
344				regulator-max-microvolt = <1800000>;
345				regulator-always-on;
346				op_mode = <1>; /* Normal Mode */
347			};
348
349			ldo27_reg: LDO27 {
350				regulator-name = "GPS_1V8";
351				regulator-min-microvolt = <1800000>;
352				regulator-max-microvolt = <1800000>;
353				regulator-always-on;
354				op_mode = <1>; /* Normal Mode */
355			};
356
357			ldo28_reg: LDO28 {
358				regulator-name = "DVDD12";
359				regulator-min-microvolt = <1200000>;
360				regulator-max-microvolt = <1200000>;
361				regulator-always-on;
362				op_mode = <1>; /* Normal Mode */
363			};
364
365			buck1_reg: BUCK1 {
366				regulator-name = "vdd_mif";
367				regulator-min-microvolt = <950000>;
368				regulator-max-microvolt	= <1100000>;
369				regulator-always-on;
370				regulator-boot-on;
371				op_mode = <1>; /* Normal Mode */
372			};
373
374			buck2_reg: BUCK2 {
375				regulator-name = "vdd_arm";
376				regulator-min-microvolt = <900000>;
377				regulator-max-microvolt	= <1350000>;
378				regulator-always-on;
379				regulator-boot-on;
380				op_mode = <1>; /* Normal Mode */
381			};
382
383			buck3_reg: BUCK3 {
384				regulator-name = "vdd_int";
385				regulator-min-microvolt = <900000>;
386				regulator-max-microvolt	= <1200000>;
387				regulator-always-on;
388				regulator-boot-on;
389				op_mode = <1>; /* Normal Mode */
390			};
391
392			buck4_reg: BUCK4 {
393				regulator-name = "vdd_g3d";
394				regulator-min-microvolt = <750000>;
395				regulator-max-microvolt	= <1500000>;
396				regulator-always-on;
397				regulator-boot-on;
398				op_mode = <1>; /* Normal Mode */
399			};
400
401			buck5_reg: BUCK5 {
402				regulator-name = "vdd_m12";
403				regulator-min-microvolt = <750000>;
404				regulator-max-microvolt	= <1500000>;
405				regulator-always-on;
406				regulator-boot-on;
407				op_mode = <1>; /* Normal Mode */
408			};
409
410			buck6_reg: BUCK6 {
411				regulator-name = "vdd12_5m";
412				regulator-min-microvolt = <750000>;
413				regulator-max-microvolt	= <1500000>;
414				regulator-always-on;
415				regulator-boot-on;
416				op_mode = <1>; /* Normal Mode */
417			};
418
419			buck9_reg: BUCK9 {
420				regulator-name = "vddf28_emmc";
421				regulator-min-microvolt = <750000>;
422				regulator-max-microvolt	= <3000000>;
423				regulator-always-on;
424				regulator-boot-on;
425				op_mode = <1>; /* Normal Mode */
426			};
427		};
428	};
429};
430
431&keypad {
432	samsung,keypad-num-rows = <3>;
433	samsung,keypad-num-columns = <2>;
434	linux,keypad-no-autorepeat;
435	wakeup-source;
436	pinctrl-0 = <&keypad_rows &keypad_cols>;
437	pinctrl-names = "default";
438	status = "okay";
439
440	key_home {
441		keypad,row = <0>;
442		keypad,column = <0>;
443		linux,code = <KEY_HOME>;
444	};
445
446	key_down {
447		keypad,row = <0>;
448		keypad,column = <1>;
449		linux,code = <KEY_DOWN>;
450	};
451
452	key_up {
453		keypad,row = <1>;
454		keypad,column = <0>;
455		linux,code = <KEY_UP>;
456	};
457
458	key_menu {
459		keypad,row = <1>;
460		keypad,column = <1>;
461		linux,code = <KEY_MENU>;
462	};
463
464	key_back {
465		keypad,row = <2>;
466		keypad,column = <0>;
467		linux,code = <KEY_BACK>;
468	};
469
470	key_enter {
471		keypad,row = <2>;
472		keypad,column = <1>;
473		linux,code = <KEY_ENTER>;
474	};
475};
476
477&mshc_0 {
478	pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
479	pinctrl-names = "default";
480	status = "okay";
481
482	broken-cd;
483	card-detect-delay = <200>;
484	samsung,dw-mshc-ciu-div = <3>;
485	samsung,dw-mshc-sdr-timing = <2 3>;
486	samsung,dw-mshc-ddr-timing = <1 2>;
487	bus-width = <8>;
488	cap-mmc-highspeed;
489};
490
491&pinctrl_1 {
492	keypad_rows: keypad-rows {
493		samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
494		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
495		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
496		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
497	};
498
499	keypad_cols: keypad-cols {
500		samsung,pins = "gpx1-0", "gpx1-1";
501		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
502		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
503		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
504	};
505};
506
507&rtc {
508	status = "okay";
509};
510
511&sdhci_2 {
512	bus-width = <4>;
513	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
514	pinctrl-names = "default";
515	vmmc-supply = <&mmc_reg>;
516	status = "okay";
517};
518
519&serial_0 {
520	status = "okay";
521};
522
523&serial_1 {
524	status = "okay";
525};
526
527&serial_2 {
528	status = "okay";
529};
530
531&serial_3 {
532	status = "okay";
533};
534