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 GPIO_ACTIVE_HIGH>;
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		wakeup-source;
148
149		s5m8767_osc: clocks {
150			compatible = "samsung,s5m8767-clk";
151			#clock-cells = <1>;
152			clock-output-names = "s5m8767_ap", "s5m8767_cp",
153					     "s5m8767_bt";
154		};
155
156		regulators {
157			ldo1_reg: LDO1 {
158				regulator-name = "VDD_ALIVE";
159				regulator-min-microvolt = <1100000>;
160				regulator-max-microvolt = <1100000>;
161				regulator-always-on;
162				regulator-boot-on;
163				op_mode = <1>; /* Normal Mode */
164			};
165
166			ldo2_reg: LDO2 {
167				regulator-name = "VDDQ_M12";
168				regulator-min-microvolt = <1200000>;
169				regulator-max-microvolt = <1200000>;
170				regulator-always-on;
171				op_mode = <1>; /* Normal Mode */
172			};
173
174			ldo3_reg: LDO3 {
175				regulator-name = "VDDIOAP_18";
176				regulator-min-microvolt = <1800000>;
177				regulator-max-microvolt = <1800000>;
178				regulator-always-on;
179				op_mode = <1>; /* Normal Mode */
180			};
181
182			ldo4_reg: LDO4 {
183				regulator-name = "VDDQ_PRE";
184				regulator-min-microvolt = <1800000>;
185				regulator-max-microvolt = <1800000>;
186				regulator-always-on;
187				op_mode = <1>; /* Normal Mode */
188			};
189
190			ldo5_reg: LDO5 {
191				regulator-name = "VDD18_2M";
192				regulator-min-microvolt = <1800000>;
193				regulator-max-microvolt = <1800000>;
194				regulator-always-on;
195				op_mode = <1>; /* Normal Mode */
196			};
197
198			ldo6_reg: LDO6 {
199				regulator-name = "VDD10_MPLL";
200				regulator-min-microvolt = <1000000>;
201				regulator-max-microvolt = <1000000>;
202				regulator-always-on;
203				op_mode = <1>; /* Normal Mode */
204			};
205
206			ldo7_reg: LDO7 {
207				regulator-name = "VDD10_XPLL";
208				regulator-min-microvolt = <1000000>;
209				regulator-max-microvolt = <1000000>;
210				regulator-always-on;
211				op_mode = <1>; /* Normal Mode */
212			};
213
214			ldo8_reg: LDO8 {
215				regulator-name = "VDD10_MIPI";
216				regulator-min-microvolt = <1000000>;
217				regulator-max-microvolt = <1000000>;
218				regulator-always-on;
219				op_mode = <1>; /* Normal Mode */
220			};
221
222			ldo9_reg: LDO9 {
223				regulator-name = "VDD33_LCD";
224				regulator-min-microvolt = <3300000>;
225				regulator-max-microvolt = <3300000>;
226				regulator-always-on;
227				op_mode = <1>; /* Normal Mode */
228			};
229
230			ldo10_reg: LDO10 {
231				regulator-name = "VDD18_MIPI";
232				regulator-min-microvolt = <1800000>;
233				regulator-max-microvolt = <1800000>;
234				regulator-always-on;
235				op_mode = <1>; /* Normal Mode */
236			};
237
238			ldo11_reg: LDO11 {
239				regulator-name = "VDD18_ABB1";
240				regulator-min-microvolt = <1800000>;
241				regulator-max-microvolt = <1800000>;
242				regulator-always-on;
243				op_mode = <1>; /* Normal Mode */
244			};
245
246			ldo12_reg: LDO12 {
247				regulator-name = "VDD33_UOTG";
248				regulator-min-microvolt = <3300000>;
249				regulator-max-microvolt = <3300000>;
250				regulator-always-on;
251				op_mode = <1>; /* Normal Mode */
252			};
253
254			ldo13_reg: LDO13 {
255				regulator-name = "VDDIOPERI_18";
256				regulator-min-microvolt = <1800000>;
257				regulator-max-microvolt = <1800000>;
258				regulator-always-on;
259				op_mode = <1>; /* Normal Mode */
260			};
261
262			ldo14_reg: LDO14 {
263				regulator-name = "VDD18_ABB02";
264				regulator-min-microvolt = <1800000>;
265				regulator-max-microvolt = <1800000>;
266				regulator-always-on;
267				op_mode = <1>; /* Normal Mode */
268			};
269
270			ldo15_reg: LDO15 {
271				regulator-name = "VDD10_USH";
272				regulator-min-microvolt = <1000000>;
273				regulator-max-microvolt = <1000000>;
274				regulator-always-on;
275				op_mode = <1>; /* Normal Mode */
276			};
277
278			ldo16_reg: LDO16 {
279				regulator-name = "VDD18_HSIC";
280				regulator-min-microvolt = <1800000>;
281				regulator-max-microvolt = <1800000>;
282				regulator-always-on;
283				op_mode = <1>; /* Normal Mode */
284			};
285
286			ldo17_reg: LDO17 {
287				regulator-name = "VDDIOAP_MMC012_28";
288				regulator-min-microvolt = <2800000>;
289				regulator-max-microvolt = <2800000>;
290				regulator-always-on;
291				op_mode = <1>; /* Normal Mode */
292			};
293
294			ldo18_reg: LDO18 {
295				regulator-name = "VDDIOPERI_28";
296				regulator-min-microvolt = <2800000>;
297				regulator-max-microvolt = <2800000>;
298				regulator-always-on;
299				op_mode = <1>; /* Normal Mode */
300			};
301
302			ldo19_reg: LDO19 {
303				regulator-name = "DVDD25";
304				regulator-min-microvolt = <2500000>;
305				regulator-max-microvolt = <2500000>;
306				regulator-always-on;
307				op_mode = <1>; /* Normal Mode */
308			};
309
310			ldo20_reg: LDO20 {
311				regulator-name = "VDD28_CAM";
312				regulator-min-microvolt = <2800000>;
313				regulator-max-microvolt = <2800000>;
314				regulator-always-on;
315				op_mode = <1>; /* Normal Mode */
316			};
317
318			ldo21_reg: LDO21 {
319				regulator-name = "VDD28_AF";
320				regulator-min-microvolt = <2800000>;
321				regulator-max-microvolt = <2800000>;
322				regulator-always-on;
323				op_mode = <1>; /* Normal Mode */
324			};
325
326			ldo22_reg: LDO22 {
327				regulator-name = "VDDA28_2M";
328				regulator-min-microvolt = <2800000>;
329				regulator-max-microvolt = <2800000>;
330				regulator-always-on;
331				op_mode = <1>; /* Normal Mode */
332			};
333
334			ldo23_reg: LDO23 {
335				regulator-name = "VDD28_TF";
336				regulator-min-microvolt = <2800000>;
337				regulator-max-microvolt = <2800000>;
338				regulator-always-on;
339				op_mode = <1>; /* Normal Mode */
340			};
341
342			ldo24_reg: LDO24 {
343				regulator-name = "VDD33_A31";
344				regulator-min-microvolt = <3300000>;
345				regulator-max-microvolt = <3300000>;
346				regulator-always-on;
347				op_mode = <1>; /* Normal Mode */
348			};
349
350			ldo25_reg: LDO25 {
351				regulator-name = "VDD18_CAM";
352				regulator-min-microvolt = <1800000>;
353				regulator-max-microvolt = <1800000>;
354				regulator-always-on;
355				op_mode = <1>; /* Normal Mode */
356			};
357
358			ldo26_reg: LDO26 {
359				regulator-name = "VDD18_A31";
360				regulator-min-microvolt = <1800000>;
361				regulator-max-microvolt = <1800000>;
362				regulator-always-on;
363				op_mode = <1>; /* Normal Mode */
364			};
365
366			ldo27_reg: LDO27 {
367				regulator-name = "GPS_1V8";
368				regulator-min-microvolt = <1800000>;
369				regulator-max-microvolt = <1800000>;
370				regulator-always-on;
371				op_mode = <1>; /* Normal Mode */
372			};
373
374			ldo28_reg: LDO28 {
375				regulator-name = "DVDD12";
376				regulator-min-microvolt = <1200000>;
377				regulator-max-microvolt = <1200000>;
378				regulator-always-on;
379				op_mode = <1>; /* Normal Mode */
380			};
381
382			buck1_reg: BUCK1 {
383				regulator-name = "VDD_MIF";
384				regulator-min-microvolt = <950000>;
385				regulator-max-microvolt = <1100000>;
386				regulator-always-on;
387				regulator-boot-on;
388				op_mode = <1>; /* Normal Mode */
389			};
390
391			buck2_reg: BUCK2 {
392				regulator-name = "VDD_ARM";
393				regulator-min-microvolt = <900000>;
394				regulator-max-microvolt = <1350000>;
395				regulator-always-on;
396				regulator-boot-on;
397				op_mode = <1>; /* Normal Mode */
398			};
399
400			buck3_reg: BUCK3 {
401				regulator-name = "VDD_INT";
402				regulator-min-microvolt = <900000>;
403				regulator-max-microvolt = <1200000>;
404				regulator-always-on;
405				regulator-boot-on;
406				op_mode = <1>; /* Normal Mode */
407			};
408
409			buck4_reg: BUCK4 {
410				regulator-name = "VDD_G3D";
411				regulator-min-microvolt = <750000>;
412				regulator-max-microvolt = <1500000>;
413				regulator-always-on;
414				regulator-boot-on;
415				op_mode = <1>; /* Normal Mode */
416			};
417
418			buck5_reg: BUCK5 {
419				regulator-name = "VDD_M12";
420				regulator-min-microvolt = <750000>;
421				regulator-max-microvolt = <1500000>;
422				regulator-always-on;
423				regulator-boot-on;
424				op_mode = <1>; /* Normal Mode */
425			};
426
427			buck6_reg: BUCK6 {
428				regulator-name = "VDD12_5M";
429				regulator-min-microvolt = <750000>;
430				regulator-max-microvolt = <1500000>;
431				regulator-always-on;
432				regulator-boot-on;
433				op_mode = <1>; /* Normal Mode */
434			};
435
436			buck9_reg: BUCK9 {
437				regulator-name = "VDDF28_EMMC";
438				regulator-min-microvolt = <750000>;
439				regulator-max-microvolt = <3000000>;
440				regulator-always-on;
441				regulator-boot-on;
442				op_mode = <1>; /* Normal Mode */
443			};
444		};
445	};
446};
447
448&keypad {
449	samsung,keypad-num-rows = <3>;
450	samsung,keypad-num-columns = <2>;
451	linux,keypad-no-autorepeat;
452	wakeup-source;
453	pinctrl-0 = <&keypad_rows &keypad_cols>;
454	pinctrl-names = "default";
455	status = "okay";
456
457	key-home {
458		keypad,row = <0>;
459		keypad,column = <0>;
460		linux,code = <KEY_HOME>;
461	};
462
463	key-down {
464		keypad,row = <0>;
465		keypad,column = <1>;
466		linux,code = <KEY_DOWN>;
467	};
468
469	key-up {
470		keypad,row = <1>;
471		keypad,column = <0>;
472		linux,code = <KEY_UP>;
473	};
474
475	key-menu {
476		keypad,row = <1>;
477		keypad,column = <1>;
478		linux,code = <KEY_MENU>;
479	};
480
481	key-back {
482		keypad,row = <2>;
483		keypad,column = <0>;
484		linux,code = <KEY_BACK>;
485	};
486
487	key-enter {
488		keypad,row = <2>;
489		keypad,column = <1>;
490		linux,code = <KEY_ENTER>;
491	};
492};
493
494&mshc_0 {
495	pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
496	pinctrl-names = "default";
497	status = "okay";
498
499	broken-cd;
500	card-detect-delay = <200>;
501	samsung,dw-mshc-ciu-div = <3>;
502	samsung,dw-mshc-sdr-timing = <2 3>;
503	samsung,dw-mshc-ddr-timing = <1 2>;
504	bus-width = <8>;
505	cap-mmc-highspeed;
506};
507
508&pinctrl_1 {
509	keypad_rows: keypad-rows-pins {
510		samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
511		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
512		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
513		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
514	};
515
516	keypad_cols: keypad-cols-pins {
517		samsung,pins = "gpx1-0", "gpx1-1";
518		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
519		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
520		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
521	};
522};
523
524&rtc {
525	status = "okay";
526	clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
527	clock-names = "rtc", "rtc_src";
528};
529
530&sdhci_2 {
531	bus-width = <4>;
532	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
533	pinctrl-names = "default";
534	vmmc-supply = <&mmc_reg>;
535	status = "okay";
536};
537
538&serial_0 {
539	status = "okay";
540};
541
542&serial_1 {
543	status = "okay";
544};
545
546&serial_2 {
547	status = "okay";
548};
549
550&serial_3 {
551	status = "okay";
552};
553