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