• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos5250 based Arndale board device tree source
4 *
5 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 */
8
9/dts-v1/;
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/interrupt-controller/irq.h>
12#include <dt-bindings/input/input.h>
13#include "exynos5250.dtsi"
14
15/ {
16	model = "Insignal Arndale evaluation board based on EXYNOS5250";
17	compatible = "insignal,arndale", "samsung,exynos5250", "samsung,exynos5";
18
19	memory@40000000 {
20		device_type = "memory";
21		reg = <0x40000000 0x80000000>;
22	};
23
24	chosen {
25		bootargs = "console=ttySAC2,115200";
26	};
27
28	gpio_keys {
29		compatible = "gpio-keys";
30
31		menu {
32			label = "SW-TACT2";
33			gpios = <&gpx1 4 GPIO_ACTIVE_LOW>;
34			linux,code = <KEY_MENU>;
35			wakeup-source;
36		};
37
38		home {
39			label = "SW-TACT3";
40			gpios = <&gpx1 5 GPIO_ACTIVE_LOW>;
41			linux,code = <KEY_HOME>;
42			wakeup-source;
43		};
44
45		up {
46			label = "SW-TACT4";
47			gpios = <&gpx1 6 GPIO_ACTIVE_LOW>;
48			linux,code = <KEY_UP>;
49			wakeup-source;
50		};
51
52		down {
53			label = "SW-TACT5";
54			gpios = <&gpx1 7 GPIO_ACTIVE_LOW>;
55			linux,code = <KEY_DOWN>;
56			wakeup-source;
57		};
58
59		back {
60			label = "SW-TACT6";
61			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
62			linux,code = <KEY_BACK>;
63			wakeup-source;
64		};
65
66		wakeup {
67			label = "SW-TACT7";
68			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
69			linux,code = <KEY_WAKEUP>;
70			wakeup-source;
71		};
72	};
73
74	regulators {
75		compatible = "simple-bus";
76		#address-cells = <1>;
77		#size-cells = <0>;
78
79		main_dc_reg: regulator@0 {
80			compatible = "regulator-fixed";
81			reg = <0>;
82			regulator-name = "MAIN_DC";
83		};
84
85		mmc_reg: regulator@1 {
86			compatible = "regulator-fixed";
87			reg = <1>;
88			regulator-name = "VDD_33ON_2.8V";
89			regulator-min-microvolt = <2800000>;
90			regulator-max-microvolt = <2800000>;
91			gpio = <&gpx1 1 GPIO_ACTIVE_LOW>;
92			enable-active-high;
93		};
94
95		reg_hdmi_en: regulator@2 {
96			compatible = "regulator-fixed";
97			reg = <2>;
98			regulator-name = "hdmi-en";
99		};
100	};
101
102	fixed-rate-clocks {
103		xxti {
104			compatible = "samsung,clock-xxti";
105			clock-frequency = <24000000>;
106		};
107	};
108
109	// SMSC USB3503 connected in hardware only mode as a PHY
110	usb_hub: usb-hub {
111		compatible = "smsc,usb3503a";
112
113		reset-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
114		connect-gpios = <&gpd1 7 GPIO_ACTIVE_LOW>;
115	};
116};
117
118&cpu0 {
119	cpu0-supply = <&buck2_reg>;
120};
121
122&dp {
123	status = "okay";
124	samsung,color-space = <0>;
125	samsung,color-depth = <1>;
126	samsung,link-rate = <0x0a>;
127	samsung,lane-count = <4>;
128
129	display-timings {
130		native-mode = <&timing0>;
131
132		timing0: timing {
133			/* 2560x1600 DP panel */
134			clock-frequency = <50000>;
135			hactive = <2560>;
136			vactive = <1600>;
137			hfront-porch = <48>;
138			hback-porch = <80>;
139			hsync-len = <32>;
140			vback-porch = <16>;
141			vfront-porch = <8>;
142			vsync-len = <6>;
143		};
144	};
145};
146
147&fimd {
148	status = "okay";
149};
150
151&hdmi {
152	pinctrl-names = "default";
153	pinctrl-0 = <&hdmi_hpd>;
154	status = "okay";
155	ddc = <&i2c_ddc>;
156	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
157	vdd_osc-supply = <&ldo10_reg>;
158	vdd_pll-supply = <&ldo8_reg>;
159	vdd-supply = <&ldo8_reg>;
160};
161
162&i2c_0 {
163	status = "okay";
164	samsung,i2c-sda-delay = <100>;
165	samsung,i2c-max-bus-freq = <20000>;
166	samsung,i2c-slave-addr = <0x66>;
167
168	s5m8767_pmic@66 {
169		compatible = "samsung,s5m8767-pmic";
170		reg = <0x66>;
171		interrupt-parent = <&gpx3>;
172		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
173		pinctrl-names = "default";
174		pinctrl-0 = <&s5m8767_irq>;
175
176		vinb1-supply = <&main_dc_reg>;
177		vinb2-supply = <&main_dc_reg>;
178		vinb3-supply = <&main_dc_reg>;
179		vinb4-supply = <&main_dc_reg>;
180		vinb5-supply = <&main_dc_reg>;
181		vinb6-supply = <&main_dc_reg>;
182		vinb7-supply = <&main_dc_reg>;
183		vinb8-supply = <&main_dc_reg>;
184		vinb9-supply = <&main_dc_reg>;
185
186		vinl1-supply = <&buck7_reg>;
187		vinl2-supply = <&buck7_reg>;
188		vinl3-supply = <&buck7_reg>;
189		vinl4-supply = <&main_dc_reg>;
190		vinl5-supply = <&main_dc_reg>;
191		vinl6-supply = <&main_dc_reg>;
192		vinl7-supply = <&main_dc_reg>;
193		vinl8-supply = <&buck8_reg>;
194		vinl9-supply = <&buck8_reg>;
195
196		s5m8767,pmic-buck2-dvs-voltage = <1300000>;
197		s5m8767,pmic-buck3-dvs-voltage = <1100000>;
198		s5m8767,pmic-buck4-dvs-voltage = <1200000>;
199		s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_HIGH>,
200		                              <&gpd1 1 GPIO_ACTIVE_HIGH>,
201		                              <&gpd1 2 GPIO_ACTIVE_HIGH>;
202		s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>,
203		                             <&gpx2 4 GPIO_ACTIVE_HIGH>,
204		                             <&gpx2 5 GPIO_ACTIVE_HIGH>;
205
206		regulators {
207			ldo1_reg: LDO1 {
208				regulator-name = "VDD_ALIVE_1.0V";
209				regulator-min-microvolt = <1100000>;
210				regulator-max-microvolt = <1100000>;
211				regulator-always-on;
212				regulator-boot-on;
213				op_mode = <1>;
214			};
215
216			ldo2_reg: LDO2 {
217				regulator-name = "VDD_28IO_DP_1.35V";
218				regulator-min-microvolt = <1200000>;
219				regulator-max-microvolt = <1200000>;
220				regulator-always-on;
221				regulator-boot-on;
222				op_mode = <1>;
223			};
224
225			ldo3_reg: LDO3 {
226				regulator-name = "VDD_COMMON1_1.8V";
227				regulator-min-microvolt = <1800000>;
228				regulator-max-microvolt = <1800000>;
229				regulator-always-on;
230				regulator-boot-on;
231				op_mode = <1>;
232			};
233
234			ldo4_reg: LDO4 {
235				regulator-name = "VDD_IOPERI_1.8V";
236				regulator-min-microvolt = <1800000>;
237				regulator-max-microvolt = <1800000>;
238				regulator-always-on;
239				op_mode = <1>;
240			};
241
242			ldo5_reg: LDO5 {
243				regulator-name = "VDD_EXT_1.8V";
244				regulator-min-microvolt = <1800000>;
245				regulator-max-microvolt = <1800000>;
246				regulator-always-on;
247				regulator-boot-on;
248				op_mode = <1>;
249			};
250
251			ldo6_reg: LDO6 {
252				regulator-name = "VDD_MPLL_1.1V";
253				regulator-min-microvolt = <1100000>;
254				regulator-max-microvolt = <1100000>;
255				regulator-always-on;
256				regulator-boot-on;
257				op_mode = <1>;
258			};
259
260			ldo7_reg: LDO7 {
261				regulator-name = "VDD_XPLL_1.1V";
262				regulator-min-microvolt = <1100000>;
263				regulator-max-microvolt = <1100000>;
264				regulator-always-on;
265				regulator-boot-on;
266				op_mode = <1>;
267			};
268
269			ldo8_reg: LDO8 {
270				regulator-name = "VDD_COMMON2_1.0V";
271				regulator-min-microvolt = <1000000>;
272				regulator-max-microvolt = <1000000>;
273				regulator-always-on;
274				regulator-boot-on;
275				op_mode = <1>;
276			};
277
278			ldo9_reg: LDO9 {
279				regulator-name = "VDD_33ON_3.0V";
280				regulator-min-microvolt = <3000000>;
281				regulator-max-microvolt = <3000000>;
282				op_mode = <1>;
283			};
284
285			ldo10_reg: LDO10 {
286				regulator-name = "VDD_COMMON3_1.8V";
287				regulator-min-microvolt = <1800000>;
288				regulator-max-microvolt = <1800000>;
289				regulator-always-on;
290				regulator-boot-on;
291				op_mode = <1>;
292			};
293
294			ldo11_reg: LDO11 {
295				regulator-name = "VDD_ABB2_1.8V";
296				regulator-min-microvolt = <1800000>;
297				regulator-max-microvolt = <1800000>;
298				regulator-always-on;
299				regulator-boot-on;
300				op_mode = <1>;
301			};
302
303			ldo12_reg: LDO12 {
304				regulator-name = "VDD_USB_3.0V";
305				regulator-min-microvolt = <3000000>;
306				regulator-max-microvolt = <3000000>;
307				regulator-always-on;
308				regulator-boot-on;
309				op_mode = <1>;
310			};
311
312			ldo13_reg: LDO13 {
313				regulator-name = "VDDQ_C2C_W_1.8V";
314				regulator-min-microvolt = <1800000>;
315				regulator-max-microvolt = <1800000>;
316				regulator-always-on;
317				regulator-boot-on;
318				op_mode = <1>;
319			};
320
321			ldo14_reg: LDO14 {
322				regulator-name = "VDD18_ABB0_3_1.8V";
323				regulator-min-microvolt = <1800000>;
324				regulator-max-microvolt = <1800000>;
325				regulator-always-on;
326				regulator-boot-on;
327				op_mode = <1>;
328			};
329
330			ldo15_reg: LDO15 {
331				regulator-name = "VDD10_COMMON4_1.0V";
332				regulator-min-microvolt = <1000000>;
333				regulator-max-microvolt = <1000000>;
334				regulator-always-on;
335				regulator-boot-on;
336				op_mode = <1>;
337			};
338
339			ldo16_reg: LDO16 {
340				regulator-name = "VDD18_HSIC_1.8V";
341				regulator-min-microvolt = <1800000>;
342				regulator-max-microvolt = <1800000>;
343				regulator-always-on;
344				regulator-boot-on;
345				op_mode = <1>;
346			};
347
348			ldo17_reg: LDO17 {
349				regulator-name = "VDDQ_MMC2_3_2.8V";
350				regulator-min-microvolt = <2800000>;
351				regulator-max-microvolt = <2800000>;
352				regulator-always-on;
353				regulator-boot-on;
354				op_mode = <1>;
355			};
356
357			ldo18_reg: LDO18 {
358				regulator-name = "VDD_33ON_2.8V";
359				regulator-min-microvolt = <2800000>;
360				regulator-max-microvolt = <2800000>;
361				op_mode = <1>;
362			};
363
364			ldo22_reg: LDO22 {
365				regulator-name = "EXT_33_OFF";
366				regulator-min-microvolt = <3300000>;
367				regulator-max-microvolt = <3300000>;
368				op_mode = <1>;
369			};
370
371			ldo23_reg: LDO23 {
372				regulator-name = "EXT_28_OFF";
373				regulator-min-microvolt = <2800000>;
374				regulator-max-microvolt = <2800000>;
375				op_mode = <1>;
376			};
377
378			ldo25_reg: LDO25 {
379				regulator-name = "PVDD_LDO25";
380				regulator-min-microvolt = <1200000>;
381				regulator-max-microvolt = <1200000>;
382				op_mode = <1>;
383			};
384
385			ldo26_reg: LDO26 {
386				regulator-name = "EXT_18_OFF";
387				regulator-min-microvolt = <1800000>;
388				regulator-max-microvolt = <1800000>;
389				op_mode = <1>;
390			};
391
392			buck1_reg: BUCK1 {
393				regulator-name = "vdd_mif";
394				regulator-min-microvolt = <950000>;
395				regulator-max-microvolt = <1200000>;
396				regulator-always-on;
397				regulator-boot-on;
398				op_mode = <1>;
399			};
400
401			buck2_reg: BUCK2 {
402				regulator-name = "vdd_arm";
403				regulator-min-microvolt = <912500>;
404				regulator-max-microvolt = <1300000>;
405				regulator-always-on;
406				regulator-boot-on;
407				op_mode = <1>;
408			};
409
410			buck3_reg: BUCK3 {
411				regulator-name = "vdd_int";
412				regulator-min-microvolt = <900000>;
413				regulator-max-microvolt = <1200000>;
414				regulator-always-on;
415				regulator-boot-on;
416				op_mode = <1>;
417			};
418
419			buck4_reg: BUCK4 {
420				regulator-name = "vdd_g3d";
421				regulator-min-microvolt = <1000000>;
422				regulator-max-microvolt = <1000000>;
423				regulator-always-on;
424				regulator-boot-on;
425				op_mode = <1>;
426			};
427
428			buck5_reg: BUCK5 {
429				regulator-name = "VDD_MEM_1.35V";
430				regulator-min-microvolt = <750000>;
431				regulator-max-microvolt = <1355000>;
432				regulator-always-on;
433				regulator-boot-on;
434				op_mode = <1>;
435			};
436
437			buck7_reg: BUCK7 {
438				regulator-name = "PVDD_BUCK7";
439				regulator-always-on;
440				op_mode = <1>;
441			};
442
443			buck8_reg: BUCK8 {
444				regulator-name = "PVDD_BUCK8";
445				regulator-always-on;
446				op_mode = <1>;
447			};
448
449			buck9_reg: BUCK9 {
450				regulator-name = "VDD_33_OFF_EXT1";
451				regulator-min-microvolt = <750000>;
452				regulator-max-microvolt = <3000000>;
453				op_mode = <1>;
454			};
455		};
456	};
457};
458
459&i2c_3 {
460	status = "okay";
461
462	wm1811a@1a {
463		compatible = "wlf,wm1811";
464		reg = <0x1a>;
465
466		AVDD2-supply = <&main_dc_reg>;
467		CPVDD-supply = <&main_dc_reg>;
468		DBVDD1-supply = <&main_dc_reg>;
469		DBVDD2-supply = <&main_dc_reg>;
470		DBVDD3-supply = <&main_dc_reg>;
471		LDO1VDD-supply = <&main_dc_reg>;
472		SPKVDD1-supply = <&main_dc_reg>;
473		SPKVDD2-supply = <&main_dc_reg>;
474
475		wlf,ldo1ena = <&gpb0 0 GPIO_ACTIVE_HIGH>;
476		wlf,ldo2ena = <&gpb0 1 GPIO_ACTIVE_HIGH>;
477	};
478};
479
480&i2c_8 {
481	status = "okay";
482	/* used by HDMI PHY */
483	samsung,i2c-sda-delay = <100>;
484	samsung,i2c-max-bus-freq = <66000>;
485};
486
487&i2c_9 {
488	status = "okay";
489	samsung,i2c-sda-delay = <100>;
490	samsung,i2c-max-bus-freq = <40000>;
491	samsung,i2c-slave-addr = <0x38>;
492
493	sata_phy_i2c:sata-phy@38 {
494		compatible = "samsung,exynos-sataphy-i2c";
495		reg = <0x38>;
496	};
497};
498
499&i2s0 {
500	status = "okay";
501};
502
503&mixer {
504	status = "okay";
505};
506
507&mmc_0 {
508	status = "okay";
509	broken-cd;
510	card-detect-delay = <200>;
511	samsung,dw-mshc-ciu-div = <3>;
512	samsung,dw-mshc-sdr-timing = <2 3>;
513	samsung,dw-mshc-ddr-timing = <1 2>;
514	vmmc-supply = <&mmc_reg>;
515	pinctrl-names = "default";
516	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
517	bus-width = <8>;
518	cap-mmc-highspeed;
519};
520
521&mmc_2 {
522	status = "okay";
523	card-detect-delay = <200>;
524	samsung,dw-mshc-ciu-div = <3>;
525	samsung,dw-mshc-sdr-timing = <2 3>;
526	samsung,dw-mshc-ddr-timing = <1 2>;
527	vmmc-supply = <&mmc_reg>;
528	pinctrl-names = "default";
529	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
530	bus-width = <4>;
531	disable-wp;
532	cap-sd-highspeed;
533};
534
535&pinctrl_0 {
536	s5m8767_irq: s5m8767-irq {
537		samsung,pins = "gpx3-2";
538		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
539	};
540};
541
542&rtc {
543	status = "okay";
544};
545
546&sata {
547	status = "okay";
548};
549
550&sata_phy {
551	status = "okay";
552	samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
553};
554
555&soc {
556	/*
557	 * For unknown reasons HDMI-DDC does not work with Exynos I2C
558	 * controllers. Lets use software I2C over GPIO pins as a workaround.
559	 */
560	i2c_ddc: i2c-gpio {
561		pinctrl-names = "default";
562		pinctrl-0 = <&i2c2_gpio_bus>;
563		status = "okay";
564		compatible = "i2c-gpio";
565		gpios = <&gpa0 6 0 /* sda */
566			 &gpa0 7 0 /* scl */
567			>;
568		i2c-gpio,delay-us = <2>;
569		#address-cells = <1>;
570		#size-cells = <0>;
571	};
572};
573