Merge tag 'timers-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.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 0x1f800000>;
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                                                          <&cpu1 5 5>;
41                                 };
42                                 map1 {
43                                         /* Corresponds to 200MHz */
44                                         cooling-device = <&cpu0 8 8>,
45                                                          <&cpu1 8 8>;
46                                 };
47                         };
48                 };
49         };
50 };
51
52 &adc {
53         vdd-supply = <&ldo7_reg>;
54         assigned-clocks = <&cmu CLK_SCLK_TSADC>;
55         assigned-clock-rates = <6000000>;
56 };
57
58 &cmu {
59         clocks = <&xusbxti>;
60 };
61
62 &cpu0 {
63         cpu0-supply = <&buck2_reg>;
64 };
65
66 &gpu {
67         mali-supply = <&buck3_reg>;
68         status = "okay";
69 };
70
71 &i2c_0 {
72         #address-cells = <1>;
73         #size-cells = <0>;
74         samsung,i2c-sda-delay = <100>;
75         samsung,i2c-slave-addr = <0x10>;
76         samsung,i2c-max-bus-freq = <100000>;
77         status = "okay";
78
79         pmic@66 {
80                 compatible = "samsung,s2mps14-pmic";
81                 interrupt-parent = <&gpx3>;
82                 interrupts = <5 IRQ_TYPE_NONE>;
83                 pinctrl-names = "default";
84                 pinctrl-0 = <&s2mps14_irq>;
85                 reg = <0x66>;
86
87                 s2mps14_osc: clocks {
88                         compatible = "samsung,s2mps14-clk";
89                         #clock-cells = <1>;
90                         clock-output-names = "s2mps14_ap", "unused",
91                                 "s2mps14_bt";
92                 };
93
94                 regulators {
95                         ldo1_reg: LDO1 {
96                                 /* VDD_ALIVE15x */
97                                 regulator-name = "VLDO1_1.0V";
98                                 regulator-min-microvolt = <1000000>;
99                                 regulator-max-microvolt = <1000000>;
100                                 regulator-always-on;
101                         };
102
103                         ldo2_reg: LDO2 {
104                                 /* VDDQM176 ~ VDDQM185 */
105                                 regulator-name = "VLDO2_1.2V";
106                                 regulator-min-microvolt = <1200000>;
107                                 regulator-max-microvolt = <1200000>;
108                                 regulator-always-on;
109                         };
110
111                         ldo3_reg: LDO3 {
112                                 /*
113                                  * VDD1_E106 ~ VDD1_E111
114                                  * DVDD_RTC_AP, DVDD_MMC2_AP
115                                  */
116                                 regulator-name = "VLDO3_1.8V";
117                                 regulator-min-microvolt = <1800000>;
118                                 regulator-max-microvolt = <1800000>;
119                                 regulator-always-on;
120                         };
121
122                         ldo4_reg: LDO4 {
123                                 /*  AVDD_PLL1120 ~ AVDD_PLL11201 */
124                                 regulator-name = "VLDO4_1.8V";
125                                 regulator-min-microvolt = <1800000>;
126                                 regulator-max-microvolt = <1800000>;
127                                 regulator-always-on;
128                         };
129
130                         ldo5_reg: LDO5 {
131                                 /* VDDI_PLL_ISO141 ~ VDDI_PLL_ISO142 */
132                                 regulator-name = "VLDO5_1.0V";
133                                 regulator-min-microvolt = <1000000>;
134                                 regulator-max-microvolt = <1000000>;
135                                 regulator-always-on;
136                         };
137
138                         ldo6_reg: LDO6 {
139                                 /* VDD_USB, VDD10_HSIC */
140                                 regulator-name = "VLDO6_1.0V";
141                                 regulator-min-microvolt = <1000000>;
142                                 regulator-max-microvolt = <1000000>;
143                                 regulator-always-on;
144                         };
145
146                         ldo7_reg: LDO7 {
147                                 /*
148                                  * VDD18P, AVDD18_TS, AVDD18_HSIC, AVDD_PLL2,
149                                  * AVDD_ADC, AVDD_ABB_0, M4S_VDD18
150                                  */
151                                 regulator-name = "VLDO7_1.8V";
152                                 regulator-min-microvolt = <1800000>;
153                                 regulator-max-microvolt = <1800000>;
154                                 regulator-always-on;
155                         };
156
157                         ldo8_reg: LDO8 {
158                                 /* AVDD33_UOTG */
159                                 regulator-name = "VLDO8_3.0V";
160                                 regulator-min-microvolt = <3000000>;
161                                 regulator-max-microvolt = <3000000>;
162                                 regulator-always-on;
163                         };
164
165                         ldo9_reg: LDO9 {
166                                 /* VDDQ_E86 ~ VDDQ_E105*/
167                                 regulator-name = "VLDO9_1.2V";
168                                 regulator-min-microvolt = <1200000>;
169                                 regulator-max-microvolt = <1200000>;
170                                 regulator-always-on;
171                         };
172
173                         ldo10_reg: LDO10 {
174                                 regulator-name = "VLDO10_1.0V";
175                                 regulator-min-microvolt = <1000000>;
176                                 regulator-max-microvolt = <1000000>;
177                         };
178
179                         ldo11_reg: LDO11 {
180                                 /* VDD74 ~ VDD75 */
181                                 regulator-name = "VLDO11_1.8V";
182                                 regulator-min-microvolt = <1800000>;
183                                 regulator-max-microvolt = <1800000>;
184                                 samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
185                         };
186
187                         ldo12_reg: LDO12 {
188                                 /* VDD72 ~ VDD73 */
189                                 regulator-name = "VLDO12_2.8V";
190                                 regulator-min-microvolt = <2800000>;
191                                 regulator-max-microvolt = <2800000>;
192                                 samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
193                         };
194
195                         ldo13_reg: LDO13 {
196                                 regulator-name = "VLDO13_2.8V";
197                                 regulator-min-microvolt = <2800000>;
198                                 regulator-max-microvolt = <2800000>;
199                         };
200
201                         ldo14_reg: LDO14 {
202                                 regulator-name = "VLDO14_2.7V";
203                                 regulator-min-microvolt = <2700000>;
204                                 regulator-max-microvolt = <2700000>;
205                         };
206
207                         ldo15_reg: LDO15 {
208                                 regulator-name = "VLDO_3.3V";
209                                 regulator-min-microvolt = <3300000>;
210                                 regulator-max-microvolt = <3300000>;
211                         };
212
213                         ldo16_reg: LDO16 {
214                                 regulator-name = "VLDO16_3.3V";
215                                 regulator-min-microvolt = <3300000>;
216                                 regulator-max-microvolt = <3300000>;
217                         };
218
219                         ldo17_reg: LDO17 {
220                                 regulator-name = "VLDO17_3.0V";
221                                 regulator-min-microvolt = <3000000>;
222                                 regulator-max-microvolt = <3000000>;
223                         };
224
225                         ldo18_reg: LDO18 {
226                                 /* DVDD_MMC2_AP */
227                                 regulator-name = "VLDO18_2.8V";
228                                 regulator-min-microvolt = <2800000>;
229                                 regulator-max-microvolt = <2800000>;
230                         };
231
232                         ldo19_reg: LDO19 {
233                                 regulator-name = "VLDO19_1.8V";
234                                 regulator-min-microvolt = <1800000>;
235                                 regulator-max-microvolt = <1800000>;
236                         };
237
238                         ldo20_reg: LDO20 {
239                                 regulator-name = "VLDO20_1.8V";
240                                 regulator-min-microvolt = <1800000>;
241                                 regulator-max-microvolt = <1800000>;
242                         };
243
244                         ldo21_reg: LDO21 {
245                                 regulator-name = "VLDO21_1.25V";
246                                 regulator-min-microvolt = <1250000>;
247                                 regulator-max-microvolt = <1250000>;
248                         };
249
250                         ldo22_reg: LDO22 {
251                                 regulator-name = "VLDO22_1.2V";
252                                 regulator-min-microvolt = <1200000>;
253                                 regulator-max-microvolt = <1200000>;
254                         };
255
256                         ldo23_reg: LDO23 {
257                                 /* Xi2c3_SDA/SCL, Xi2c7_SDA/SCL, WLAN_SDIO */
258                                 regulator-name = "VLDO23_1.8V";
259                                 regulator-min-microvolt = <1800000>;
260                                 regulator-max-microvolt = <1800000>;
261                                 regulator-always-on;
262                         };
263
264                         ldo24_reg: LDO24 {
265                                 regulator-name = "VLDO24_3.0V";
266                                 regulator-min-microvolt = <3000000>;
267                                 regulator-max-microvolt = <3000000>;
268                         };
269
270                         ldo25_reg: LDO25 {
271                                 regulator-name = "VLDO25_3.0V";
272                                 regulator-min-microvolt = <3000000>;
273                                 regulator-max-microvolt = <3000000>;
274                         };
275
276                         buck1_reg: BUCK1 {
277                                 /* VDD_MIF */
278                                 regulator-name = "VBUCK1_1.0V";
279                                 regulator-min-microvolt = <800000>;
280                                 regulator-max-microvolt = <1000000>;
281                                 regulator-always-on;
282                         };
283
284                         buck2_reg: BUCK2 {
285                                 /* VDD_CPU */
286                                 regulator-name = "VBUCK2_1.2V";
287                                 regulator-min-microvolt = <850000>;
288                                 regulator-max-microvolt = <1200000>;
289                                 regulator-always-on;
290                         };
291
292                         buck3_reg: BUCK3 {
293                                 /* VDD_G3D */
294                                 regulator-name = "VBUCK3_1.0V";
295                                 regulator-min-microvolt = <850000>;
296                                 regulator-max-microvolt = <1000000>;
297                                 regulator-always-on;
298                         };
299
300                         buck4_reg: BUCK4 {
301                                 regulator-name = "VBUCK4_1.95V";
302                                 regulator-min-microvolt = <1950000>;
303                                 regulator-max-microvolt = <1950000>;
304                                 regulator-always-on;
305                         };
306
307                         buck5_reg: BUCK5 {
308                                 regulator-name = "VBUCK5_1.35V";
309                                 regulator-min-microvolt = <1350000>;
310                                 regulator-max-microvolt = <1350000>;
311                                 regulator-always-on;
312                         };
313                 };
314         };
315 };
316
317 &mshc_0 {
318         non-removable;
319         cap-mmc-highspeed;
320         card-detect-delay = <200>;
321         vmmc-supply = <&ldo12_reg>;
322         clock-frequency = <100000000>;
323         max-frequency = <100000000>;
324         samsung,dw-mshc-ciu-div = <1>;
325         samsung,dw-mshc-sdr-timing = <0 1>;
326         samsung,dw-mshc-ddr-timing = <1 2>;
327         pinctrl-names = "default";
328         pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
329         bus-width = <8>;
330         status = "okay";
331 };
332
333 &mshc_1 {
334         cap-sd-highspeed;
335         cap-sdio-irq;
336         disable-wp;
337         non-removable;
338         keep-power-in-suspend;
339         fifo-depth = <0x40>;
340         vqmmc-supply = <&ldo11_reg>;
341         /*
342          * Voltage negotiation is broken for the SDIO periph so we
343          * can't actually set the voltage here.
344          * vmmc-supply = <&ldo23_reg>;
345          */
346         card-detect-delay = <500>;
347         clock-frequency = <100000000>;
348         max-frequency = <100000000>;
349         samsung,dw-mshc-ciu-div = <3>;
350         samsung,dw-mshc-sdr-timing = <0 1>;
351         samsung,dw-mshc-ddr-timing = <1 2>;
352         pinctrl-names = "default";
353         pinctrl-0 = <&sd1_cmd &sd1_clk &sd1_bus1 &sd1_bus4 &wlanen>;
354         bus-width = <4>;
355         status = "okay";
356 };
357
358 &pinctrl_1 {
359         bten: bten {
360                 samsung,pins ="gpx1-7";
361                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
362                 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
363                 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_PREV>;
364                 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_DOWN>;
365         };
366
367         wlanen: wlanen {
368                 samsung,pins = "gpx2-3";
369                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
370                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
371                 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV3>;
372                 samsung,pin-val = <1>;
373         };
374
375         s2mps14_irq: s2mps14-irq {
376                 samsung,pins = "gpx3-5";
377                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
378         };
379
380         bthostwake: bthostwake {
381                 samsung,pins = "gpx3-6";
382                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
383                 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
384                 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
385                 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
386         };
387
388         btwake: btwake {
389                 samsung,pins = "gpx3-7";
390                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
391                 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
392                 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
393                 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_DOWN>;
394         };
395 };
396
397 &rtc {
398         clocks = <&cmu CLK_RTC>, <&s2mps14_osc S2MPS11_CLK_AP>;
399         clock-names = "rtc", "rtc_src";
400         status = "okay";
401 };
402
403 &serial_0 {
404         assigned-clocks = <&cmu CLK_SCLK_UART0>;
405         assigned-clock-rates = <100000000>;
406         status = "okay";
407
408         bluetooth {
409                 compatible = "brcm,bcm4330-bt";
410                 pinctrl-names = "default";
411                 pinctrl-0 = <&bten &btwake &bthostwake>;
412                 max-speed = <3000000>;
413                 shutdown-gpios = <&gpx1 7 GPIO_ACTIVE_HIGH>;
414                 device-wakeup-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
415                 host-wakeup-gpios = <&gpx3 6 GPIO_ACTIVE_HIGH>;
416                 clocks = <&s2mps14_osc S2MPS11_CLK_BT>;
417         };
418 };
419
420 &tmu {
421         status = "okay";
422 };
423
424 &xusbxti {
425         clock-frequency = <24000000>;
426 };