1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos3250 based Monk board device tree source
4 *
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 *
8 * Device tree source file for Samsung's Monk board which is based on
9 * Samsung Exynos3250 SoC.
10 */
11
12/dts-v1/;
13#include "exynos3250.dtsi"
14#include "exynos4412-ppmu-common.dtsi"
15#include <dt-bindings/input/input.h>
16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/clock/samsung,s2mps11.h>
18
19/ {
20	model = "Samsung Monk board";
21	compatible = "samsung,monk", "samsung,exynos3250", "samsung,exynos3";
22
23	aliases {
24		i2c7 = &i2c_max77836;
25	};
26
27	memory@40000000 {
28		device_type = "memory";
29		reg =  <0x40000000 0x1ff00000>;
30	};
31
32	firmware@205f000 {
33		compatible = "samsung,secure-firmware";
34		reg = <0x0205F000 0x1000>;
35	};
36
37	gpio_keys {
38		compatible = "gpio-keys";
39
40		power_key {
41			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
42			linux,code = <KEY_POWER>;
43			label = "power key";
44			debounce-interval = <10>;
45			wakeup-source;
46		};
47	};
48
49	vemmc_reg: voltage-regulator-0 {
50		compatible = "regulator-fixed";
51		regulator-name = "V_EMMC_2.8V-fixed";
52		regulator-min-microvolt = <2800000>;
53		regulator-max-microvolt = <2800000>;
54		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
55		enable-active-high;
56	};
57
58	i2c_max77836: i2c-gpio-0 {
59		compatible = "i2c-gpio";
60		gpios = <&gpd0 2 GPIO_ACTIVE_HIGH>, <&gpd0 3 GPIO_ACTIVE_HIGH>;
61		#address-cells = <1>;
62		#size-cells = <0>;
63
64		max77836: subpmic@25 {
65			compatible = "maxim,max77836";
66			interrupt-parent = <&gpx1>;
67			interrupts = <5 IRQ_TYPE_NONE>;
68			reg = <0x25>;
69			wakeup-source;
70
71			muic: max77836-muic {
72				compatible = "maxim,max77836-muic";
73			};
74
75			regulators {
76				compatible = "maxim,max77836-regulator";
77				safeout_reg: SAFEOUT {
78					regulator-name = "SAFEOUT";
79				};
80
81				charger_reg: CHARGER {
82					regulator-name = "CHARGER";
83					regulator-min-microamp = <45000>;
84					regulator-max-microamp = <475000>;
85					regulator-boot-on;
86				};
87
88				motor_reg: LDO1 {
89					regulator-name = "MOT_2.7V";
90					regulator-min-microvolt = <1100000>;
91					regulator-max-microvolt = <2700000>;
92				};
93
94				LDO2 {
95					regulator-name = "UNUSED_LDO2";
96					regulator-min-microvolt = <800000>;
97					regulator-max-microvolt = <3950000>;
98				};
99			};
100
101			charger {
102				compatible = "maxim,max77836-charger";
103
104				maxim,constant-uvolt = <4350000>;
105				maxim,fast-charge-uamp = <225000>;
106				maxim,eoc-uamp = <7500>;
107				maxim,ovp-uvolt = <6500000>;
108			};
109		};
110	};
111
112	haptics {
113		compatible = "regulator-haptic";
114		haptic-supply = <&motor_reg>;
115		min-microvolt = <1100000>;
116		max-microvolt = <2700000>;
117	};
118
119	thermal-zones {
120		cpu_thermal: cpu-thermal {
121			cooling-maps {
122				map0 {
123					/* Correspond to 500MHz at freq_table */
124					cooling-device = <&cpu0 5 5>;
125				};
126				map1 {
127					/* Correspond to 200MHz at freq_table */
128					cooling-device = <&cpu0 8 8>;
129				};
130			};
131		};
132	};
133};
134
135&adc {
136	vdd-supply = <&ldo3_reg>;
137	status = "okay";
138	assigned-clocks = <&cmu CLK_SCLK_TSADC>;
139	assigned-clock-rates = <6000000>;
140
141	thermistor-ap {
142		compatible = "ntc,ncp15wb473";
143		pullup-uv = <1800000>;
144		pullup-ohm = <100000>;
145		pulldown-ohm = <100000>;
146		io-channels = <&adc 0>;
147	};
148
149	thermistor-battery {
150		compatible = "ntc,ncp15wb473";
151		pullup-uv = <1800000>;
152		pullup-ohm = <100000>;
153		pulldown-ohm = <100000>;
154		io-channels = <&adc 1>;
155	};
156};
157
158&bus_dmc {
159	devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
160	vdd-supply = <&buck1_reg>;
161	status = "okay";
162};
163
164&cpu0 {
165	cpu0-supply = <&buck2_reg>;
166};
167
168&exynos_usbphy {
169	vbus-supply = <&safeout_reg>;
170	status = "okay";
171};
172
173&hsotg {
174	vusb_d-supply = <&ldo15_reg>;
175	vusb_a-supply = <&ldo12_reg>;
176	dr_mode = "peripheral";
177	status = "okay";
178};
179
180&i2c_0 {
181	#address-cells = <1>;
182	#size-cells = <0>;
183	samsung,i2c-sda-delay = <100>;
184	samsung,i2c-slave-addr = <0x10>;
185	samsung,i2c-max-bus-freq = <100000>;
186	status = "okay";
187
188	s2mps14_pmic@66 {
189		compatible = "samsung,s2mps14-pmic";
190		interrupt-parent = <&gpx0>;
191		interrupts = <7 IRQ_TYPE_NONE>;
192		reg = <0x66>;
193		wakeup-source;
194
195		s2mps14_osc: clocks {
196			compatible = "samsung,s2mps14-clk";
197			#clock-cells = <1>;
198			clock-output-names = "s2mps14_ap", "unused",
199				"s2mps14_bt";
200		};
201
202		regulators {
203			ldo1_reg: LDO1 {
204				regulator-name = "VAP_ALIVE_1.0V";
205				regulator-min-microvolt = <1000000>;
206				regulator-max-microvolt = <1000000>;
207				regulator-always-on;
208			};
209
210			ldo2_reg: LDO2 {
211				regulator-name = "VAP_M1_1.2V";
212				regulator-min-microvolt = <1200000>;
213				regulator-max-microvolt = <1200000>;
214				regulator-always-on;
215			};
216
217			ldo3_reg: LDO3 {
218				regulator-name = "VCC_AP_1.8V";
219				regulator-min-microvolt = <1800000>;
220				regulator-max-microvolt = <1800000>;
221				regulator-always-on;
222			};
223
224			ldo4_reg: LDO4 {
225				regulator-name = "VAP_AVDD_PLL1";
226				regulator-min-microvolt = <1800000>;
227				regulator-max-microvolt = <1800000>;
228				regulator-always-on;
229			};
230
231			ldo5_reg: LDO5 {
232				regulator-name = "VAP_PLL_ISO_1.0V";
233				regulator-min-microvolt = <1000000>;
234				regulator-max-microvolt = <1000000>;
235				regulator-always-on;
236			};
237
238			ldo6_reg: LDO6 {
239				regulator-name = "VAP_MIPI_1.0V";
240				regulator-min-microvolt = <1000000>;
241				regulator-max-microvolt = <1000000>;
242			};
243
244			ldo7_reg: LDO7 {
245				regulator-name = "VAP_AVDD_1.8V";
246				regulator-min-microvolt = <1800000>;
247				regulator-max-microvolt = <1800000>;
248				regulator-always-on;
249			};
250
251			ldo8_reg: LDO8 {
252				regulator-name = "VAP_USB_3.0V";
253				regulator-min-microvolt = <3000000>;
254				regulator-max-microvolt = <3000000>;
255				regulator-always-on;
256			};
257
258			ldo9_reg: LDO9 {
259				regulator-name = "V_LPDDR_1.2V";
260				regulator-min-microvolt = <1200000>;
261				regulator-max-microvolt = <1200000>;
262				regulator-always-on;
263			};
264
265			ldo10_reg: LDO10 {
266				regulator-name = "UNUSED_LDO10";
267				regulator-min-microvolt = <1000000>;
268				regulator-max-microvolt = <1000000>;
269			};
270
271			ldo11_reg: LDO11 {
272				regulator-name = "V_EMMC_1.8V";
273				regulator-min-microvolt = <1800000>;
274				regulator-max-microvolt = <1800000>;
275				samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
276			};
277
278			ldo12_reg: LDO12 {
279				regulator-name = "V_EMMC_2.8V";
280				regulator-min-microvolt = <2800000>;
281				regulator-max-microvolt = <2800000>;
282				samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
283			};
284
285			ldo13_reg: LDO13 {
286				regulator-name = "VSENSOR_2.85V";
287				regulator-min-microvolt = <2850000>;
288				regulator-max-microvolt = <2850000>;
289				regulator-always-on;
290			};
291
292			ldo14_reg: LDO14 {
293				regulator-name = "UNUSED_LDO14";
294				regulator-min-microvolt = <1800000>;
295				regulator-max-microvolt = <1800000>;
296			};
297
298			ldo15_reg: LDO15 {
299				regulator-name = "TSP_AVDD_3.3V";
300				regulator-min-microvolt = <3300000>;
301				regulator-max-microvolt = <3300000>;
302			};
303
304			ldo16_reg: LDO16 {
305				regulator-name = "LCD_VDD_3.3V";
306				regulator-min-microvolt = <3300000>;
307				regulator-max-microvolt = <3300000>;
308			};
309
310			ldo17_reg: LDO17 {
311				regulator-name = "UNUSED_LDO17";
312				regulator-min-microvolt = <1800000>;
313				regulator-max-microvolt = <1800000>;
314			};
315
316			ldo18_reg: LDO18 {
317				regulator-name = "UNUSED_LDO18";
318				regulator-min-microvolt = <1800000>;
319				regulator-max-microvolt = <1800000>;
320			};
321
322			ldo19_reg: LDO19 {
323				regulator-name = "TSP_VDD_1.8V";
324				regulator-min-microvolt = <1800000>;
325				regulator-max-microvolt = <1800000>;
326			};
327
328			ldo20_reg: LDO20 {
329				regulator-name = "LCD_VDD_1.8V";
330				regulator-min-microvolt = <1800000>;
331				regulator-max-microvolt = <1800000>;
332			};
333
334			ldo21_reg: LDO21 {
335				regulator-name = "UNUSED_LDO21";
336				regulator-min-microvolt = <1000000>;
337				regulator-max-microvolt = <1000000>;
338			};
339
340			ldo22_reg: LDO22 {
341				regulator-name = "UNUSED_LDO22";
342				regulator-min-microvolt = <1000000>;
343				regulator-max-microvolt = <1000000>;
344			};
345
346			ldo23_reg: LDO23 {
347				regulator-name = "UNUSED_LDO23";
348				regulator-min-microvolt = <1000000>;
349				regulator-max-microvolt = <1000000>;
350				regulator-always-on;
351			};
352
353			ldo24_reg: LDO24 {
354				regulator-name = "UNUSED_LDO24";
355				regulator-min-microvolt = <1800000>;
356				regulator-max-microvolt = <1800000>;
357			};
358
359			ldo25_reg: LDO25 {
360				regulator-name = "UNUSED_LDO25";
361				regulator-min-microvolt = <1800000>;
362				regulator-max-microvolt = <1800000>;
363			};
364
365			buck1_reg: BUCK1 {
366				regulator-name = "VAP_MIF_1.0V";
367				regulator-min-microvolt = <800000>;
368				regulator-max-microvolt = <900000>;
369				regulator-always-on;
370			};
371
372			buck2_reg: BUCK2 {
373				regulator-name = "VAP_ARM_1.0V";
374				regulator-min-microvolt = <850000>;
375				regulator-max-microvolt = <1150000>;
376				regulator-always-on;
377			};
378
379			buck3_reg: BUCK3 {
380				regulator-name = "VAP_INT3D_1.0V";
381				regulator-min-microvolt = <850000>;
382				regulator-max-microvolt = <1000000>;
383				regulator-always-on;
384			};
385
386			buck4_reg: BUCK4 {
387				regulator-name = "VCC_SUB_1.95V";
388				regulator-min-microvolt = <1950000>;
389				regulator-max-microvolt = <1950000>;
390				regulator-always-on;
391			};
392
393			buck5_reg: BUCK5 {
394				regulator-name = "VCC_SUB_1.35V";
395				regulator-min-microvolt = <1350000>;
396				regulator-max-microvolt = <1350000>;
397				regulator-always-on;
398			};
399		};
400	};
401};
402
403&i2c_1 {
404	#address-cells = <1>;
405	#size-cells = <0>;
406	samsung,i2c-sda-delay = <100>;
407	samsung,i2c-slave-addr = <0x10>;
408	samsung,i2c-max-bus-freq = <400000>;
409	status = "okay";
410
411	fuelgauge@36 {
412		compatible = "maxim,max77836-battery";
413		interrupt-parent = <&gpx1>;
414		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
415		reg = <0x36>;
416	};
417};
418
419&i2s2 {
420	status = "okay";
421};
422
423&mshc_0 {
424	#address-cells = <1>;
425	#size-cells = <0>;
426	broken-cd;
427	non-removable;
428	cap-mmc-highspeed;
429	desc-num = <4>;
430	mmc-hs200-1_8v;
431	card-detect-delay = <200>;
432	vmmc-supply = <&vemmc_reg>;
433	clock-frequency = <100000000>;
434	max-frequency = <100000000>;
435	samsung,dw-mshc-ciu-div = <1>;
436	samsung,dw-mshc-sdr-timing = <0 1>;
437	samsung,dw-mshc-ddr-timing = <1 2>;
438	pinctrl-names = "default";
439	pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
440	bus-width = <8>;
441	status = "okay";
442};
443
444&serial_0 {
445	assigned-clocks = <&cmu CLK_SCLK_UART0>;
446	assigned-clock-rates = <100000000>;
447	status = "okay";
448};
449
450&serial_1 {
451	status = "okay";
452};
453
454&tmu {
455	vtmu-supply = <&ldo7_reg>;
456	status = "okay";
457};
458
459&rtc {
460	clocks = <&cmu CLK_RTC>, <&s2mps14_osc S2MPS11_CLK_AP>;
461	clock-names = "rtc", "rtc_src";
462	status = "okay";
463};
464
465&xusbxti {
466	clock-frequency = <24000000>;
467};
468
469&pinctrl_0 {
470	pinctrl-names = "default";
471	pinctrl-0 = <&sleep0>;
472
473	sleep0: sleep-state {
474		PIN_SLP(gpa0-0, INPUT, DOWN);
475		PIN_SLP(gpa0-1, INPUT, DOWN);
476		PIN_SLP(gpa0-2, INPUT, DOWN);
477		PIN_SLP(gpa0-3, INPUT, DOWN);
478		PIN_SLP(gpa0-4, INPUT, DOWN);
479		PIN_SLP(gpa0-5, INPUT, DOWN);
480		PIN_SLP(gpa0-6, INPUT, DOWN);
481		PIN_SLP(gpa0-7, INPUT, DOWN);
482
483		PIN_SLP(gpa1-0, INPUT, DOWN);
484		PIN_SLP(gpa1-1, INPUT, DOWN);
485		PIN_SLP(gpa1-2, INPUT, DOWN);
486		PIN_SLP(gpa1-3, INPUT, DOWN);
487		PIN_SLP(gpa1-4, INPUT, DOWN);
488		PIN_SLP(gpa1-5, INPUT, DOWN);
489
490		PIN_SLP(gpb-0, PREV, NONE);
491		PIN_SLP(gpb-1, PREV, NONE);
492		PIN_SLP(gpb-2, PREV, NONE);
493		PIN_SLP(gpb-3, PREV, NONE);
494		PIN_SLP(gpb-4, INPUT, DOWN);
495		PIN_SLP(gpb-5, INPUT, DOWN);
496		PIN_SLP(gpb-6, INPUT, DOWN);
497		PIN_SLP(gpb-7, INPUT, DOWN);
498
499		PIN_SLP(gpc0-0, INPUT, DOWN);
500		PIN_SLP(gpc0-1, INPUT, DOWN);
501		PIN_SLP(gpc0-2, INPUT, DOWN);
502		PIN_SLP(gpc0-3, INPUT, DOWN);
503		PIN_SLP(gpc0-4, INPUT, DOWN);
504
505		PIN_SLP(gpc1-0, INPUT, DOWN);
506		PIN_SLP(gpc1-1, INPUT, DOWN);
507		PIN_SLP(gpc1-2, INPUT, DOWN);
508		PIN_SLP(gpc1-3, INPUT, DOWN);
509		PIN_SLP(gpc1-4, INPUT, DOWN);
510
511		PIN_SLP(gpd0-0, INPUT, DOWN);
512		PIN_SLP(gpd0-1, INPUT, DOWN);
513		PIN_SLP(gpd0-2, INPUT, NONE);
514		PIN_SLP(gpd0-3, INPUT, NONE);
515
516		PIN_SLP(gpd1-0, INPUT, NONE);
517		PIN_SLP(gpd1-1, INPUT, NONE);
518		PIN_SLP(gpd1-2, INPUT, NONE);
519		PIN_SLP(gpd1-3, INPUT, NONE);
520	};
521};
522
523&pinctrl_1 {
524	pinctrl-names = "default";
525	pinctrl-0 = <&initial1 &sleep1>;
526
527	initial1: initial-state {
528		PIN_IN(gpk2-0, DOWN, LV1);
529		PIN_IN(gpk2-1, DOWN, LV1);
530		PIN_IN(gpk2-2, DOWN, LV1);
531		PIN_IN(gpk2-3, DOWN, LV1);
532		PIN_IN(gpk2-4, DOWN, LV1);
533		PIN_IN(gpk2-5, DOWN, LV1);
534		PIN_IN(gpk2-6, DOWN, LV1);
535	};
536
537	sleep1: sleep-state {
538		PIN_SLP(gpe0-0, PREV, NONE);
539		PIN_SLP(gpe0-1, PREV, NONE);
540		PIN_SLP(gpe0-2, INPUT, DOWN);
541		PIN_SLP(gpe0-3, INPUT, DOWN);
542		PIN_SLP(gpe0-4, PREV, NONE);
543		PIN_SLP(gpe0-5, INPUT, DOWN);
544		PIN_SLP(gpe0-6, INPUT, DOWN);
545		PIN_SLP(gpe0-7, INPUT, DOWN);
546
547		PIN_SLP(gpe1-0, INPUT, DOWN);
548		PIN_SLP(gpe1-1, PREV, NONE);
549		PIN_SLP(gpe1-2, INPUT, DOWN);
550		PIN_SLP(gpe1-3, INPUT, DOWN);
551		PIN_SLP(gpe1-4, INPUT, DOWN);
552		PIN_SLP(gpe1-5, INPUT, DOWN);
553		PIN_SLP(gpe1-6, INPUT, DOWN);
554		PIN_SLP(gpe1-7, INPUT, NONE);
555
556		PIN_SLP(gpe2-0, INPUT, NONE);
557		PIN_SLP(gpe2-1, INPUT, NONE);
558		PIN_SLP(gpe2-2, INPUT, NONE);
559
560		PIN_SLP(gpk0-0, INPUT, DOWN);
561		PIN_SLP(gpk0-1, INPUT, DOWN);
562		PIN_SLP(gpk0-2, OUT0, NONE);
563		PIN_SLP(gpk0-3, INPUT, DOWN);
564		PIN_SLP(gpk0-4, INPUT, DOWN);
565		PIN_SLP(gpk0-5, INPUT, DOWN);
566		PIN_SLP(gpk0-6, INPUT, DOWN);
567		PIN_SLP(gpk0-7, INPUT, DOWN);
568
569		PIN_SLP(gpk1-0, PREV, NONE);
570		PIN_SLP(gpk1-1, PREV, NONE);
571		PIN_SLP(gpk1-2, INPUT, DOWN);
572		PIN_SLP(gpk1-3, PREV, NONE);
573		PIN_SLP(gpk1-4, PREV, NONE);
574		PIN_SLP(gpk1-5, PREV, NONE);
575		PIN_SLP(gpk1-6, PREV, NONE);
576
577		PIN_SLP(gpk2-0, INPUT, DOWN);
578		PIN_SLP(gpk2-1, INPUT, DOWN);
579		PIN_SLP(gpk2-2, INPUT, DOWN);
580		PIN_SLP(gpk2-3, INPUT, DOWN);
581		PIN_SLP(gpk2-4, INPUT, DOWN);
582		PIN_SLP(gpk2-5, INPUT, DOWN);
583		PIN_SLP(gpk2-6, INPUT, DOWN);
584
585		PIN_SLP(gpl0-0, INPUT, DOWN);
586		PIN_SLP(gpl0-1, INPUT, DOWN);
587		PIN_SLP(gpl0-2, INPUT, DOWN);
588		PIN_SLP(gpl0-3, INPUT, DOWN);
589
590		PIN_SLP(gpm0-0, INPUT, DOWN);
591		PIN_SLP(gpm0-1, INPUT, DOWN);
592		PIN_SLP(gpm0-2, INPUT, DOWN);
593		PIN_SLP(gpm0-3, INPUT, DOWN);
594		PIN_SLP(gpm0-4, INPUT, DOWN);
595		PIN_SLP(gpm0-5, INPUT, DOWN);
596		PIN_SLP(gpm0-6, INPUT, DOWN);
597		PIN_SLP(gpm0-7, INPUT, DOWN);
598
599		PIN_SLP(gpm1-0, INPUT, DOWN);
600		PIN_SLP(gpm1-1, INPUT, DOWN);
601		PIN_SLP(gpm1-2, INPUT, DOWN);
602		PIN_SLP(gpm1-3, INPUT, DOWN);
603		PIN_SLP(gpm1-4, INPUT, DOWN);
604		PIN_SLP(gpm1-5, INPUT, DOWN);
605		PIN_SLP(gpm1-6, INPUT, DOWN);
606
607		PIN_SLP(gpm2-0, INPUT, DOWN);
608		PIN_SLP(gpm2-1, INPUT, DOWN);
609		PIN_SLP(gpm2-2, INPUT, DOWN);
610		PIN_SLP(gpm2-3, INPUT, DOWN);
611		PIN_SLP(gpm2-4, INPUT, DOWN);
612
613		PIN_SLP(gpm3-0, INPUT, DOWN);
614		PIN_SLP(gpm3-1, INPUT, DOWN);
615		PIN_SLP(gpm3-2, INPUT, DOWN);
616		PIN_SLP(gpm3-3, INPUT, DOWN);
617		PIN_SLP(gpm3-4, INPUT, DOWN);
618		PIN_SLP(gpm3-5, INPUT, DOWN);
619		PIN_SLP(gpm3-6, INPUT, DOWN);
620		PIN_SLP(gpm3-7, INPUT, DOWN);
621
622		PIN_SLP(gpm4-0, INPUT, DOWN);
623		PIN_SLP(gpm4-1, INPUT, DOWN);
624		PIN_SLP(gpm4-2, INPUT, DOWN);
625		PIN_SLP(gpm4-3, INPUT, DOWN);
626		PIN_SLP(gpm4-4, INPUT, DOWN);
627		PIN_SLP(gpm4-5, INPUT, DOWN);
628		PIN_SLP(gpm4-6, INPUT, DOWN);
629		PIN_SLP(gpm4-7, INPUT, DOWN);
630	};
631};
632