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