GNU Linux-libre 4.19.264-gnu1
[releases.git] / arch / arm / boot / dts / exynos3250-artik5.dtsi
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_LEVEL_LOW>;
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 };