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							 <&cpu1 5 5>;
126				};
127				map1 {
128					/* Correspond to 200MHz at freq_table */
129					cooling-device = <&cpu0 8 8>,
130							 <&cpu1 8 8>;
131				};
132			};
133		};
134	};
135};
136
137&adc {
138	vdd-supply = <&ldo3_reg>;
139	status = "okay";
140	assigned-clocks = <&cmu CLK_SCLK_TSADC>;
141	assigned-clock-rates = <6000000>;
142
143	thermistor-ap {
144		compatible = "ntc,ncp15wb473";
145		pullup-uv = <1800000>;
146		pullup-ohm = <100000>;
147		pulldown-ohm = <100000>;
148		io-channels = <&adc 0>;
149	};
150
151	thermistor-battery {
152		compatible = "ntc,ncp15wb473";
153		pullup-uv = <1800000>;
154		pullup-ohm = <100000>;
155		pulldown-ohm = <100000>;
156		io-channels = <&adc 1>;
157	};
158};
159
160&bus_dmc {
161	devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
162	vdd-supply = <&buck1_reg>;
163	status = "okay";
164};
165
166&cpu0 {
167	cpu0-supply = <&buck2_reg>;
168};
169
170&exynos_usbphy {
171	vbus-supply = <&safeout_reg>;
172	status = "okay";
173};
174
175&gpu {
176	mali-supply = <&buck3_reg>;
177	status = "okay";
178};
179
180&hsotg {
181	vusb_d-supply = <&ldo15_reg>;
182	vusb_a-supply = <&ldo12_reg>;
183	dr_mode = "peripheral";
184	status = "okay";
185};
186
187&i2c_0 {
188	#address-cells = <1>;
189	#size-cells = <0>;
190	samsung,i2c-sda-delay = <100>;
191	samsung,i2c-slave-addr = <0x10>;
192	samsung,i2c-max-bus-freq = <100000>;
193	status = "okay";
194
195	s2mps14_pmic@66 {
196		compatible = "samsung,s2mps14-pmic";
197		interrupt-parent = <&gpx0>;
198		interrupts = <7 IRQ_TYPE_NONE>;
199		reg = <0x66>;
200		wakeup-source;
201
202		s2mps14_osc: clocks {
203			compatible = "samsung,s2mps14-clk";
204			#clock-cells = <1>;
205			clock-output-names = "s2mps14_ap", "unused",
206				"s2mps14_bt";
207		};
208
209		regulators {
210			ldo1_reg: LDO1 {
211				regulator-name = "VAP_ALIVE_1.0V";
212				regulator-min-microvolt = <1000000>;
213				regulator-max-microvolt = <1000000>;
214				regulator-always-on;
215			};
216
217			ldo2_reg: LDO2 {
218				regulator-name = "VAP_M1_1.2V";
219				regulator-min-microvolt = <1200000>;
220				regulator-max-microvolt = <1200000>;
221				regulator-always-on;
222			};
223
224			ldo3_reg: LDO3 {
225				regulator-name = "VCC_AP_1.8V";
226				regulator-min-microvolt = <1800000>;
227				regulator-max-microvolt = <1800000>;
228				regulator-always-on;
229			};
230
231			ldo4_reg: LDO4 {
232				regulator-name = "VAP_AVDD_PLL1";
233				regulator-min-microvolt = <1800000>;
234				regulator-max-microvolt = <1800000>;
235				regulator-always-on;
236			};
237
238			ldo5_reg: LDO5 {
239				regulator-name = "VAP_PLL_ISO_1.0V";
240				regulator-min-microvolt = <1000000>;
241				regulator-max-microvolt = <1000000>;
242				regulator-always-on;
243			};
244
245			ldo6_reg: LDO6 {
246				regulator-name = "VAP_MIPI_1.0V";
247				regulator-min-microvolt = <1000000>;
248				regulator-max-microvolt = <1000000>;
249			};
250
251			ldo7_reg: LDO7 {
252				regulator-name = "VAP_AVDD_1.8V";
253				regulator-min-microvolt = <1800000>;
254				regulator-max-microvolt = <1800000>;
255				regulator-always-on;
256			};
257
258			ldo8_reg: LDO8 {
259				regulator-name = "VAP_USB_3.0V";
260				regulator-min-microvolt = <3000000>;
261				regulator-max-microvolt = <3000000>;
262				regulator-always-on;
263			};
264
265			ldo9_reg: LDO9 {
266				regulator-name = "V_LPDDR_1.2V";
267				regulator-min-microvolt = <1200000>;
268				regulator-max-microvolt = <1200000>;
269				regulator-always-on;
270			};
271
272			ldo10_reg: LDO10 {
273				regulator-name = "UNUSED_LDO10";
274				regulator-min-microvolt = <1000000>;
275				regulator-max-microvolt = <1000000>;
276			};
277
278			ldo11_reg: LDO11 {
279				regulator-name = "V_EMMC_1.8V";
280				regulator-min-microvolt = <1800000>;
281				regulator-max-microvolt = <1800000>;
282				samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
283			};
284
285			ldo12_reg: LDO12 {
286				regulator-name = "V_EMMC_2.8V";
287				regulator-min-microvolt = <2800000>;
288				regulator-max-microvolt = <2800000>;
289				samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
290			};
291
292			ldo13_reg: LDO13 {
293				regulator-name = "VSENSOR_2.85V";
294				regulator-min-microvolt = <2850000>;
295				regulator-max-microvolt = <2850000>;
296				regulator-always-on;
297			};
298
299			ldo14_reg: LDO14 {
300				regulator-name = "UNUSED_LDO14";
301				regulator-min-microvolt = <1800000>;
302				regulator-max-microvolt = <1800000>;
303			};
304
305			ldo15_reg: LDO15 {
306				regulator-name = "TSP_AVDD_3.3V";
307				regulator-min-microvolt = <3300000>;
308				regulator-max-microvolt = <3300000>;
309			};
310
311			ldo16_reg: LDO16 {
312				regulator-name = "LCD_VDD_3.3V";
313				regulator-min-microvolt = <3300000>;
314				regulator-max-microvolt = <3300000>;
315			};
316
317			ldo17_reg: LDO17 {
318				regulator-name = "UNUSED_LDO17";
319				regulator-min-microvolt = <1800000>;
320				regulator-max-microvolt = <1800000>;
321			};
322
323			ldo18_reg: LDO18 {
324				regulator-name = "UNUSED_LDO18";
325				regulator-min-microvolt = <1800000>;
326				regulator-max-microvolt = <1800000>;
327			};
328
329			ldo19_reg: LDO19 {
330				regulator-name = "TSP_VDD_1.8V";
331				regulator-min-microvolt = <1800000>;
332				regulator-max-microvolt = <1800000>;
333			};
334
335			ldo20_reg: LDO20 {
336				regulator-name = "LCD_VDD_1.8V";
337				regulator-min-microvolt = <1800000>;
338				regulator-max-microvolt = <1800000>;
339			};
340
341			ldo21_reg: LDO21 {
342				regulator-name = "UNUSED_LDO21";
343				regulator-min-microvolt = <1000000>;
344				regulator-max-microvolt = <1000000>;
345			};
346
347			ldo22_reg: LDO22 {
348				regulator-name = "UNUSED_LDO22";
349				regulator-min-microvolt = <1000000>;
350				regulator-max-microvolt = <1000000>;
351			};
352
353			ldo23_reg: LDO23 {
354				regulator-name = "UNUSED_LDO23";
355				regulator-min-microvolt = <1000000>;
356				regulator-max-microvolt = <1000000>;
357				regulator-always-on;
358			};
359
360			ldo24_reg: LDO24 {
361				regulator-name = "UNUSED_LDO24";
362				regulator-min-microvolt = <1800000>;
363				regulator-max-microvolt = <1800000>;
364			};
365
366			ldo25_reg: LDO25 {
367				regulator-name = "UNUSED_LDO25";
368				regulator-min-microvolt = <1800000>;
369				regulator-max-microvolt = <1800000>;
370			};
371
372			buck1_reg: BUCK1 {
373				regulator-name = "VAP_MIF_1.0V";
374				regulator-min-microvolt = <800000>;
375				regulator-max-microvolt = <900000>;
376				regulator-always-on;
377			};
378
379			buck2_reg: BUCK2 {
380				regulator-name = "VAP_ARM_1.0V";
381				regulator-min-microvolt = <850000>;
382				regulator-max-microvolt = <1150000>;
383				regulator-always-on;
384			};
385
386			buck3_reg: BUCK3 {
387				regulator-name = "VAP_INT3D_1.0V";
388				regulator-min-microvolt = <850000>;
389				regulator-max-microvolt = <1000000>;
390				regulator-always-on;
391			};
392
393			buck4_reg: BUCK4 {
394				regulator-name = "VCC_SUB_1.95V";
395				regulator-min-microvolt = <1950000>;
396				regulator-max-microvolt = <1950000>;
397				regulator-always-on;
398			};
399
400			buck5_reg: BUCK5 {
401				regulator-name = "VCC_SUB_1.35V";
402				regulator-min-microvolt = <1350000>;
403				regulator-max-microvolt = <1350000>;
404				regulator-always-on;
405			};
406		};
407	};
408};
409
410&i2c_1 {
411	#address-cells = <1>;
412	#size-cells = <0>;
413	samsung,i2c-sda-delay = <100>;
414	samsung,i2c-slave-addr = <0x10>;
415	samsung,i2c-max-bus-freq = <400000>;
416	status = "okay";
417
418	fuelgauge@36 {
419		compatible = "maxim,max77836-battery";
420		interrupt-parent = <&gpx1>;
421		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
422		reg = <0x36>;
423	};
424};
425
426&i2s2 {
427	status = "okay";
428};
429
430&mshc_0 {
431	#address-cells = <1>;
432	#size-cells = <0>;
433	broken-cd;
434	non-removable;
435	cap-mmc-highspeed;
436	desc-num = <4>;
437	mmc-hs200-1_8v;
438	card-detect-delay = <200>;
439	vmmc-supply = <&vemmc_reg>;
440	clock-frequency = <100000000>;
441	max-frequency = <100000000>;
442	samsung,dw-mshc-ciu-div = <1>;
443	samsung,dw-mshc-sdr-timing = <0 1>;
444	samsung,dw-mshc-ddr-timing = <1 2>;
445	pinctrl-names = "default";
446	pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
447	bus-width = <8>;
448	status = "okay";
449};
450
451&serial_0 {
452	assigned-clocks = <&cmu CLK_SCLK_UART0>;
453	assigned-clock-rates = <100000000>;
454	status = "okay";
455};
456
457&serial_1 {
458	status = "okay";
459};
460
461&tmu {
462	vtmu-supply = <&ldo7_reg>;
463	status = "okay";
464};
465
466&rtc {
467	clocks = <&cmu CLK_RTC>, <&s2mps14_osc S2MPS11_CLK_AP>;
468	clock-names = "rtc", "rtc_src";
469	status = "okay";
470};
471
472&xusbxti {
473	clock-frequency = <24000000>;
474};
475
476&pinctrl_0 {
477	pinctrl-names = "default";
478	pinctrl-0 = <&sleep0>;
479
480	sleep0: sleep-state {
481		PIN_SLP(gpa0-0, INPUT, DOWN);
482		PIN_SLP(gpa0-1, INPUT, DOWN);
483		PIN_SLP(gpa0-2, INPUT, DOWN);
484		PIN_SLP(gpa0-3, INPUT, DOWN);
485		PIN_SLP(gpa0-4, INPUT, DOWN);
486		PIN_SLP(gpa0-5, INPUT, DOWN);
487		PIN_SLP(gpa0-6, INPUT, DOWN);
488		PIN_SLP(gpa0-7, INPUT, DOWN);
489
490		PIN_SLP(gpa1-0, INPUT, DOWN);
491		PIN_SLP(gpa1-1, INPUT, DOWN);
492		PIN_SLP(gpa1-2, INPUT, DOWN);
493		PIN_SLP(gpa1-3, INPUT, DOWN);
494		PIN_SLP(gpa1-4, INPUT, DOWN);
495		PIN_SLP(gpa1-5, INPUT, DOWN);
496
497		PIN_SLP(gpb-0, PREV, NONE);
498		PIN_SLP(gpb-1, PREV, NONE);
499		PIN_SLP(gpb-2, PREV, NONE);
500		PIN_SLP(gpb-3, PREV, NONE);
501		PIN_SLP(gpb-4, INPUT, DOWN);
502		PIN_SLP(gpb-5, INPUT, DOWN);
503		PIN_SLP(gpb-6, INPUT, DOWN);
504		PIN_SLP(gpb-7, INPUT, DOWN);
505
506		PIN_SLP(gpc0-0, INPUT, DOWN);
507		PIN_SLP(gpc0-1, INPUT, DOWN);
508		PIN_SLP(gpc0-2, INPUT, DOWN);
509		PIN_SLP(gpc0-3, INPUT, DOWN);
510		PIN_SLP(gpc0-4, INPUT, DOWN);
511
512		PIN_SLP(gpc1-0, INPUT, DOWN);
513		PIN_SLP(gpc1-1, INPUT, DOWN);
514		PIN_SLP(gpc1-2, INPUT, DOWN);
515		PIN_SLP(gpc1-3, INPUT, DOWN);
516		PIN_SLP(gpc1-4, INPUT, DOWN);
517
518		PIN_SLP(gpd0-0, INPUT, DOWN);
519		PIN_SLP(gpd0-1, INPUT, DOWN);
520		PIN_SLP(gpd0-2, INPUT, NONE);
521		PIN_SLP(gpd0-3, INPUT, NONE);
522
523		PIN_SLP(gpd1-0, INPUT, NONE);
524		PIN_SLP(gpd1-1, INPUT, NONE);
525		PIN_SLP(gpd1-2, INPUT, NONE);
526		PIN_SLP(gpd1-3, INPUT, NONE);
527	};
528};
529
530&pinctrl_1 {
531	pinctrl-names = "default";
532	pinctrl-0 = <&initial1 &sleep1>;
533
534	initial1: initial-state {
535		PIN_IN(gpk2-0, DOWN, LV1);
536		PIN_IN(gpk2-1, DOWN, LV1);
537		PIN_IN(gpk2-2, DOWN, LV1);
538		PIN_IN(gpk2-3, DOWN, LV1);
539		PIN_IN(gpk2-4, DOWN, LV1);
540		PIN_IN(gpk2-5, DOWN, LV1);
541		PIN_IN(gpk2-6, DOWN, LV1);
542	};
543
544	sleep1: sleep-state {
545		PIN_SLP(gpe0-0, PREV, NONE);
546		PIN_SLP(gpe0-1, PREV, NONE);
547		PIN_SLP(gpe0-2, INPUT, DOWN);
548		PIN_SLP(gpe0-3, INPUT, DOWN);
549		PIN_SLP(gpe0-4, PREV, NONE);
550		PIN_SLP(gpe0-5, INPUT, DOWN);
551		PIN_SLP(gpe0-6, INPUT, DOWN);
552		PIN_SLP(gpe0-7, INPUT, DOWN);
553
554		PIN_SLP(gpe1-0, INPUT, DOWN);
555		PIN_SLP(gpe1-1, PREV, NONE);
556		PIN_SLP(gpe1-2, INPUT, DOWN);
557		PIN_SLP(gpe1-3, INPUT, DOWN);
558		PIN_SLP(gpe1-4, INPUT, DOWN);
559		PIN_SLP(gpe1-5, INPUT, DOWN);
560		PIN_SLP(gpe1-6, INPUT, DOWN);
561		PIN_SLP(gpe1-7, INPUT, NONE);
562
563		PIN_SLP(gpe2-0, INPUT, NONE);
564		PIN_SLP(gpe2-1, INPUT, NONE);
565		PIN_SLP(gpe2-2, INPUT, NONE);
566
567		PIN_SLP(gpk0-0, INPUT, DOWN);
568		PIN_SLP(gpk0-1, INPUT, DOWN);
569		PIN_SLP(gpk0-2, OUT0, NONE);
570		PIN_SLP(gpk0-3, INPUT, DOWN);
571		PIN_SLP(gpk0-4, INPUT, DOWN);
572		PIN_SLP(gpk0-5, INPUT, DOWN);
573		PIN_SLP(gpk0-6, INPUT, DOWN);
574		PIN_SLP(gpk0-7, INPUT, DOWN);
575
576		PIN_SLP(gpk1-0, PREV, NONE);
577		PIN_SLP(gpk1-1, PREV, NONE);
578		PIN_SLP(gpk1-2, INPUT, DOWN);
579		PIN_SLP(gpk1-3, PREV, NONE);
580		PIN_SLP(gpk1-4, PREV, NONE);
581		PIN_SLP(gpk1-5, PREV, NONE);
582		PIN_SLP(gpk1-6, PREV, NONE);
583
584		PIN_SLP(gpk2-0, INPUT, DOWN);
585		PIN_SLP(gpk2-1, INPUT, DOWN);
586		PIN_SLP(gpk2-2, INPUT, DOWN);
587		PIN_SLP(gpk2-3, INPUT, DOWN);
588		PIN_SLP(gpk2-4, INPUT, DOWN);
589		PIN_SLP(gpk2-5, INPUT, DOWN);
590		PIN_SLP(gpk2-6, INPUT, DOWN);
591
592		PIN_SLP(gpl0-0, INPUT, DOWN);
593		PIN_SLP(gpl0-1, INPUT, DOWN);
594		PIN_SLP(gpl0-2, INPUT, DOWN);
595		PIN_SLP(gpl0-3, INPUT, DOWN);
596
597		PIN_SLP(gpm0-0, INPUT, DOWN);
598		PIN_SLP(gpm0-1, INPUT, DOWN);
599		PIN_SLP(gpm0-2, INPUT, DOWN);
600		PIN_SLP(gpm0-3, INPUT, DOWN);
601		PIN_SLP(gpm0-4, INPUT, DOWN);
602		PIN_SLP(gpm0-5, INPUT, DOWN);
603		PIN_SLP(gpm0-6, INPUT, DOWN);
604		PIN_SLP(gpm0-7, INPUT, DOWN);
605
606		PIN_SLP(gpm1-0, INPUT, DOWN);
607		PIN_SLP(gpm1-1, INPUT, DOWN);
608		PIN_SLP(gpm1-2, INPUT, DOWN);
609		PIN_SLP(gpm1-3, INPUT, DOWN);
610		PIN_SLP(gpm1-4, INPUT, DOWN);
611		PIN_SLP(gpm1-5, INPUT, DOWN);
612		PIN_SLP(gpm1-6, INPUT, DOWN);
613
614		PIN_SLP(gpm2-0, INPUT, DOWN);
615		PIN_SLP(gpm2-1, INPUT, DOWN);
616		PIN_SLP(gpm2-2, INPUT, DOWN);
617		PIN_SLP(gpm2-3, INPUT, DOWN);
618		PIN_SLP(gpm2-4, INPUT, DOWN);
619
620		PIN_SLP(gpm3-0, INPUT, DOWN);
621		PIN_SLP(gpm3-1, INPUT, DOWN);
622		PIN_SLP(gpm3-2, INPUT, DOWN);
623		PIN_SLP(gpm3-3, INPUT, DOWN);
624		PIN_SLP(gpm3-4, INPUT, DOWN);
625		PIN_SLP(gpm3-5, INPUT, DOWN);
626		PIN_SLP(gpm3-6, INPUT, DOWN);
627		PIN_SLP(gpm3-7, INPUT, DOWN);
628
629		PIN_SLP(gpm4-0, INPUT, DOWN);
630		PIN_SLP(gpm4-1, INPUT, DOWN);
631		PIN_SLP(gpm4-2, INPUT, DOWN);
632		PIN_SLP(gpm4-3, INPUT, DOWN);
633		PIN_SLP(gpm4-4, INPUT, DOWN);
634		PIN_SLP(gpm4-5, INPUT, DOWN);
635		PIN_SLP(gpm4-6, INPUT, DOWN);
636		PIN_SLP(gpm4-7, INPUT, DOWN);
637	};
638};
639