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