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