• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos3250 based ARTIK5 module device tree source
4 *
5 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 *
8 * Device tree source file for Samsung's ARTIK5 module which is based on
9 * Samsung Exynos3250 SoC.
10 */
11
12#include "exynos3250.dtsi"
13#include <dt-bindings/clock/samsung,s2mps11.h>
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/interrupt-controller/irq.h>
16
17/ {
18	compatible = "samsung,artik5", "samsung,exynos3250", "samsung,exynos3";
19
20	chosen {
21		stdout-path = &serial_2;
22	};
23
24	memory@40000000 {
25		device_type = "memory";
26		reg = <0x40000000 0x1ff00000>;
27	};
28
29	firmware@205f000 {
30		compatible = "samsung,secure-firmware";
31		reg = <0x0205f000 0x1000>;
32	};
33
34	thermal-zones {
35		cpu_thermal: cpu-thermal {
36			cooling-maps {
37				map0 {
38					/* Corresponds to 500MHz */
39					cooling-device = <&cpu0 5 5>;
40				};
41				map1 {
42					/* Corresponds to 200MHz */
43					cooling-device = <&cpu0 8 8>;
44				};
45			};
46		};
47	};
48};
49
50&adc {
51	vdd-supply = <&ldo7_reg>;
52	assigned-clocks = <&cmu CLK_SCLK_TSADC>;
53	assigned-clock-rates = <6000000>;
54};
55
56&cpu0 {
57	cpu0-supply = <&buck2_reg>;
58};
59
60&i2c_0 {
61	#address-cells = <1>;
62	#size-cells = <0>;
63	samsung,i2c-sda-delay = <100>;
64	samsung,i2c-slave-addr = <0x10>;
65	samsung,i2c-max-bus-freq = <100000>;
66	status = "okay";
67
68	s2mps14_pmic@66 {
69		compatible = "samsung,s2mps14-pmic";
70		interrupt-parent = <&gpx3>;
71		interrupts = <5 IRQ_TYPE_NONE>;
72		pinctrl-names = "default";
73		pinctrl-0 = <&s2mps14_irq>;
74		reg = <0x66>;
75
76		s2mps14_osc: clocks {
77			compatible = "samsung,s2mps14-clk";
78			#clock-cells = <1>;
79			clock-output-names = "s2mps14_ap", "unused",
80				"s2mps14_bt";
81		};
82
83		regulators {
84			ldo1_reg: LDO1 {
85				/* VDD_ALIVE15x */
86				regulator-name = "VLDO1_1.0V";
87				regulator-min-microvolt = <1000000>;
88				regulator-max-microvolt = <1000000>;
89				regulator-always-on;
90			};
91
92			ldo2_reg: LDO2 {
93				/* VDDQM176 ~ VDDQM185 */
94				regulator-name = "VLDO2_1.2V";
95				regulator-min-microvolt = <1200000>;
96				regulator-max-microvolt = <1200000>;
97				regulator-always-on;
98			};
99
100			ldo3_reg: LDO3 {
101				/*
102				 * VDD1_E106 ~ VDD1_E111
103				 * DVDD_RTC_AP, DVDD_MMC2_AP
104				 */
105				regulator-name = "VLDO3_1.8V";
106				regulator-min-microvolt = <1800000>;
107				regulator-max-microvolt = <1800000>;
108				regulator-always-on;
109			};
110
111			ldo4_reg: LDO4 {
112				/*  AVDD_PLL1120 ~ AVDD_PLL11201 */
113				regulator-name = "VLDO4_1.8V";
114				regulator-min-microvolt = <1800000>;
115				regulator-max-microvolt = <1800000>;
116				regulator-always-on;
117			};
118
119			ldo5_reg: LDO5 {
120				/* VDDI_PLL_ISO141 ~ VDDI_PLL_ISO142 */
121				regulator-name = "VLDO5_1.0V";
122				regulator-min-microvolt = <1000000>;
123				regulator-max-microvolt = <1000000>;
124				regulator-always-on;
125			};
126
127			ldo6_reg: LDO6 {
128				/* VDD_USB, VDD10_HSIC */
129				regulator-name = "VLDO6_1.0V";
130				regulator-min-microvolt = <1000000>;
131				regulator-max-microvolt = <1000000>;
132				regulator-always-on;
133			};
134
135			ldo7_reg: LDO7 {
136				/*
137				 * VDD18P, AVDD18_TS, AVDD18_HSIC, AVDD_PLL2,
138				 * AVDD_ADC, AVDD_ABB_0, M4S_VDD18
139				 */
140				regulator-name = "VLDO7_1.8V";
141				regulator-min-microvolt = <1800000>;
142				regulator-max-microvolt = <1800000>;
143				regulator-always-on;
144			};
145
146			ldo8_reg: LDO8 {
147				/* AVDD33_UOTG */
148				regulator-name = "VLDO8_3.0V";
149				regulator-min-microvolt = <3000000>;
150				regulator-max-microvolt = <3000000>;
151				regulator-always-on;
152			};
153
154			ldo9_reg: LDO9 {
155				/* VDDQ_E86 ~ VDDQ_E105*/
156				regulator-name = "VLDO9_1.2V";
157				regulator-min-microvolt = <1200000>;
158				regulator-max-microvolt = <1200000>;
159				regulator-always-on;
160			};
161
162			ldo10_reg: LDO10 {
163				regulator-name = "VLDO10_1.0V";
164				regulator-min-microvolt = <1000000>;
165				regulator-max-microvolt = <1000000>;
166			};
167
168			ldo11_reg: LDO11 {
169				/* VDD74 ~ VDD75 */
170				regulator-name = "VLDO11_1.8V";
171				regulator-min-microvolt = <1800000>;
172				regulator-max-microvolt = <1800000>;
173				samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
174			};
175
176			ldo12_reg: LDO12 {
177				/* VDD72 ~ VDD73 */
178				regulator-name = "VLDO12_2.8V";
179				regulator-min-microvolt = <2800000>;
180				regulator-max-microvolt = <2800000>;
181				samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
182			};
183
184			ldo13_reg: LDO13 {
185				regulator-name = "VLDO13_2.8V";
186				regulator-min-microvolt = <2800000>;
187				regulator-max-microvolt = <2800000>;
188			};
189
190			ldo14_reg: LDO14 {
191				regulator-name = "VLDO14_2.7V";
192				regulator-min-microvolt = <2700000>;
193				regulator-max-microvolt = <2700000>;
194			};
195
196			ldo15_reg: LDO15 {
197				regulator-name = "VLDO_3.3V";
198				regulator-min-microvolt = <3300000>;
199				regulator-max-microvolt = <3300000>;
200			};
201
202			ldo16_reg: LDO16 {
203				regulator-name = "VLDO16_3.3V";
204				regulator-min-microvolt = <3300000>;
205				regulator-max-microvolt = <3300000>;
206			};
207
208			ldo17_reg: LDO17 {
209				regulator-name = "VLDO17_3.0V";
210				regulator-min-microvolt = <3000000>;
211				regulator-max-microvolt = <3000000>;
212			};
213
214			ldo18_reg: LDO18 {
215				/* DVDD_MMC2_AP */
216				regulator-name = "VLDO18_2.8V";
217				regulator-min-microvolt = <2800000>;
218				regulator-max-microvolt = <2800000>;
219			};
220
221			ldo19_reg: LDO19 {
222				regulator-name = "VLDO19_1.8V";
223				regulator-min-microvolt = <1800000>;
224				regulator-max-microvolt = <1800000>;
225			};
226
227			ldo20_reg: LDO20 {
228				regulator-name = "VLDO20_1.8V";
229				regulator-min-microvolt = <1800000>;
230				regulator-max-microvolt = <1800000>;
231			};
232
233			ldo21_reg: LDO21 {
234				regulator-name = "VLDO21_1.25V";
235				regulator-min-microvolt = <1250000>;
236				regulator-max-microvolt = <1250000>;
237			};
238
239			ldo22_reg: LDO22 {
240				regulator-name = "VLDO22_1.2V";
241				regulator-min-microvolt = <1200000>;
242				regulator-max-microvolt = <1200000>;
243			};
244
245			ldo23_reg: LDO23 {
246				/* Xi2c3_SDA/SCL, Xi2c7_SDA/SCL, WLAN_SDIO */
247				regulator-name = "VLDO23_1.8V";
248				regulator-min-microvolt = <1800000>;
249				regulator-max-microvolt = <1800000>;
250				regulator-always-on;
251			};
252
253			ldo24_reg: LDO24 {
254				regulator-name = "VLDO24_3.0V";
255				regulator-min-microvolt = <3000000>;
256				regulator-max-microvolt = <3000000>;
257			};
258
259			ldo25_reg: LDO25 {
260				regulator-name = "VLDO25_3.0V";
261				regulator-min-microvolt = <3000000>;
262				regulator-max-microvolt = <3000000>;
263			};
264
265			buck1_reg: BUCK1 {
266				/* VDD_MIF */
267				regulator-name = "VBUCK1_1.0V";
268				regulator-min-microvolt = <800000>;
269				regulator-max-microvolt = <1000000>;
270				regulator-always-on;
271			};
272
273			buck2_reg: BUCK2 {
274				/* VDD_CPU */
275				regulator-name = "VBUCK2_1.2V";
276				regulator-min-microvolt = <850000>;
277				regulator-max-microvolt = <1200000>;
278				regulator-always-on;
279			};
280
281			buck3_reg: BUCK3 {
282				/* VDD_G3D */
283				regulator-name = "VBUCK3_1.0V";
284				regulator-min-microvolt = <850000>;
285				regulator-max-microvolt = <1000000>;
286				regulator-always-on;
287			};
288
289			buck4_reg: BUCK4 {
290				regulator-name = "VBUCK4_1.95V";
291				regulator-min-microvolt = <1950000>;
292				regulator-max-microvolt = <1950000>;
293				regulator-always-on;
294			};
295
296			buck5_reg: BUCK5 {
297				regulator-name = "VBUCK5_1.35V";
298				regulator-min-microvolt = <1350000>;
299				regulator-max-microvolt = <1350000>;
300				regulator-always-on;
301			};
302		};
303	};
304};
305
306&mshc_0 {
307	non-removable;
308	cap-mmc-highspeed;
309	card-detect-delay = <200>;
310	vmmc-supply = <&ldo12_reg>;
311	clock-frequency = <100000000>;
312	max-frequency = <100000000>;
313	samsung,dw-mshc-ciu-div = <1>;
314	samsung,dw-mshc-sdr-timing = <0 1>;
315	samsung,dw-mshc-ddr-timing = <1 2>;
316	pinctrl-names = "default";
317	pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
318	bus-width = <8>;
319	status = "okay";
320};
321
322&mshc_1 {
323	cap-sd-highspeed;
324	cap-sdio-irq;
325	disable-wp;
326	non-removable;
327	keep-power-in-suspend;
328	fifo-depth = <0x40>;
329	vqmmc-supply = <&ldo11_reg>;
330	/*
331	 * Voltage negotiation is broken for the SDIO periph so we
332	 * can't actually set the voltage here.
333	 * vmmc-supply = <&ldo23_reg>;
334	 */
335	card-detect-delay = <500>;
336	clock-frequency = <100000000>;
337	max-frequency = <100000000>;
338	samsung,dw-mshc-ciu-div = <3>;
339	samsung,dw-mshc-sdr-timing = <0 1>;
340	samsung,dw-mshc-ddr-timing = <1 2>;
341	pinctrl-names = "default";
342	pinctrl-0 = <&sd1_cmd &sd1_clk &sd1_bus1 &sd1_bus4 &wlanen>;
343	bus-width = <4>;
344	status = "okay";
345};
346
347&pinctrl_1 {
348	wlanen: wlanen {
349		samsung,pins = "gpx2-3";
350		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
351		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
352		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV3>;
353		samsung,pin-val = <1>;
354	};
355
356	s2mps14_irq: s2mps14-irq {
357		samsung,pins = "gpx3-5";
358		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
359	};
360};
361
362&rtc {
363	clocks = <&cmu CLK_RTC>, <&s2mps14_osc S2MPS11_CLK_AP>;
364	clock-names = "rtc", "rtc_src";
365	status = "okay";
366};
367
368&tmu {
369	status = "okay";
370};
371
372&xusbxti {
373	clock-frequency = <24000000>;
374};
375