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