aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier Martinez Canillas <javier@osg.samsung.com>2015-09-30 02:53:55 -0400
committerKukjin Kim <kgene@kernel.org>2015-09-30 02:54:14 -0400
commit6c6000c2ccfe69e5d17a2fba91954ce1e6f7df01 (patch)
tree74645a639e2c8241a2aa57cbf0473ecc36b8fbe3
parent6658356014cbf772c7f11154adc0c46717b3322b (diff)
ARM: dts: Add Exynos5250 Snow Rev5+ support on exynos5250-snow-rev5
There are 2 revisions of the Exynos5250 Snow Chromebook that were shipped: Rev4 and Rev5. The only difference between these 2 revisions is the codec, Rev4 has a max98095 codec while Rev5 has a max98090. Mainline only supports Rev4 so this patch moves the common device nodes to a DTSI file and adds a DTS for the Exynos5250 Snow Rev5. The Snow Rev5 DTS is based on the DTS found in the ChromiumOS 3.8 tree. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Tested-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Reviewed-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Kukjin Kim <kgene@kernel.org>
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/exynos5250-snow-common.dtsi684
-rw-r--r--arch/arm/boot/dts/exynos5250-snow-rev5.dts47
-rw-r--r--arch/arm/boot/dts/exynos5250-snow.dts671
4 files changed, 736 insertions, 667 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 3d27fe34647f..bc6649dcba5c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -115,6 +115,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
115 exynos5250-arndale.dtb \ 115 exynos5250-arndale.dtb \
116 exynos5250-smdk5250.dtb \ 116 exynos5250-smdk5250.dtb \
117 exynos5250-snow.dtb \ 117 exynos5250-snow.dtb \
118 exynos5250-snow-rev5.dtb \
118 exynos5250-spring.dtb \ 119 exynos5250-spring.dtb \
119 exynos5260-xyref5260.dtb \ 120 exynos5260-xyref5260.dtb \
120 exynos5410-smdk5410.dtb \ 121 exynos5410-smdk5410.dtb \
diff --git a/arch/arm/boot/dts/exynos5250-snow-common.dtsi b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
new file mode 100644
index 000000000000..0a7f408824d8
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
@@ -0,0 +1,684 @@
1/*
2 * Google Snow board device tree source
3 *
4 * Copyright (c) 2012 Google, Inc
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/clock/maxim,max77686.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/input/input.h>
15#include "exynos5250.dtsi"
16
17/ {
18 aliases {
19 i2c104 = &i2c_104;
20 };
21
22 memory {
23 reg = <0x40000000 0x80000000>;
24 };
25
26 chosen {
27 bootargs = "console=tty1";
28 stdout-path = "serial3:115200n8";
29 };
30
31 gpio-keys {
32 compatible = "gpio-keys";
33 pinctrl-names = "default";
34 pinctrl-0 = <&power_key_irq &lid_irq>;
35
36 power {
37 label = "Power";
38 gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
39 linux,code = <KEY_POWER>;
40 gpio-key,wakeup;
41 };
42
43 lid-switch {
44 label = "Lid";
45 gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
46 linux,input-type = <5>; /* EV_SW */
47 linux,code = <0>; /* SW_LID */
48 debounce-interval = <1>;
49 gpio-key,wakeup;
50 };
51 };
52
53 vbat: vbat-fixed-regulator {
54 compatible = "regulator-fixed";
55 regulator-name = "vbat-supply";
56 regulator-boot-on;
57 };
58
59 i2c-arbitrator {
60 compatible = "i2c-arb-gpio-challenge";
61 #address-cells = <1>;
62 #size-cells = <0>;
63
64 i2c-parent = <&{/i2c@12CA0000}>;
65
66 our-claim-gpio = <&gpf0 3 GPIO_ACTIVE_LOW>;
67 their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>;
68 slew-delay-us = <10>;
69 wait-retry-us = <3000>;
70 wait-free-us = <50000>;
71
72 pinctrl-names = "default";
73 pinctrl-0 = <&arb_our_claim &arb_their_claim>;
74
75 /* Use ID 104 as a hint that we're on physical bus 4 */
76 i2c_104: i2c@0 {
77 reg = <0>;
78 #address-cells = <1>;
79 #size-cells = <0>;
80
81 battery: sbs-battery@b {
82 compatible = "sbs,sbs-battery";
83 reg = <0xb>;
84 sbs,poll-retry-count = <1>;
85 };
86
87 cros_ec: embedded-controller {
88 compatible = "google,cros-ec-i2c";
89 reg = <0x1e>;
90 interrupts = <6 IRQ_TYPE_NONE>;
91 interrupt-parent = <&gpx1>;
92 pinctrl-names = "default";
93 pinctrl-0 = <&ec_irq>;
94 wakeup-source;
95 };
96
97 power-regulator {
98 compatible = "ti,tps65090";
99 reg = <0x48>;
100
101 /*
102 * Config irq to disable internal pulls
103 * even though we run in polling mode.
104 */
105 pinctrl-names = "default";
106 pinctrl-0 = <&tps65090_irq>;
107
108 vsys1-supply = <&vbat>;
109 vsys2-supply = <&vbat>;
110 vsys3-supply = <&vbat>;
111 infet1-supply = <&vbat>;
112 infet2-supply = <&vbat>;
113 infet3-supply = <&vbat>;
114 infet4-supply = <&vbat>;
115 infet5-supply = <&vbat>;
116 infet6-supply = <&vbat>;
117 infet7-supply = <&vbat>;
118 vsys-l1-supply = <&vbat>;
119 vsys-l2-supply = <&vbat>;
120
121 regulators {
122 dcdc1 {
123 ti,enable-ext-control;
124 };
125 dcdc2 {
126 ti,enable-ext-control;
127 };
128 dcdc3 {
129 ti,enable-ext-control;
130 };
131 fet1: fet1 {
132 regulator-name = "vcd_led";
133 ti,overcurrent-wait = <3>;
134 };
135 tps65090_fet2: fet2 {
136 regulator-name = "video_mid";
137 regulator-always-on;
138 ti,overcurrent-wait = <3>;
139 };
140 fet3 {
141 regulator-name = "wwan_r";
142 regulator-always-on;
143 ti,overcurrent-wait = <3>;
144 };
145 fet4 {
146 regulator-name = "sdcard";
147 ti,overcurrent-wait = <3>;
148 };
149 fet5 {
150 regulator-name = "camout";
151 regulator-always-on;
152 ti,overcurrent-wait = <3>;
153 };
154 fet6: fet6 {
155 regulator-name = "lcd_vdd";
156 ti,overcurrent-wait = <3>;
157 };
158 tps65090_fet7: fet7 {
159 regulator-name = "video_mid_1a";
160 regulator-always-on;
161 ti,overcurrent-wait = <3>;
162 };
163 ldo1 {
164 };
165 ldo2 {
166 };
167 };
168
169 charger {
170 compatible = "ti,tps65090-charger";
171 };
172 };
173 };
174 };
175
176 sound {
177 samsung,i2s-controller = <&i2s0>;
178 };
179
180 usb3_vbus_reg: regulator-usb3 {
181 compatible = "regulator-fixed";
182 regulator-name = "P5.0V_USB3CON";
183 regulator-min-microvolt = <5000000>;
184 regulator-max-microvolt = <5000000>;
185 gpio = <&gpx2 7 GPIO_ACTIVE_HIGH>;
186 pinctrl-names = "default";
187 pinctrl-0 = <&usb3_vbus_en>;
188 enable-active-high;
189 };
190
191 fixed-rate-clocks {
192 xxti {
193 compatible = "samsung,clock-xxti";
194 clock-frequency = <24000000>;
195 };
196 };
197
198 backlight: backlight {
199 compatible = "pwm-backlight";
200 pwms = <&pwm 0 1000000 0>;
201 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
202 default-brightness-level = <7>;
203 enable-gpios = <&gpx3 0 GPIO_ACTIVE_HIGH>;
204 power-supply = <&fet1>;
205 pinctrl-0 = <&pwm0_out>;
206 pinctrl-names = "default";
207 };
208
209 panel: panel {
210 compatible = "auo,b116xw03";
211 power-supply = <&fet6>;
212 backlight = <&backlight>;
213
214 port {
215 panel_in: endpoint {
216 remote-endpoint = <&bridge_out>;
217 };
218 };
219 };
220
221 mmc3_pwrseq: mmc3_pwrseq {
222 compatible = "mmc-pwrseq-simple";
223 reset-gpios = <&gpx0 2 GPIO_ACTIVE_LOW>, /* WIFI_RSTn */
224 <&gpx0 1 GPIO_ACTIVE_LOW>; /* WIFI_EN */
225 clocks = <&max77686 MAX77686_CLK_PMIC>;
226 clock-names = "ext_clock";
227 };
228};
229
230&cpu0 {
231 cpu0-supply = <&buck2_reg>;
232};
233
234&dp {
235 status = "okay";
236 pinctrl-names = "default";
237 pinctrl-0 = <&dp_hpd>;
238 samsung,color-space = <0>;
239 samsung,dynamic-range = <0>;
240 samsung,ycbcr-coeff = <0>;
241 samsung,color-depth = <1>;
242 samsung,link-rate = <0x0a>;
243 samsung,lane-count = <2>;
244 samsung,hpd-gpio = <&gpx0 7 GPIO_ACTIVE_HIGH>;
245
246 ports {
247 port@0 {
248 dp_out: endpoint {
249 remote-endpoint = <&bridge_in>;
250 };
251 };
252 };
253};
254
255&ehci {
256 samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
257};
258
259&fimd {
260 status = "okay";
261 samsung,invert-vclk;
262};
263
264&hdmi {
265 hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
266 pinctrl-names = "default";
267 pinctrl-0 = <&hdmi_hpd_irq>;
268 phy = <&hdmiphy>;
269 ddc = <&i2c_2>;
270 hdmi-en-supply = <&tps65090_fet7>;
271 vdd-supply = <&ldo8_reg>;
272 vdd_osc-supply = <&ldo10_reg>;
273 vdd_pll-supply = <&ldo8_reg>;
274};
275
276&i2c_0 {
277 status = "okay";
278 samsung,i2c-sda-delay = <100>;
279 samsung,i2c-max-bus-freq = <378000>;
280
281 max77686: max77686@09 {
282 compatible = "maxim,max77686";
283 interrupt-parent = <&gpx3>;
284 interrupts = <2 IRQ_TYPE_NONE>;
285 pinctrl-names = "default";
286 pinctrl-0 = <&max77686_irq>;
287 wakeup-source;
288 reg = <0x09>;
289 #clock-cells = <1>;
290
291 voltage-regulators {
292 ldo1_reg: LDO1 {
293 regulator-name = "P1.0V_LDO_OUT1";
294 regulator-min-microvolt = <1000000>;
295 regulator-max-microvolt = <1000000>;
296 regulator-always-on;
297 };
298
299 ldo2_reg: LDO2 {
300 regulator-name = "P1.8V_LDO_OUT2";
301 regulator-min-microvolt = <1800000>;
302 regulator-max-microvolt = <1800000>;
303 regulator-always-on;
304 };
305
306 ldo3_reg: LDO3 {
307 regulator-name = "P1.8V_LDO_OUT3";
308 regulator-min-microvolt = <1800000>;
309 regulator-max-microvolt = <1800000>;
310 regulator-always-on;
311 };
312
313 ldo7_reg: LDO7 {
314 regulator-name = "P1.1V_LDO_OUT7";
315 regulator-min-microvolt = <1100000>;
316 regulator-max-microvolt = <1100000>;
317 regulator-always-on;
318 };
319
320 ldo8_reg: LDO8 {
321 regulator-name = "P1.0V_LDO_OUT8";
322 regulator-min-microvolt = <1000000>;
323 regulator-max-microvolt = <1000000>;
324 regulator-always-on;
325 };
326
327 ldo10_reg: LDO10 {
328 regulator-name = "P1.8V_LDO_OUT10";
329 regulator-min-microvolt = <1800000>;
330 regulator-max-microvolt = <1800000>;
331 regulator-always-on;
332 };
333
334 ldo12_reg: LDO12 {
335 regulator-name = "P3.0V_LDO_OUT12";
336 regulator-min-microvolt = <3000000>;
337 regulator-max-microvolt = <3000000>;
338 regulator-always-on;
339 };
340
341 ldo14_reg: LDO14 {
342 regulator-name = "P1.8V_LDO_OUT14";
343 regulator-min-microvolt = <1800000>;
344 regulator-max-microvolt = <1800000>;
345 regulator-always-on;
346 };
347
348 ldo15_reg: LDO15 {
349 regulator-name = "P1.0V_LDO_OUT15";
350 regulator-min-microvolt = <1000000>;
351 regulator-max-microvolt = <1000000>;
352 regulator-always-on;
353 };
354
355 ldo16_reg: LDO16 {
356 regulator-name = "P1.8V_LDO_OUT16";
357 regulator-min-microvolt = <1800000>;
358 regulator-max-microvolt = <1800000>;
359 regulator-always-on;
360 };
361
362 buck1_reg: BUCK1 {
363 regulator-name = "vdd_mif";
364 regulator-min-microvolt = <950000>;
365 regulator-max-microvolt = <1300000>;
366 regulator-always-on;
367 regulator-boot-on;
368 };
369
370 buck2_reg: BUCK2 {
371 regulator-name = "vdd_arm";
372 regulator-min-microvolt = <850000>;
373 regulator-max-microvolt = <1350000>;
374 regulator-always-on;
375 regulator-boot-on;
376 };
377
378 buck3_reg: BUCK3 {
379 regulator-name = "vdd_int";
380 regulator-min-microvolt = <900000>;
381 regulator-max-microvolt = <1200000>;
382 regulator-always-on;
383 regulator-boot-on;
384 };
385
386 buck4_reg: BUCK4 {
387 regulator-name = "vdd_g3d";
388 regulator-min-microvolt = <850000>;
389 regulator-max-microvolt = <1300000>;
390 regulator-always-on;
391 regulator-boot-on;
392 };
393
394 buck5_reg: BUCK5 {
395 regulator-name = "P1.8V_BUCK_OUT5";
396 regulator-min-microvolt = <1800000>;
397 regulator-max-microvolt = <1800000>;
398 regulator-always-on;
399 regulator-boot-on;
400 };
401
402 buck6_reg: BUCK6 {
403 regulator-name = "P1.35V_BUCK_OUT6";
404 regulator-min-microvolt = <1350000>;
405 regulator-max-microvolt = <1350000>;
406 regulator-always-on;
407 };
408
409 buck7_reg: BUCK7 {
410 regulator-name = "P2.0V_BUCK_OUT7";
411 regulator-min-microvolt = <2000000>;
412 regulator-max-microvolt = <2000000>;
413 regulator-always-on;
414 };
415
416 buck8_reg: BUCK8 {
417 regulator-name = "P2.85V_BUCK_OUT8";
418 regulator-min-microvolt = <2850000>;
419 regulator-max-microvolt = <2850000>;
420 regulator-always-on;
421 };
422 };
423 };
424};
425
426&i2c_1 {
427 status = "okay";
428 samsung,i2c-sda-delay = <100>;
429 samsung,i2c-max-bus-freq = <378000>;
430
431 trackpad {
432 reg = <0x67>;
433 compatible = "cypress,cyapa";
434 interrupts = <2 IRQ_TYPE_NONE>;
435 interrupt-parent = <&gpx1>;
436 wakeup-source;
437 };
438};
439
440/*
441 * Disabled pullups since external part has its own pullups and
442 * double-pulling gets us out of spec in some cases.
443 */
444&i2c2_bus {
445 samsung,pin-pud = <0>;
446};
447
448&i2c_2 {
449 status = "okay";
450 samsung,i2c-sda-delay = <100>;
451 samsung,i2c-max-bus-freq = <66000>;
452
453 hdmiddc@50 {
454 compatible = "samsung,exynos4210-hdmiddc";
455 reg = <0x50>;
456 };
457};
458
459&i2c_3 {
460 status = "okay";
461 samsung,i2c-sda-delay = <100>;
462 samsung,i2c-max-bus-freq = <66000>;
463};
464
465&i2c_4 {
466 status = "okay";
467 samsung,i2c-sda-delay = <100>;
468 samsung,i2c-max-bus-freq = <66000>;
469};
470
471&i2c_5 {
472 status = "okay";
473 samsung,i2c-sda-delay = <100>;
474 samsung,i2c-max-bus-freq = <66000>;
475};
476
477&i2c_7 {
478 status = "okay";
479 samsung,i2c-sda-delay = <100>;
480 samsung,i2c-max-bus-freq = <66000>;
481
482 ptn3460: lvds-bridge@20 {
483 compatible = "nxp,ptn3460";
484 reg = <0x20>;
485 powerdown-gpios = <&gpy2 5 GPIO_ACTIVE_HIGH>;
486 reset-gpios = <&gpx1 5 GPIO_ACTIVE_HIGH>;
487 edid-emulation = <5>;
488
489 ports {
490 port@0 {
491 bridge_out: endpoint {
492 remote-endpoint = <&panel_in>;
493 };
494 };
495
496 port@1 {
497 bridge_in: endpoint {
498 remote-endpoint = <&dp_out>;
499 };
500 };
501 };
502 };
503};
504
505&i2c_8 {
506 status = "okay";
507 samsung,i2c-sda-delay = <100>;
508 samsung,i2c-max-bus-freq = <378000>;
509
510 hdmiphy: hdmiphy@38 {
511 compatible = "samsung,exynos4212-hdmiphy";
512 reg = <0x38>;
513 };
514};
515
516&i2s0 {
517 status = "okay";
518};
519
520&mmc_0 {
521 status = "okay";
522 num-slots = <1>;
523 broken-cd;
524 card-detect-delay = <200>;
525 samsung,dw-mshc-ciu-div = <3>;
526 samsung,dw-mshc-sdr-timing = <2 3>;
527 samsung,dw-mshc-ddr-timing = <1 2>;
528 pinctrl-names = "default";
529 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
530 bus-width = <8>;
531 cap-mmc-highspeed;
532};
533
534&mmc_2 {
535 status = "okay";
536 num-slots = <1>;
537 card-detect-delay = <200>;
538 samsung,dw-mshc-ciu-div = <3>;
539 samsung,dw-mshc-sdr-timing = <2 3>;
540 samsung,dw-mshc-ddr-timing = <1 2>;
541 pinctrl-names = "default";
542 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
543 bus-width = <4>;
544 wp-gpios = <&gpc2 1 GPIO_ACTIVE_HIGH>;
545 cap-sd-highspeed;
546};
547
548/*
549 * On Snow we've got SIP WiFi and so can keep drive strengths low to
550 * reduce EMI.
551 */
552&mmc_3 {
553 status = "okay";
554 num-slots = <1>;
555 broken-cd;
556 cap-sdio-irq;
557 keep-power-in-suspend;
558 card-detect-delay = <200>;
559 samsung,dw-mshc-ciu-div = <3>;
560 samsung,dw-mshc-sdr-timing = <2 3>;
561 samsung,dw-mshc-ddr-timing = <1 2>;
562 pinctrl-names = "default";
563 pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4 &wifi_en &wifi_rst>;
564 bus-width = <4>;
565 cap-sd-highspeed;
566 mmc-pwrseq = <&mmc3_pwrseq>;
567};
568
569&pinctrl_0 {
570 wifi_en: wifi-en {
571 samsung,pins = "gpx0-1";
572 samsung,pin-function = <1>;
573 samsung,pin-pud = <0>;
574 samsung,pin-drv = <0>;
575 };
576
577 wifi_rst: wifi-rst {
578 samsung,pins = "gpx0-2";
579 samsung,pin-function = <1>;
580 samsung,pin-pud = <0>;
581 samsung,pin-drv = <0>;
582 };
583
584 power_key_irq: power-key-irq {
585 samsung,pins = "gpx1-3";
586 samsung,pin-function = <0xf>;
587 samsung,pin-pud = <0>;
588 samsung,pin-drv = <0>;
589 };
590
591 ec_irq: ec-irq {
592 samsung,pins = "gpx1-6";
593 samsung,pin-function = <0>;
594 samsung,pin-pud = <0>;
595 samsung,pin-drv = <0>;
596 };
597
598 tps65090_irq: tps65090-irq {
599 samsung,pins = "gpx2-6";
600 samsung,pin-function = <0>;
601 samsung,pin-pud = <0>;
602 samsung,pin-drv = <0>;
603 };
604
605 usb3_vbus_en: usb3-vbus-en {
606 samsung,pins = "gpx2-7";
607 samsung,pin-function = <1>;
608 samsung,pin-pud = <0>;
609 samsung,pin-drv = <0>;
610 };
611
612 max77686_irq: max77686-irq {
613 samsung,pins = "gpx3-2";
614 samsung,pin-function = <0>;
615 samsung,pin-pud = <0>;
616 samsung,pin-drv = <0>;
617 };
618
619 lid_irq: lid-irq {
620 samsung,pins = "gpx3-5";
621 samsung,pin-function = <0xf>;
622 samsung,pin-pud = <0>;
623 samsung,pin-drv = <0>;
624 };
625
626 hdmi_hpd_irq: hdmi-hpd-irq {
627 samsung,pins = "gpx3-7";
628 samsung,pin-function = <0>;
629 samsung,pin-pud = <1>;
630 samsung,pin-drv = <0>;
631 };
632};
633
634&pinctrl_1 {
635 arb_their_claim: arb-their-claim {
636 samsung,pins = "gpe0-4";
637 samsung,pin-function = <0>;
638 samsung,pin-pud = <3>;
639 samsung,pin-drv = <0>;
640 };
641
642 arb_our_claim: arb-our-claim {
643 samsung,pins = "gpf0-3";
644 samsung,pin-function = <1>;
645 samsung,pin-pud = <0>;
646 samsung,pin-drv = <0>;
647 };
648};
649
650&rtc {
651 status = "okay";
652 clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
653 clock-names = "rtc", "rtc_src";
654};
655
656&sd3_bus4 {
657 samsung,pin-drv = <0>;
658};
659
660&sd3_clk {
661 samsung,pin-drv = <0>;
662};
663
664&sd3_cmd {
665 samsung,pin-pud = <3>;
666 samsung,pin-drv = <0>;
667};
668
669&spi_1 {
670 status = "okay";
671 samsung,spi-src-clk = <0>;
672 num-cs = <1>;
673 cs-gpios = <&gpa2 5 GPIO_ACTIVE_HIGH>;
674};
675
676&usbdrd_dwc3 {
677 dr_mode = "host";
678};
679
680&usbdrd_phy {
681 vbus-supply = <&usb3_vbus_reg>;
682};
683
684#include "cros-ec-keyboard.dtsi"
diff --git a/arch/arm/boot/dts/exynos5250-snow-rev5.dts b/arch/arm/boot/dts/exynos5250-snow-rev5.dts
new file mode 100644
index 000000000000..f811dc800660
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5250-snow-rev5.dts
@@ -0,0 +1,47 @@
1/*
2 * Google Snow Rev 5+ board device tree source
3 *
4 * Copyright (c) 2012 Google, Inc
5 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13/dts-v1/;
14#include "exynos5250-snow-common.dtsi"
15
16/ {
17 model = "Google Snow Rev 5+";
18 compatible = "google,snow-rev5", "samsung,exynos5250",
19 "samsung,exynos5";
20
21 sound {
22 compatible = "google,snow-audio-max98090";
23
24 samsung,model = "Snow-I2S-MAX98090";
25 samsung,audio-codec = <&max98090>;
26 };
27};
28
29&i2c_7 {
30 max98090: codec@10 {
31 compatible = "maxim,max98090";
32 reg = <0x10>;
33 interrupts = <4 IRQ_TYPE_NONE>;
34 interrupt-parent = <&gpx0>;
35 pinctrl-names = "default";
36 pinctrl-0 = <&max98090_irq>;
37 };
38};
39
40&pinctrl_0 {
41 max98090_irq: max98090-irq {
42 samsung,pins = "gpx0-4";
43 samsung,pin-function = <0>;
44 samsung,pin-pud = <0>;
45 samsung,pin-drv = <0>;
46 };
47};
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts
index 0720caab5511..995c7ce6c12b 100644
--- a/arch/arm/boot/dts/exynos5250-snow.dts
+++ b/arch/arm/boot/dts/exynos5250-snow.dts
@@ -9,698 +9,35 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12#include <dt-bindings/gpio/gpio.h> 12#include "exynos5250-snow-common.dtsi"
13#include <dt-bindings/clock/maxim,max77686.h>
14#include <dt-bindings/interrupt-controller/irq.h>
15#include <dt-bindings/input/input.h>
16#include "exynos5250.dtsi"
17 13
18/ { 14/ {
19 model = "Google Snow"; 15 model = "Google Snow";
20 compatible = "google,snow", "samsung,exynos5250", "samsung,exynos5"; 16 compatible = "google,snow-rev4", "google,snow", "samsung,exynos5250",
21 17 "samsung,exynos5";
22 aliases {
23 i2c104 = &i2c_104;
24 };
25
26 memory {
27 reg = <0x40000000 0x80000000>;
28 };
29
30 chosen {
31 bootargs = "console=tty1";
32 stdout-path = "serial3:115200n8";
33 };
34
35 gpio-keys {
36 compatible = "gpio-keys";
37 pinctrl-names = "default";
38 pinctrl-0 = <&power_key_irq &lid_irq>;
39
40 power {
41 label = "Power";
42 gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
43 linux,code = <KEY_POWER>;
44 gpio-key,wakeup;
45 };
46
47 lid-switch {
48 label = "Lid";
49 gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
50 linux,input-type = <5>; /* EV_SW */
51 linux,code = <0>; /* SW_LID */
52 debounce-interval = <1>;
53 gpio-key,wakeup;
54 };
55 };
56
57 vbat: vbat-fixed-regulator {
58 compatible = "regulator-fixed";
59 regulator-name = "vbat-supply";
60 regulator-boot-on;
61 };
62
63 i2c-arbitrator {
64 compatible = "i2c-arb-gpio-challenge";
65 #address-cells = <1>;
66 #size-cells = <0>;
67
68 i2c-parent = <&{/i2c@12CA0000}>;
69
70 our-claim-gpio = <&gpf0 3 GPIO_ACTIVE_LOW>;
71 their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>;
72 slew-delay-us = <10>;
73 wait-retry-us = <3000>;
74 wait-free-us = <50000>;
75
76 pinctrl-names = "default";
77 pinctrl-0 = <&arb_our_claim &arb_their_claim>;
78
79 /* Use ID 104 as a hint that we're on physical bus 4 */
80 i2c_104: i2c@0 {
81 reg = <0>;
82 #address-cells = <1>;
83 #size-cells = <0>;
84
85 battery: sbs-battery@b {
86 compatible = "sbs,sbs-battery";
87 reg = <0xb>;
88 sbs,poll-retry-count = <1>;
89 };
90
91 cros_ec: embedded-controller {
92 compatible = "google,cros-ec-i2c";
93 reg = <0x1e>;
94 interrupts = <6 IRQ_TYPE_NONE>;
95 interrupt-parent = <&gpx1>;
96 pinctrl-names = "default";
97 pinctrl-0 = <&ec_irq>;
98 wakeup-source;
99 };
100
101 power-regulator {
102 compatible = "ti,tps65090";
103 reg = <0x48>;
104
105 /*
106 * Config irq to disable internal pulls
107 * even though we run in polling mode.
108 */
109 pinctrl-names = "default";
110 pinctrl-0 = <&tps65090_irq>;
111
112 vsys1-supply = <&vbat>;
113 vsys2-supply = <&vbat>;
114 vsys3-supply = <&vbat>;
115 infet1-supply = <&vbat>;
116 infet2-supply = <&vbat>;
117 infet3-supply = <&vbat>;
118 infet4-supply = <&vbat>;
119 infet5-supply = <&vbat>;
120 infet6-supply = <&vbat>;
121 infet7-supply = <&vbat>;
122 vsys-l1-supply = <&vbat>;
123 vsys-l2-supply = <&vbat>;
124
125 regulators {
126 dcdc1 {
127 ti,enable-ext-control;
128 };
129 dcdc2 {
130 ti,enable-ext-control;
131 };
132 dcdc3 {
133 ti,enable-ext-control;
134 };
135 fet1: fet1 {
136 regulator-name = "vcd_led";
137 ti,overcurrent-wait = <3>;
138 };
139 tps65090_fet2: fet2 {
140 regulator-name = "video_mid";
141 regulator-always-on;
142 ti,overcurrent-wait = <3>;
143 };
144 fet3 {
145 regulator-name = "wwan_r";
146 regulator-always-on;
147 ti,overcurrent-wait = <3>;
148 };
149 fet4 {
150 regulator-name = "sdcard";
151 ti,overcurrent-wait = <3>;
152 };
153 fet5 {
154 regulator-name = "camout";
155 regulator-always-on;
156 ti,overcurrent-wait = <3>;
157 };
158 fet6: fet6 {
159 regulator-name = "lcd_vdd";
160 ti,overcurrent-wait = <3>;
161 };
162 tps65090_fet7: fet7 {
163 regulator-name = "video_mid_1a";
164 regulator-always-on;
165 ti,overcurrent-wait = <3>;
166 };
167 ldo1 {
168 };
169 ldo2 {
170 };
171 };
172
173 charger {
174 compatible = "ti,tps65090-charger";
175 };
176 };
177 };
178 };
179 18
180 sound { 19 sound {
181 compatible = "google,snow-audio-max98095"; 20 compatible = "google,snow-audio-max98095";
182 21
183 samsung,model = "Snow-I2S-MAX98095"; 22 samsung,model = "Snow-I2S-MAX98095";
184 samsung,i2s-controller = <&i2s0>;
185 samsung,audio-codec = <&max98095>; 23 samsung,audio-codec = <&max98095>;
186 }; 24 };
187
188 usb3_vbus_reg: regulator-usb3 {
189 compatible = "regulator-fixed";
190 regulator-name = "P5.0V_USB3CON";
191 regulator-min-microvolt = <5000000>;
192 regulator-max-microvolt = <5000000>;
193 gpio = <&gpx2 7 GPIO_ACTIVE_HIGH>;
194 pinctrl-names = "default";
195 pinctrl-0 = <&usb3_vbus_en>;
196 enable-active-high;
197 };
198
199 fixed-rate-clocks {
200 xxti {
201 compatible = "samsung,clock-xxti";
202 clock-frequency = <24000000>;
203 };
204 };
205
206 backlight: backlight {
207 compatible = "pwm-backlight";
208 pwms = <&pwm 0 1000000 0>;
209 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
210 default-brightness-level = <7>;
211 enable-gpios = <&gpx3 0 GPIO_ACTIVE_HIGH>;
212 power-supply = <&fet1>;
213 pinctrl-0 = <&pwm0_out>;
214 pinctrl-names = "default";
215 };
216
217 panel: panel {
218 compatible = "auo,b116xw03";
219 power-supply = <&fet6>;
220 backlight = <&backlight>;
221
222 port {
223 panel_in: endpoint {
224 remote-endpoint = <&bridge_out>;
225 };
226 };
227 };
228
229 mmc3_pwrseq: mmc3_pwrseq {
230 compatible = "mmc-pwrseq-simple";
231 reset-gpios = <&gpx0 2 GPIO_ACTIVE_LOW>, /* WIFI_RSTn */
232 <&gpx0 1 GPIO_ACTIVE_LOW>; /* WIFI_EN */
233 clocks = <&max77686 MAX77686_CLK_PMIC>;
234 clock-names = "ext_clock";
235 };
236};
237
238&cpu0 {
239 cpu0-supply = <&buck2_reg>;
240};
241
242&dp {
243 status = "okay";
244 pinctrl-names = "default";
245 pinctrl-0 = <&dp_hpd>;
246 samsung,color-space = <0>;
247 samsung,dynamic-range = <0>;
248 samsung,ycbcr-coeff = <0>;
249 samsung,color-depth = <1>;
250 samsung,link-rate = <0x0a>;
251 samsung,lane-count = <2>;
252 samsung,hpd-gpio = <&gpx0 7 GPIO_ACTIVE_HIGH>;
253
254 ports {
255 port@0 {
256 dp_out: endpoint {
257 remote-endpoint = <&bridge_in>;
258 };
259 };
260 };
261};
262
263&ehci {
264 samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
265};
266
267&fimd {
268 status = "okay";
269 samsung,invert-vclk;
270};
271
272&hdmi {
273 hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
274 pinctrl-names = "default";
275 pinctrl-0 = <&hdmi_hpd_irq>;
276 phy = <&hdmiphy>;
277 ddc = <&i2c_2>;
278 hdmi-en-supply = <&tps65090_fet7>;
279 vdd-supply = <&ldo8_reg>;
280 vdd_osc-supply = <&ldo10_reg>;
281 vdd_pll-supply = <&ldo8_reg>;
282};
283
284&i2c_0 {
285 status = "okay";
286 samsung,i2c-sda-delay = <100>;
287 samsung,i2c-max-bus-freq = <378000>;
288
289 max77686: max77686@09 {
290 compatible = "maxim,max77686";
291 interrupt-parent = <&gpx3>;
292 interrupts = <2 IRQ_TYPE_NONE>;
293 pinctrl-names = "default";
294 pinctrl-0 = <&max77686_irq>;
295 wakeup-source;
296 reg = <0x09>;
297 #clock-cells = <1>;
298
299 voltage-regulators {
300 ldo1_reg: LDO1 {
301 regulator-name = "P1.0V_LDO_OUT1";
302 regulator-min-microvolt = <1000000>;
303 regulator-max-microvolt = <1000000>;
304 regulator-always-on;
305 };
306
307 ldo2_reg: LDO2 {
308 regulator-name = "P1.8V_LDO_OUT2";
309 regulator-min-microvolt = <1800000>;
310 regulator-max-microvolt = <1800000>;
311 regulator-always-on;
312 };
313
314 ldo3_reg: LDO3 {
315 regulator-name = "P1.8V_LDO_OUT3";
316 regulator-min-microvolt = <1800000>;
317 regulator-max-microvolt = <1800000>;
318 regulator-always-on;
319 };
320
321 ldo7_reg: LDO7 {
322 regulator-name = "P1.1V_LDO_OUT7";
323 regulator-min-microvolt = <1100000>;
324 regulator-max-microvolt = <1100000>;
325 regulator-always-on;
326 };
327
328 ldo8_reg: LDO8 {
329 regulator-name = "P1.0V_LDO_OUT8";
330 regulator-min-microvolt = <1000000>;
331 regulator-max-microvolt = <1000000>;
332 regulator-always-on;
333 };
334
335 ldo10_reg: LDO10 {
336 regulator-name = "P1.8V_LDO_OUT10";
337 regulator-min-microvolt = <1800000>;
338 regulator-max-microvolt = <1800000>;
339 regulator-always-on;
340 };
341
342 ldo12_reg: LDO12 {
343 regulator-name = "P3.0V_LDO_OUT12";
344 regulator-min-microvolt = <3000000>;
345 regulator-max-microvolt = <3000000>;
346 regulator-always-on;
347 };
348
349 ldo14_reg: LDO14 {
350 regulator-name = "P1.8V_LDO_OUT14";
351 regulator-min-microvolt = <1800000>;
352 regulator-max-microvolt = <1800000>;
353 regulator-always-on;
354 };
355
356 ldo15_reg: LDO15 {
357 regulator-name = "P1.0V_LDO_OUT15";
358 regulator-min-microvolt = <1000000>;
359 regulator-max-microvolt = <1000000>;
360 regulator-always-on;
361 };
362
363 ldo16_reg: LDO16 {
364 regulator-name = "P1.8V_LDO_OUT16";
365 regulator-min-microvolt = <1800000>;
366 regulator-max-microvolt = <1800000>;
367 regulator-always-on;
368 };
369
370 buck1_reg: BUCK1 {
371 regulator-name = "vdd_mif";
372 regulator-min-microvolt = <950000>;
373 regulator-max-microvolt = <1300000>;
374 regulator-always-on;
375 regulator-boot-on;
376 };
377
378 buck2_reg: BUCK2 {
379 regulator-name = "vdd_arm";
380 regulator-min-microvolt = <850000>;
381 regulator-max-microvolt = <1350000>;
382 regulator-always-on;
383 regulator-boot-on;
384 };
385
386 buck3_reg: BUCK3 {
387 regulator-name = "vdd_int";
388 regulator-min-microvolt = <900000>;
389 regulator-max-microvolt = <1200000>;
390 regulator-always-on;
391 regulator-boot-on;
392 };
393
394 buck4_reg: BUCK4 {
395 regulator-name = "vdd_g3d";
396 regulator-min-microvolt = <850000>;
397 regulator-max-microvolt = <1300000>;
398 regulator-always-on;
399 regulator-boot-on;
400 };
401
402 buck5_reg: BUCK5 {
403 regulator-name = "P1.8V_BUCK_OUT5";
404 regulator-min-microvolt = <1800000>;
405 regulator-max-microvolt = <1800000>;
406 regulator-always-on;
407 regulator-boot-on;
408 };
409
410 buck6_reg: BUCK6 {
411 regulator-name = "P1.35V_BUCK_OUT6";
412 regulator-min-microvolt = <1350000>;
413 regulator-max-microvolt = <1350000>;
414 regulator-always-on;
415 };
416
417 buck7_reg: BUCK7 {
418 regulator-name = "P2.0V_BUCK_OUT7";
419 regulator-min-microvolt = <2000000>;
420 regulator-max-microvolt = <2000000>;
421 regulator-always-on;
422 };
423
424 buck8_reg: BUCK8 {
425 regulator-name = "P2.85V_BUCK_OUT8";
426 regulator-min-microvolt = <2850000>;
427 regulator-max-microvolt = <2850000>;
428 regulator-always-on;
429 };
430 };
431 };
432};
433
434&i2c_1 {
435 status = "okay";
436 samsung,i2c-sda-delay = <100>;
437 samsung,i2c-max-bus-freq = <378000>;
438
439 trackpad {
440 reg = <0x67>;
441 compatible = "cypress,cyapa";
442 interrupts = <2 IRQ_TYPE_NONE>;
443 interrupt-parent = <&gpx1>;
444 wakeup-source;
445 };
446};
447
448/*
449 * Disabled pullups since external part has its own pullups and
450 * double-pulling gets us out of spec in some cases.
451 */
452&i2c2_bus {
453 samsung,pin-pud = <0>;
454};
455
456&i2c_2 {
457 status = "okay";
458 samsung,i2c-sda-delay = <100>;
459 samsung,i2c-max-bus-freq = <66000>;
460
461 hdmiddc@50 {
462 compatible = "samsung,exynos4210-hdmiddc";
463 reg = <0x50>;
464 };
465};
466
467&i2c_3 {
468 status = "okay";
469 samsung,i2c-sda-delay = <100>;
470 samsung,i2c-max-bus-freq = <66000>;
471};
472
473&i2c_4 {
474 status = "okay";
475 samsung,i2c-sda-delay = <100>;
476 samsung,i2c-max-bus-freq = <66000>;
477};
478
479&i2c_5 {
480 status = "okay";
481 samsung,i2c-sda-delay = <100>;
482 samsung,i2c-max-bus-freq = <66000>;
483}; 25};
484 26
485&i2c_7 { 27&i2c_7 {
486 status = "okay";
487 samsung,i2c-sda-delay = <100>;
488 samsung,i2c-max-bus-freq = <66000>;
489
490 ptn3460: lvds-bridge@20 {
491 compatible = "nxp,ptn3460";
492 reg = <0x20>;
493 powerdown-gpios = <&gpy2 5 GPIO_ACTIVE_HIGH>;
494 reset-gpios = <&gpx1 5 GPIO_ACTIVE_HIGH>;
495 edid-emulation = <5>;
496
497 ports {
498 port@0 {
499 bridge_out: endpoint {
500 remote-endpoint = <&panel_in>;
501 };
502 };
503
504 port@1 {
505 bridge_in: endpoint {
506 remote-endpoint = <&dp_out>;
507 };
508 };
509 };
510 };
511
512 max98095: codec@11 { 28 max98095: codec@11 {
513 compatible = "maxim,max98095"; 29 compatible = "maxim,max98095";
514 reg = <0x11>; 30 reg = <0x11>;
515 pinctrl-0 = <&max98095_en>;
516 pinctrl-names = "default"; 31 pinctrl-names = "default";
32 pinctrl-0 = <&max98095_en>;
517 }; 33 };
518}; 34};
519 35
520&i2c_8 {
521 status = "okay";
522 samsung,i2c-sda-delay = <100>;
523 samsung,i2c-max-bus-freq = <378000>;
524
525 hdmiphy: hdmiphy@38 {
526 compatible = "samsung,exynos4212-hdmiphy";
527 reg = <0x38>;
528 };
529};
530
531&i2s0 {
532 status = "okay";
533};
534
535&mmc_0 {
536 status = "okay";
537 num-slots = <1>;
538 broken-cd;
539 card-detect-delay = <200>;
540 samsung,dw-mshc-ciu-div = <3>;
541 samsung,dw-mshc-sdr-timing = <2 3>;
542 samsung,dw-mshc-ddr-timing = <1 2>;
543 pinctrl-names = "default";
544 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
545 bus-width = <8>;
546 cap-mmc-highspeed;
547};
548
549&mmc_2 {
550 status = "okay";
551 num-slots = <1>;
552 card-detect-delay = <200>;
553 samsung,dw-mshc-ciu-div = <3>;
554 samsung,dw-mshc-sdr-timing = <2 3>;
555 samsung,dw-mshc-ddr-timing = <1 2>;
556 pinctrl-names = "default";
557 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
558 bus-width = <4>;
559 wp-gpios = <&gpc2 1 GPIO_ACTIVE_HIGH>;
560 cap-sd-highspeed;
561};
562
563/*
564 * On Snow we've got SIP WiFi and so can keep drive strengths low to
565 * reduce EMI.
566 */
567&mmc_3 {
568 status = "okay";
569 num-slots = <1>;
570 broken-cd;
571 cap-sdio-irq;
572 keep-power-in-suspend;
573 card-detect-delay = <200>;
574 samsung,dw-mshc-ciu-div = <3>;
575 samsung,dw-mshc-sdr-timing = <2 3>;
576 samsung,dw-mshc-ddr-timing = <1 2>;
577 pinctrl-names = "default";
578 pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4 &wifi_en &wifi_rst>;
579 bus-width = <4>;
580 cap-sd-highspeed;
581 mmc-pwrseq = <&mmc3_pwrseq>;
582};
583
584&pinctrl_0 { 36&pinctrl_0 {
585 wifi_en: wifi-en {
586 samsung,pins = "gpx0-1";
587 samsung,pin-function = <1>;
588 samsung,pin-pud = <0>;
589 samsung,pin-drv = <0>;
590 };
591
592 wifi_rst: wifi-rst {
593 samsung,pins = "gpx0-2";
594 samsung,pin-function = <1>;
595 samsung,pin-pud = <0>;
596 samsung,pin-drv = <0>;
597 };
598
599 power_key_irq: power-key-irq {
600 samsung,pins = "gpx1-3";
601 samsung,pin-function = <0xf>;
602 samsung,pin-pud = <0>;
603 samsung,pin-drv = <0>;
604 };
605
606 ec_irq: ec-irq {
607 samsung,pins = "gpx1-6";
608 samsung,pin-function = <0>;
609 samsung,pin-pud = <0>;
610 samsung,pin-drv = <0>;
611 };
612
613 max98095_en: max98095-en { 37 max98095_en: max98095-en {
614 samsung,pins = "gpx1-7"; 38 samsung,pins = "gpx1-7";
615 samsung,pin-function = <0>; 39 samsung,pin-function = <0>;
616 samsung,pin-pud = <3>; 40 samsung,pin-pud = <3>;
617 samsung,pin-drv = <0>; 41 samsung,pin-drv = <0>;
618 }; 42 };
619
620 tps65090_irq: tps65090-irq {
621 samsung,pins = "gpx2-6";
622 samsung,pin-function = <0>;
623 samsung,pin-pud = <0>;
624 samsung,pin-drv = <0>;
625 };
626
627 usb3_vbus_en: usb3-vbus-en {
628 samsung,pins = "gpx2-7";
629 samsung,pin-function = <1>;
630 samsung,pin-pud = <0>;
631 samsung,pin-drv = <0>;
632 };
633
634 max77686_irq: max77686-irq {
635 samsung,pins = "gpx3-2";
636 samsung,pin-function = <0>;
637 samsung,pin-pud = <0>;
638 samsung,pin-drv = <0>;
639 };
640
641 lid_irq: lid-irq {
642 samsung,pins = "gpx3-5";
643 samsung,pin-function = <0xf>;
644 samsung,pin-pud = <0>;
645 samsung,pin-drv = <0>;
646 };
647
648 hdmi_hpd_irq: hdmi-hpd-irq {
649 samsung,pins = "gpx3-7";
650 samsung,pin-function = <0>;
651 samsung,pin-pud = <1>;
652 samsung,pin-drv = <0>;
653 };
654};
655
656&pinctrl_1 {
657 arb_their_claim: arb-their-claim {
658 samsung,pins = "gpe0-4";
659 samsung,pin-function = <0>;
660 samsung,pin-pud = <3>;
661 samsung,pin-drv = <0>;
662 };
663
664 arb_our_claim: arb-our-claim {
665 samsung,pins = "gpf0-3";
666 samsung,pin-function = <1>;
667 samsung,pin-pud = <0>;
668 samsung,pin-drv = <0>;
669 };
670}; 43};
671
672&rtc {
673 status = "okay";
674 clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
675 clock-names = "rtc", "rtc_src";
676};
677
678&sd3_bus4 {
679 samsung,pin-drv = <0>;
680};
681
682&sd3_clk {
683 samsung,pin-drv = <0>;
684};
685
686&sd3_cmd {
687 samsung,pin-pud = <3>;
688 samsung,pin-drv = <0>;
689};
690
691&spi_1 {
692 status = "okay";
693 samsung,spi-src-clk = <0>;
694 num-cs = <1>;
695 cs-gpios = <&gpa2 5 GPIO_ACTIVE_HIGH>;
696};
697
698&usbdrd_dwc3 {
699 dr_mode = "host";
700};
701
702&usbdrd_phy {
703 vbus-supply = <&usb3_vbus_reg>;
704};
705
706#include "cros-ec-keyboard.dtsi"