1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos4210 based Trats board device tree source
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 *
8 * Device tree source file for Samsung's Trats board which is based on
9 * Samsung's Exynos4210 SoC.
10 */
11
12/dts-v1/;
13#include "exynos4210.dtsi"
14#include <dt-bindings/gpio/gpio.h>
15
16/ {
17	model = "Samsung Trats based on Exynos4210";
18	compatible = "samsung,trats", "samsung,exynos4210", "samsung,exynos4";
19
20	memory@40000000 {
21		device_type = "memory";
22		reg =  <0x40000000 0x10000000
23			0x50000000 0x10000000
24			0x60000000 0x10000000
25			0x70000000 0x10000000>;
26	};
27
28	chosen {
29		bootargs = "root=/dev/mmcblk0p5 rootwait earlyprintk panic=5";
30		stdout-path = "serial2:115200n8";
31	};
32
33	regulators {
34		compatible = "simple-bus";
35
36		vemmc_reg: regulator-0 {
37			compatible = "regulator-fixed";
38			regulator-name = "VMEM_VDD_2.8V";
39			regulator-min-microvolt = <2800000>;
40			regulator-max-microvolt = <2800000>;
41			gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
42			enable-active-high;
43		};
44
45		tsp_reg: regulator-1 {
46			compatible = "regulator-fixed";
47			regulator-name = "TSP_FIXED_VOLTAGES";
48			regulator-min-microvolt = <2800000>;
49			regulator-max-microvolt = <2800000>;
50			gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
51			enable-active-high;
52		};
53
54		cam_af_28v_reg: regulator-2 {
55			compatible = "regulator-fixed";
56			regulator-name = "8M_AF_2.8V_EN";
57			regulator-min-microvolt = <2800000>;
58			regulator-max-microvolt = <2800000>;
59			gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
60			enable-active-high;
61		};
62
63		cam_io_en_reg: regulator-3 {
64			compatible = "regulator-fixed";
65			regulator-name = "CAM_IO_EN";
66			regulator-min-microvolt = <2800000>;
67			regulator-max-microvolt = <2800000>;
68			gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
69			enable-active-high;
70		};
71
72		cam_io_12v_reg: regulator-4 {
73			compatible = "regulator-fixed";
74			regulator-name = "8M_1.2V_EN";
75			regulator-min-microvolt = <1200000>;
76			regulator-max-microvolt = <1200000>;
77			gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
78			enable-active-high;
79		};
80
81		vt_core_15v_reg: regulator-5 {
82			compatible = "regulator-fixed";
83			regulator-name = "VT_CORE_1.5V";
84			regulator-min-microvolt = <1500000>;
85			regulator-max-microvolt = <1500000>;
86			gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
87			enable-active-high;
88		};
89	};
90
91	gpio-keys {
92		compatible = "gpio-keys";
93
94		vol-down-key {
95			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
96			linux,code = <114>;
97			label = "volume down";
98			debounce-interval = <10>;
99		};
100
101		vol-up-key {
102			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
103			linux,code = <115>;
104			label = "volume up";
105			debounce-interval = <10>;
106		};
107
108		power-key {
109			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
110			linux,code = <116>;
111			label = "power";
112			debounce-interval = <10>;
113			wakeup-source;
114		};
115
116		ok-key {
117			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
118			linux,code = <352>;
119			label = "ok";
120			debounce-interval = <10>;
121		};
122	};
123
124	fixed-rate-clocks {
125		xxti {
126			compatible = "samsung,clock-xxti";
127			clock-frequency = <0>;
128		};
129
130		xusbxti {
131			compatible = "samsung,clock-xusbxti";
132			clock-frequency = <24000000>;
133		};
134	};
135
136	thermal-zones {
137		cpu_thermal: cpu-thermal {
138			cooling-maps {
139				map0 {
140				     /* Corresponds to 800MHz at freq_table */
141				     cooling-device = <&cpu0 2 2>, <&cpu1 2 2>;
142				};
143				map1 {
144				     /* Corresponds to 200MHz at freq_table */
145				     cooling-device = <&cpu0 4 4>, <&cpu1 4 4>;
146			       };
147		       };
148		};
149	};
150
151};
152
153&camera {
154	pinctrl-names = "default";
155	pinctrl-0 = <>;
156	status = "okay";
157};
158
159&cpu0 {
160	cpu0-supply = <&varm_breg>;
161};
162
163&dsi_0 {
164	vddcore-supply = <&vusb_reg>;
165	vddio-supply = <&vmipi_reg>;
166	samsung,burst-clock-frequency = <500000000>;
167	samsung,esc-clock-frequency = <20000000>;
168	samsung,pll-clock-frequency = <24000000>;
169	status = "okay";
170
171	panel@0 {
172		reg = <0>;
173		compatible = "samsung,s6e8aa0";
174		vdd3-supply = <&vcclcd_reg>;
175		vci-supply = <&vlcd_reg>;
176		reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
177		power-on-delay= <50>;
178		reset-delay = <100>;
179		init-delay = <100>;
180		flip-horizontal;
181		flip-vertical;
182		panel-width-mm = <58>;
183		panel-height-mm = <103>;
184
185		display-timings {
186			timing-0 {
187				clock-frequency = <57153600>;
188				hactive = <720>;
189				vactive = <1280>;
190				hfront-porch = <5>;
191				hback-porch = <5>;
192				hsync-len = <5>;
193				vfront-porch = <13>;
194				vback-porch = <1>;
195				vsync-len = <2>;
196			};
197		};
198	};
199};
200
201&exynos_usbphy {
202	status = "okay";
203	vbus-supply = <&safe1_sreg>;
204};
205
206&fimc_0 {
207	status = "okay";
208	assigned-clocks = <&clock CLK_MOUT_FIMC0>,
209			  <&clock CLK_SCLK_FIMC0>;
210	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
211	assigned-clock-rates = <0>, <160000000>;
212};
213
214&fimc_1 {
215	status = "okay";
216	assigned-clocks = <&clock CLK_MOUT_FIMC1>,
217			  <&clock CLK_SCLK_FIMC1>;
218	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
219	assigned-clock-rates = <0>, <160000000>;
220};
221
222&fimc_2 {
223	status = "okay";
224	assigned-clocks = <&clock CLK_MOUT_FIMC2>,
225			  <&clock CLK_SCLK_FIMC2>;
226	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
227		assigned-clock-rates = <0>, <160000000>;
228};
229
230&fimc_3 {
231	status = "okay";
232	assigned-clocks = <&clock CLK_MOUT_FIMC3>,
233			  <&clock CLK_SCLK_FIMC3>;
234	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
235	assigned-clock-rates = <0>, <160000000>;
236};
237
238&fimd {
239	status = "okay";
240};
241
242&gpu {
243	status = "okay";
244};
245
246&hsotg {
247	vusb_d-supply = <&vusb_reg>;
248	vusb_a-supply = <&vusbdac_reg>;
249	dr_mode = "peripheral";
250	status = "okay";
251};
252
253&i2c_3 {
254	samsung,i2c-sda-delay = <100>;
255	samsung,i2c-slave-addr = <0x10>;
256	samsung,i2c-max-bus-freq = <400000>;
257	pinctrl-0 = <&i2c3_bus>;
258	pinctrl-names = "default";
259	status = "okay";
260
261	mms114-touchscreen@48 {
262		compatible = "melfas,mms114";
263		reg = <0x48>;
264		interrupt-parent = <&gpx0>;
265		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
266		touchscreen-size-x = <720>;
267		touchscreen-size-y = <1280>;
268		avdd-supply = <&tsp_reg>;
269		vdd-supply = <&tsp_reg>;
270	};
271};
272
273&i2c_5 {
274	samsung,i2c-sda-delay = <100>;
275	samsung,i2c-slave-addr = <0x10>;
276	samsung,i2c-max-bus-freq = <100000>;
277	pinctrl-0 = <&i2c5_bus>;
278	pinctrl-names = "default";
279	status = "okay";
280
281	max8997_pmic@66 {
282		compatible = "maxim,max8997-pmic";
283		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 0>;
284
285		reg = <0x66>;
286		interrupt-parent = <&gpx0>;
287		interrupts = <7 IRQ_TYPE_NONE>;
288
289		max8997,pmic-buck1-uses-gpio-dvs;
290		max8997,pmic-buck2-uses-gpio-dvs;
291		max8997,pmic-buck5-uses-gpio-dvs;
292
293		max8997,pmic-ignore-gpiodvs-side-effect;
294		max8997,pmic-buck125-default-dvs-idx = <0>;
295
296		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
297						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
298						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
299
300		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
301						 <1250000>, <1200000>,
302						 <1150000>, <1100000>,
303						 <1000000>, <950000>;
304
305		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
306						 <950000>,  <900000>,
307						 <1100000>, <1000000>,
308						 <950000>,  <900000>;
309
310		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
311						 <1200000>, <1200000>,
312						 <1200000>, <1200000>,
313						 <1200000>, <1200000>;
314
315		regulators {
316			valive_reg: LDO2 {
317			     regulator-name = "VALIVE_1.1V_C210";
318			     regulator-min-microvolt = <1100000>;
319			     regulator-max-microvolt = <1100000>;
320			     regulator-always-on;
321			};
322
323			vusb_reg: LDO3 {
324			     regulator-name = "VUSB_1.1V_C210";
325			     regulator-min-microvolt = <1100000>;
326			     regulator-max-microvolt = <1100000>;
327			};
328
329			vmipi_reg: LDO4 {
330			     regulator-name = "VMIPI_1.8V";
331			     regulator-min-microvolt = <1800000>;
332			     regulator-max-microvolt = <1800000>;
333			};
334
335			vpda_reg: LDO6 {
336			     regulator-name = "VCC_1.8V_PDA";
337			     regulator-min-microvolt = <1800000>;
338			     regulator-max-microvolt = <1800000>;
339			     regulator-always-on;
340			};
341
342			vcam_reg: LDO7 {
343			     regulator-name = "CAM_ISP_1.8V";
344			     regulator-min-microvolt = <1800000>;
345			     regulator-max-microvolt = <1800000>;
346			};
347
348			vusbdac_reg: LDO8 {
349			     regulator-name = "VUSB+VDAC_3.3V_C210";
350			     regulator-min-microvolt = <3300000>;
351			     regulator-max-microvolt = <3300000>;
352			};
353
354			vccpda_reg: LDO9 {
355			     regulator-name = "VCC_2.8V_PDA";
356			     regulator-min-microvolt = <2800000>;
357			     regulator-max-microvolt = <2800000>;
358			     regulator-always-on;
359			};
360
361			vpll_reg: LDO10 {
362			     regulator-name = "VPLL_1.1V_C210";
363			     regulator-min-microvolt = <1100000>;
364			     regulator-max-microvolt = <1100000>;
365			     regulator-always-on;
366			};
367
368			vtcam_reg: LDO12 {
369			     regulator-name = "VT_CAM_1.8V";
370			     regulator-min-microvolt = <1800000>;
371			     regulator-max-microvolt = <1800000>;
372			};
373
374			vcclcd_reg: LDO13 {
375			     regulator-name = "VCC_3.3V_LCD";
376			     regulator-min-microvolt = <3300000>;
377			     regulator-max-microvolt = <3300000>;
378			};
379
380			vlcd_reg: LDO15 {
381			     regulator-name = "VLCD_2.2V";
382			     regulator-min-microvolt = <2200000>;
383			     regulator-max-microvolt = <2200000>;
384			};
385
386			camsensor_reg: LDO16 {
387			     regulator-name = "CAM_SENSOR_IO_1.8V";
388			     regulator-min-microvolt = <1800000>;
389			     regulator-max-microvolt = <1800000>;
390			};
391
392			tflash_reg: LDO17 {
393			     regulator-name = "VTF_2.8V";
394			     regulator-min-microvolt = <2800000>;
395			     regulator-max-microvolt = <2800000>;
396			};
397
398			vddq_reg: LDO21 {
399			     regulator-name = "VDDQ_M1M2_1.2V";
400			     regulator-min-microvolt = <1200000>;
401			     regulator-max-microvolt = <1200000>;
402			     regulator-always-on;
403			};
404
405			varm_breg: BUCK1 {
406			     /*
407			      * HACK: The real name is VARM_1.2V_C210,
408			      * but exynos-cpufreq does not support
409			      * DT-based regulator lookup yet.
410			      */
411			     regulator-name = "vdd_arm";
412			     regulator-min-microvolt = <900000>;
413			     regulator-max-microvolt = <1350000>;
414			     regulator-always-on;
415			};
416
417			vint_breg: BUCK2 {
418			     regulator-name = "VINT_1.1V_C210";
419			     regulator-min-microvolt = <900000>;
420			     regulator-max-microvolt = <1100000>;
421			     regulator-always-on;
422			};
423
424			camisp_breg: BUCK4 {
425			     regulator-name = "CAM_ISP_CORE_1.2V";
426			     regulator-min-microvolt = <1200000>;
427			     regulator-max-microvolt = <1200000>;
428			};
429
430			vmem_breg: BUCK5 {
431			     regulator-name = "VMEM_1.2V_C210";
432			     regulator-min-microvolt = <1200000>;
433			     regulator-max-microvolt = <1200000>;
434			     regulator-always-on;
435			};
436
437			vccsub_breg: BUCK7 {
438			     regulator-name = "VCC_SUB_2.0V";
439			     regulator-min-microvolt = <2000000>;
440			     regulator-max-microvolt = <2000000>;
441			     regulator-always-on;
442			};
443
444			safe1_sreg: ESAFEOUT1 {
445			     regulator-name = "SAFEOUT1";
446			};
447
448			safe2_sreg: ESAFEOUT2 {
449			     regulator-name = "SAFEOUT2";
450			     regulator-boot-on;
451			};
452		};
453	};
454};
455
456&sdhci_0 {
457	bus-width = <8>;
458	non-removable;
459	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
460	pinctrl-names = "default";
461	vmmc-supply = <&vemmc_reg>;
462	status = "okay";
463};
464
465&sdhci_2 {
466	bus-width = <4>;
467	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
468	pinctrl-names = "default";
469	vmmc-supply = <&tflash_reg>;
470	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
471	status = "okay";
472};
473
474&serial_0 {
475	status = "okay";
476};
477
478&serial_1 {
479	status = "okay";
480};
481
482&serial_2 {
483	status = "okay";
484};
485
486&serial_3 {
487	status = "okay";
488};
489
490&tmu {
491	status = "okay";
492};
493