]> git.ipfire.org Git - thirdparty/u-boot.git/blob - src/arm/samsung/exynos5250-spring.dts
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / src / arm / samsung / exynos5250-spring.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * Google Spring board device tree source
4 *
5 * Copyright (c) 2013 Google, Inc
6 * Copyright (c) 2014 SUSE LINUX Products GmbH
7 */
8
9 /dts-v1/;
10 #include <dt-bindings/clock/samsung,s2mps11.h>
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/interrupt-controller/irq.h>
13 #include <dt-bindings/input/input.h>
14 #include "exynos5250.dtsi"
15
16 / {
17 model = "Google Spring";
18 compatible = "google,spring", "samsung,exynos5250", "samsung,exynos5";
19 chassis-type = "laptop";
20
21 memory@40000000 {
22 device_type = "memory";
23 reg = <0x40000000 0x80000000>;
24 };
25
26 aliases {
27 mmc0 = &mmc_0;
28 mmc1 = &mmc_1;
29 };
30
31 chosen {
32 bootargs = "console=tty1";
33 stdout-path = "serial3:115200n8";
34 };
35
36 gpio-keys {
37 compatible = "gpio-keys";
38 pinctrl-names = "default";
39 pinctrl-0 = <&power_key_irq>, <&lid_irq>;
40
41 power-key {
42 label = "Power";
43 gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
44 linux,code = <KEY_POWER>;
45 wakeup-source;
46 };
47
48 lid-switch {
49 label = "Lid";
50 gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
51 linux,input-type = <5>; /* EV_SW */
52 linux,code = <0>; /* SW_LID */
53 debounce-interval = <1>;
54 wakeup-source;
55 };
56 };
57
58 usb-hub {
59 compatible = "smsc,usb3503a";
60 reset-gpios = <&gpe1 0 GPIO_ACTIVE_LOW>;
61 pinctrl-names = "default";
62 pinctrl-0 = <&hsic_reset>;
63 };
64
65 fixed-rate-clocks {
66 xxti {
67 compatible = "samsung,clock-xxti";
68 clock-frequency = <24000000>;
69 };
70 };
71 };
72
73 &cpu0 {
74 cpu0-supply = <&buck2_reg>;
75 };
76
77 &dp {
78 status = "okay";
79 pinctrl-names = "default";
80 pinctrl-0 = <&dp_hpd_gpio>;
81 samsung,color-space = <0>;
82 samsung,color-depth = <1>;
83 samsung,link-rate = <0x0a>;
84 samsung,lane-count = <1>;
85 hpd-gpios = <&gpc3 0 GPIO_ACTIVE_HIGH>;
86 };
87
88 &ehci {
89 samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
90 };
91
92 &fimd {
93 status = "okay";
94 samsung,invert-vclk;
95 };
96
97 &hdmi {
98 status = "okay";
99 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
100 pinctrl-names = "default";
101 pinctrl-0 = <&hdmi_hpd_irq>;
102 ddc = <&i2c_2>;
103 hdmi-en-supply = <&ldo8_reg>;
104 vdd-supply = <&ldo8_reg>;
105 vdd_osc-supply = <&ldo10_reg>;
106 vdd_pll-supply = <&ldo8_reg>;
107 };
108
109 &i2c_0 {
110 status = "okay";
111 samsung,i2c-sda-delay = <100>;
112 samsung,i2c-max-bus-freq = <378000>;
113
114 pmic@66 {
115 compatible = "samsung,s5m8767-pmic";
116 reg = <0x66>;
117 interrupt-parent = <&gpx3>;
118 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
119 pinctrl-names = "default";
120 pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
121 wakeup-source;
122
123 s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>, /* DVS1 */
124 <&gpd1 1 GPIO_ACTIVE_LOW>, /* DVS2 */
125 <&gpd1 2 GPIO_ACTIVE_LOW>; /* DVS3 */
126
127 s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>, /* SET1 */
128 <&gpx2 4 GPIO_ACTIVE_LOW>, /* SET2 */
129 <&gpx2 5 GPIO_ACTIVE_LOW>; /* SET3 */
130
131 /*
132 * The following arrays of DVS voltages are not used, since we are
133 * not using GPIOs to control PMIC bucks, but they must be defined
134 * to please the driver.
135 */
136 s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
137 <1250000>, <1200000>,
138 <1150000>, <1100000>,
139 <1000000>, <950000>;
140
141 s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
142 <1100000>, <1100000>,
143 <1000000>, <1000000>,
144 <1000000>, <1000000>;
145
146 s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
147 <1200000>, <1200000>,
148 <1200000>, <1200000>,
149 <1200000>, <1200000>;
150
151 s5m8767_osc: clocks {
152 compatible = "samsung,s5m8767-clk";
153 #clock-cells = <1>;
154 clock-output-names = "en32khz_ap",
155 "en32khz_cp",
156 "en32khz_bt";
157 };
158
159 regulators {
160 ldo4_reg: LDO4 {
161 regulator-name = "P1.0V_LDO_OUT4";
162 regulator-min-microvolt = <1000000>;
163 regulator-max-microvolt = <1000000>;
164 regulator-always-on;
165 op_mode = <0>;
166 };
167
168 ldo5_reg: LDO5 {
169 regulator-name = "P1.0V_LDO_OUT5";
170 regulator-min-microvolt = <1000000>;
171 regulator-max-microvolt = <1000000>;
172 regulator-always-on;
173 op_mode = <0>;
174 };
175
176 ldo6_reg: LDO6 {
177 regulator-name = "vdd_mydp";
178 regulator-min-microvolt = <1000000>;
179 regulator-max-microvolt = <1000000>;
180 regulator-always-on;
181 op_mode = <3>;
182 };
183
184 ldo7_reg: LDO7 {
185 regulator-name = "P1.1V_LDO_OUT7";
186 regulator-min-microvolt = <1100000>;
187 regulator-max-microvolt = <1100000>;
188 regulator-always-on;
189 op_mode = <3>;
190 };
191
192 ldo8_reg: LDO8 {
193 regulator-name = "P1.0V_LDO_OUT8";
194 regulator-min-microvolt = <1000000>;
195 regulator-max-microvolt = <1000000>;
196 regulator-always-on;
197 op_mode = <3>;
198 };
199
200 ldo10_reg: LDO10 {
201 regulator-name = "P1.8V_LDO_OUT10";
202 regulator-min-microvolt = <1800000>;
203 regulator-max-microvolt = <1800000>;
204 regulator-always-on;
205 op_mode = <3>;
206 };
207
208 ldo11_reg: LDO11 {
209 regulator-name = "P1.8V_LDO_OUT11";
210 regulator-min-microvolt = <1800000>;
211 regulator-max-microvolt = <1800000>;
212 regulator-always-on;
213 op_mode = <0>;
214 };
215
216 ldo12_reg: LDO12 {
217 regulator-name = "P3.0V_LDO_OUT12";
218 regulator-min-microvolt = <3000000>;
219 regulator-max-microvolt = <3000000>;
220 regulator-always-on;
221 op_mode = <3>;
222 };
223
224 ldo13_reg: LDO13 {
225 regulator-name = "P1.8V_LDO_OUT13";
226 regulator-min-microvolt = <1800000>;
227 regulator-max-microvolt = <1800000>;
228 regulator-always-on;
229 op_mode = <0>;
230 };
231
232 ldo14_reg: LDO14 {
233 regulator-name = "P1.8V_LDO_OUT14";
234 regulator-min-microvolt = <1800000>;
235 regulator-max-microvolt = <1800000>;
236 regulator-always-on;
237 op_mode = <3>;
238 };
239
240 ldo15_reg: LDO15 {
241 regulator-name = "P1.0V_LDO_OUT15";
242 regulator-min-microvolt = <1000000>;
243 regulator-max-microvolt = <1000000>;
244 regulator-always-on;
245 op_mode = <3>;
246 };
247
248 ldo16_reg: LDO16 {
249 regulator-name = "P1.8V_LDO_OUT16";
250 regulator-min-microvolt = <1800000>;
251 regulator-max-microvolt = <1800000>;
252 regulator-always-on;
253 op_mode = <3>;
254 };
255
256 ldo17_reg: LDO17 {
257 regulator-name = "P2.8V_LDO_OUT17";
258 regulator-min-microvolt = <2800000>;
259 regulator-max-microvolt = <2800000>;
260 regulator-always-on;
261 op_mode = <0>;
262 };
263
264 ldo25_reg: LDO25 {
265 regulator-name = "vdd_bridge";
266 regulator-min-microvolt = <1200000>;
267 regulator-max-microvolt = <1200000>;
268 regulator-always-on;
269 op_mode = <1>;
270 };
271
272 buck1_reg: BUCK1 {
273 regulator-name = "vdd_mif";
274 regulator-min-microvolt = <950000>;
275 regulator-max-microvolt = <1300000>;
276 regulator-always-on;
277 regulator-boot-on;
278 op_mode = <3>;
279 };
280
281 buck2_reg: BUCK2 {
282 regulator-name = "vdd_arm";
283 regulator-min-microvolt = <850000>;
284 regulator-max-microvolt = <1350000>;
285 regulator-always-on;
286 regulator-boot-on;
287 op_mode = <3>;
288 };
289
290 buck3_reg: BUCK3 {
291 regulator-name = "vdd_int";
292 regulator-min-microvolt = <900000>;
293 regulator-max-microvolt = <1200000>;
294 regulator-always-on;
295 regulator-boot-on;
296 op_mode = <3>;
297 };
298
299 buck4_reg: BUCK4 {
300 regulator-name = "vdd_g3d";
301 regulator-min-microvolt = <850000>;
302 regulator-max-microvolt = <1300000>;
303 regulator-boot-on;
304 op_mode = <3>;
305 };
306
307 buck5_reg: BUCK5 {
308 regulator-name = "P1.8V_BUCK_OUT5";
309 regulator-min-microvolt = <1800000>;
310 regulator-max-microvolt = <1800000>;
311 regulator-always-on;
312 regulator-boot-on;
313 op_mode = <1>;
314 };
315
316 buck6_reg: BUCK6 {
317 regulator-name = "P1.2V_BUCK_OUT6";
318 regulator-min-microvolt = <1200000>;
319 regulator-max-microvolt = <1200000>;
320 regulator-always-on;
321 regulator-boot-on;
322 op_mode = <0>;
323 };
324
325 buck9_reg: BUCK9 {
326 regulator-name = "vdd_ummc";
327 regulator-min-microvolt = <950000>;
328 regulator-max-microvolt = <3000000>;
329 regulator-always-on;
330 regulator-boot-on;
331 op_mode = <3>;
332 };
333 };
334 };
335 };
336
337 &i2c_1 {
338 status = "okay";
339 samsung,i2c-sda-delay = <100>;
340 samsung,i2c-max-bus-freq = <378000>;
341
342 trackpad@4b {
343 compatible = "atmel,maxtouch";
344 reg = <0x4b>;
345 interrupt-parent = <&gpx1>;
346 interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
347 pinctrl-names = "default";
348 pinctrl-0 = <&trackpad_irq>;
349 linux,gpio-keymap = <KEY_RESERVED
350 KEY_RESERVED
351 KEY_RESERVED
352 KEY_RESERVED
353 KEY_RESERVED
354 BTN_LEFT>;
355 wakeup-source;
356 };
357 };
358
359 /*
360 * Disabled pullups since external part has its own pullups and
361 * double-pulling gets us out of spec in some cases.
362 */
363 &i2c2_bus {
364 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
365 };
366
367 &i2c_2 {
368 status = "okay";
369 /* used by HDMI DDC */
370 samsung,i2c-sda-delay = <100>;
371 samsung,i2c-max-bus-freq = <66000>;
372 };
373
374 &i2c_3 {
375 status = "okay";
376 samsung,i2c-sda-delay = <100>;
377 samsung,i2c-max-bus-freq = <66000>;
378 };
379
380 &i2c_4 {
381 status = "okay";
382 samsung,i2c-sda-delay = <100>;
383 samsung,i2c-max-bus-freq = <66000>;
384
385 cros_ec: embedded-controller@1e {
386 compatible = "google,cros-ec-i2c";
387 reg = <0x1e>;
388 interrupts = <6 IRQ_TYPE_NONE>;
389 interrupt-parent = <&gpx1>;
390 wakeup-source;
391 pinctrl-names = "default";
392 pinctrl-0 = <&ec_irq>;
393 };
394 };
395
396 &i2c_5 {
397 status = "okay";
398 samsung,i2c-sda-delay = <100>;
399 samsung,i2c-max-bus-freq = <66000>;
400 };
401
402 &i2c_7 {
403 status = "okay";
404 samsung,i2c-sda-delay = <100>;
405 samsung,i2c-max-bus-freq = <66000>;
406
407 temperature-sensor@4c {
408 compatible = "gmt,g781";
409 reg = <0x4c>;
410 };
411 };
412
413 &i2c_8 {
414 status = "okay";
415 /* used by HDMI PHY */
416 samsung,i2c-sda-delay = <100>;
417 samsung,i2c-max-bus-freq = <378000>;
418 };
419
420 &i2s0 {
421 status = "okay";
422 };
423
424 &mixer {
425 status = "okay";
426 };
427
428 &mmc_0 {
429 status = "okay";
430 broken-cd;
431 card-detect-delay = <200>;
432 samsung,dw-mshc-ciu-div = <3>;
433 samsung,dw-mshc-sdr-timing = <2 3>;
434 samsung,dw-mshc-ddr-timing = <1 2>;
435 pinctrl-names = "default";
436 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
437 bus-width = <8>;
438 cap-mmc-highspeed;
439 mmc-ddr-1_8v;
440 };
441
442 /*
443 * On Spring we've got SIP WiFi and so can keep drive strengths low to
444 * reduce EMI.
445 */
446 &mmc_1 {
447 status = "okay";
448 broken-cd;
449 card-detect-delay = <200>;
450 samsung,dw-mshc-ciu-div = <3>;
451 samsung,dw-mshc-sdr-timing = <2 3>;
452 samsung,dw-mshc-ddr-timing = <1 2>;
453 pinctrl-names = "default";
454 pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_cd &sd1_bus4>;
455 bus-width = <4>;
456 cap-sd-highspeed;
457 };
458
459 &pinctrl_0 {
460 s5m8767_dvs: s5m8767-dvs-pins {
461 samsung,pins = "gpd1-0", "gpd1-1", "gpd1-2";
462 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
463 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
464 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
465 };
466
467 dp_hpd_gpio: dp-hpd-pins {
468 samsung,pins = "gpc3-0";
469 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
470 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
471 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
472 };
473
474 trackpad_irq: trackpad-irq-pins {
475 samsung,pins = "gpx1-2";
476 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
477 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
478 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
479 };
480
481 power_key_irq: power-key-irq-pins {
482 samsung,pins = "gpx1-3";
483 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
484 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
485 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
486 };
487
488 ec_irq: ec-irq-pins {
489 samsung,pins = "gpx1-6";
490 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
491 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
492 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
493 };
494
495 s5m8767_ds: s5m8767-ds-pins {
496 samsung,pins = "gpx2-3", "gpx2-4", "gpx2-5";
497 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
498 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
499 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
500 };
501
502 s5m8767_irq: s5m8767-irq-pins {
503 samsung,pins = "gpx3-2";
504 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
505 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
506 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
507 };
508
509 lid_irq: lid-irq-pins {
510 samsung,pins = "gpx3-5";
511 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
512 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
513 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
514 };
515
516 hdmi_hpd_irq: hdmi-hpd-irq-pins {
517 samsung,pins = "gpx3-7";
518 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
519 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
520 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
521 };
522 };
523
524 &pinctrl_1 {
525 hsic_reset: hsic-reset-pins {
526 samsung,pins = "gpe1-0";
527 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
528 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
529 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
530 };
531 };
532
533 &rtc {
534 status = "okay";
535 clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
536 clock-names = "rtc", "rtc_src";
537 };
538
539 &sd1_bus4 {
540 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
541 };
542
543 &sd1_cd {
544 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
545 };
546
547 &sd1_clk {
548 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
549 };
550
551 &sd1_cmd {
552 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
553 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
554 };
555
556 &spi_1 {
557 status = "okay";
558 samsung,spi-src-clk = <0>;
559 num-cs = <1>;
560 };
561
562 &usbdrd {
563 vdd10-supply = <&ldo15_reg>;
564 vdd33-supply = <&ldo12_reg>;
565 };
566
567 #include "../cros-ec-keyboard.dtsi"