dm: core: add a function to decode display timings
[platform/kernel/u-boot.git] / arch / sandbox / dts / test.dts
1 /dts-v1/;
2
3 #include <dt-bindings/gpio/gpio.h>
4 #include <dt-bindings/gpio/sandbox-gpio.h>
5 #include <dt-bindings/pinctrl/sandbox-pinmux.h>
6 #include <dt-bindings/mux/mux.h>
7
8 / {
9         model = "sandbox";
10         compatible = "sandbox";
11         #address-cells = <1>;
12         #size-cells = <1>;
13
14         aliases {
15                 console = &uart0;
16                 eth0 = "/eth@10002000";
17                 eth3 = &eth_3;
18                 eth5 = &eth_5;
19                 gpio1 = &gpio_a;
20                 gpio2 = &gpio_b;
21                 gpio3 = &gpio_c;
22                 i2c0 = "/i2c@0";
23                 mmc0 = "/mmc0";
24                 mmc1 = "/mmc1";
25                 pci0 = &pci0;
26                 pci1 = &pci1;
27                 pci2 = &pci2;
28                 remoteproc0 = &rproc_1;
29                 remoteproc1 = &rproc_2;
30                 rtc0 = &rtc_0;
31                 rtc1 = &rtc_1;
32                 spi0 = "/spi@0";
33                 testfdt6 = "/e-test";
34                 testbus3 = "/some-bus";
35                 testfdt0 = "/some-bus/c-test@0";
36                 testfdt12 = "/some-bus/c-test@1";
37                 testfdt3 = "/b-test";
38                 testfdt5 = "/some-bus/c-test@5";
39                 testfdt8 = "/a-test";
40                 testfdtm1 = &testfdtm1;
41                 fdt-dummy0 = "/translation-test@8000/dev@0,0";
42                 fdt-dummy1 = "/translation-test@8000/dev@1,100";
43                 fdt-dummy2 = "/translation-test@8000/dev@2,200";
44                 fdt-dummy3 = "/translation-test@8000/noxlatebus@3,300/dev@42";
45                 fdt-dummy4 = "/translation-test@8000/xlatebus@4,400/devs/dev@19";
46                 usb0 = &usb_0;
47                 usb1 = &usb_1;
48                 usb2 = &usb_2;
49                 axi0 = &axi;
50                 osd0 = "/osd";
51         };
52
53         audio: audio-codec {
54                 compatible = "sandbox,audio-codec";
55                 #sound-dai-cells = <1>;
56         };
57
58         buttons {
59                 compatible = "gpio-keys";
60
61                 btn1 {
62                         gpios = <&gpio_a 3 0>;
63                         label = "button1";
64                 };
65
66                 btn2 {
67                         gpios = <&gpio_a 4 0>;
68                         label = "button2";
69                 };
70         };
71
72         cros_ec: cros-ec {
73                 reg = <0 0>;
74                 compatible = "google,cros-ec-sandbox";
75
76                 /*
77                  * This describes the flash memory within the EC. Note
78                  * that the STM32L flash erases to 0, not 0xff.
79                  */
80                 flash {
81                         image-pos = <0x08000000>;
82                         size = <0x20000>;
83                         erase-value = <0>;
84
85                         /* Information for sandbox */
86                         ro {
87                                 image-pos = <0>;
88                                 size = <0xf000>;
89                         };
90                         wp-ro {
91                                 image-pos = <0xf000>;
92                                 size = <0x1000>;
93                         };
94                         rw {
95                                 image-pos = <0x10000>;
96                                 size = <0x10000>;
97                         };
98                 };
99         };
100
101         dsi_host: dsi_host {
102                 compatible = "sandbox,dsi-host";
103         };
104
105         a-test {
106                 reg = <0 1>;
107                 compatible = "denx,u-boot-fdt-test";
108                 ping-expect = <0>;
109                 ping-add = <0>;
110                 u-boot,dm-pre-reloc;
111                 test-gpios = <&gpio_a 1>, <&gpio_a 4>,
112                         <&gpio_b 5 GPIO_ACTIVE_HIGH 3 2 1>,
113                         <0>, <&gpio_a 12>;
114                 test2-gpios = <&gpio_a 1>, <&gpio_a 4>,
115                         <&gpio_b 6 GPIO_ACTIVE_LOW 3 2 1>,
116                         <&gpio_b 7 GPIO_IN 3 2 1>,
117                         <&gpio_b 8 GPIO_OUT 3 2 1>,
118                         <&gpio_b 9 (GPIO_OUT|GPIO_OUT_ACTIVE) 3 2 1>;
119                 test3-gpios =
120                         <&gpio_c 0 (GPIO_OUT|GPIO_OPEN_DRAIN)>,
121                         <&gpio_c 1 (GPIO_OUT|GPIO_OPEN_SOURCE)>,
122                         <&gpio_c 2 GPIO_OUT>,
123                         <&gpio_c 3 (GPIO_IN|GPIO_PULL_UP)>,
124                         <&gpio_c 4 (GPIO_IN|GPIO_PULL_DOWN)>,
125                         <&gpio_c 5 GPIO_IN>,
126                         <&gpio_c 6 (GPIO_ACTIVE_LOW|GPIO_OUT|GPIO_OPEN_DRAIN)>,
127                         <&gpio_c 7 (GPIO_ACTIVE_LOW|GPIO_OUT|GPIO_OPEN_SOURCE)>;
128                 test4-gpios = <&gpio_a 14>, <&gpio_b 4 1 3 2 1>;
129                 test5-gpios = <&gpio_a 19>;
130
131                 int-value = <1234>;
132                 uint-value = <(-1234)>;
133                 int64-value = /bits/ 64 <0x1111222233334444>;
134                 int-array = <5678 9123 4567>;
135                 str-value = "test string";
136                 interrupts-extended = <&irq 3 0>;
137                 acpi,name = "GHIJ";
138                 phandle-value = <&gpio_c 10>, <0xFFFFFFFF 20>, <&gpio_a 30>;
139
140                 mux-controls = <&muxcontroller0 0>, <&muxcontroller0 1>,
141                                <&muxcontroller0 2>, <&muxcontroller0 3>,
142                                <&muxcontroller1>;
143                 mux-control-names = "mux0", "mux1", "mux2", "mux3", "mux4";
144                 mux-syscon = <&syscon3>;
145                 display-timings {
146                         timing0: 240x320 {
147                                 clock-frequency = <6500000>;
148                                 hactive = <240>;
149                                 vactive = <320>;
150                                 hfront-porch = <6>;
151                                 hback-porch = <7>;
152                                 hsync-len = <1>;
153                                 vback-porch = <5>;
154                                 vfront-porch = <8>;
155                                 vsync-len = <2>;
156                                 hsync-active = <1>;
157                                 vsync-active = <0>;
158                                 de-active = <1>;
159                                 pixelclk-active = <1>;
160                                 interlaced;
161                                 doublescan;
162                                 doubleclk;
163                         };
164                         timing1: 480x800 {
165                                 clock-frequency = <9000000>;
166                                 hactive = <480>;
167                                 vactive = <800>;
168                                 hfront-porch = <10>;
169                                 hback-porch = <59>;
170                                 hsync-len = <12>;
171                                 vback-porch = <15>;
172                                 vfront-porch = <17>;
173                                 vsync-len = <16>;
174                                 hsync-active = <0>;
175                                 vsync-active = <1>;
176                                 de-active = <0>;
177                                 pixelclk-active = <0>;
178                         };
179                         timing2: 800x480 {
180                                 clock-frequency = <33500000>;
181                                 hactive = <800>;
182                                 vactive = <480>;
183                                 hback-porch = <89>;
184                                 hfront-porch = <164>;
185                                 vback-porch = <23>;
186                                 vfront-porch = <10>;
187                                 hsync-len = <11>;
188                                 vsync-len = <13>;
189                         };
190                 };
191         };
192
193         junk {
194                 reg = <1 1>;
195                 compatible = "not,compatible";
196         };
197
198         no-compatible {
199                 reg = <2 1>;
200         };
201
202         backlight: backlight {
203                 compatible = "pwm-backlight";
204                 enable-gpios = <&gpio_a 1>;
205                 power-supply = <&ldo_1>;
206                 pwms = <&pwm 0 1000>;
207                 default-brightness-level = <5>;
208                 brightness-levels = <0 16 32 64 128 170 202 234 255>;
209         };
210
211         bind-test {
212                 compatible = "simple-bus";
213                 bind-test-child1 {
214                         compatible = "sandbox,phy";
215                         #phy-cells = <1>;
216                 };
217
218                 bind-test-child2 {
219                         compatible = "simple-bus";
220                 };
221         };
222
223         b-test {
224                 reg = <3 1>;
225                 compatible = "denx,u-boot-fdt-test";
226                 ping-expect = <3>;
227                 ping-add = <3>;
228
229                 mux-controls = <&muxcontroller0 0>;
230                 mux-control-names = "mux0";
231         };
232
233         phy_provider0: gen_phy@0 {
234                 compatible = "sandbox,phy";
235                 #phy-cells = <1>;
236         };
237
238         phy_provider1: gen_phy@1 {
239                 compatible = "sandbox,phy";
240                 #phy-cells = <0>;
241                 broken;
242         };
243
244         phy_provider2: gen_phy@2 {
245                 compatible = "sandbox,phy";
246                 #phy-cells = <0>;
247         };
248
249         gen_phy_user: gen_phy_user {
250                 compatible = "simple-bus";
251                 phys = <&phy_provider0 0>, <&phy_provider0 1>, <&phy_provider1>;
252                 phy-names = "phy1", "phy2", "phy3";
253         };
254
255         gen_phy_user1: gen_phy_user1 {
256                 compatible = "simple-bus";
257                 phys = <&phy_provider0 0>, <&phy_provider2>;
258                 phy-names = "phy1", "phy2";
259         };
260
261         some-bus {
262                 #address-cells = <1>;
263                 #size-cells = <0>;
264                 compatible = "denx,u-boot-test-bus";
265                 reg = <3 1>;
266                 ping-expect = <4>;
267                 ping-add = <4>;
268                 c-test@5 {
269                         compatible = "denx,u-boot-fdt-test";
270                         reg = <5>;
271                         ping-expect = <5>;
272                         ping-add = <5>;
273                 };
274                 c-test@0 {
275                         compatible = "denx,u-boot-fdt-test";
276                         reg = <0>;
277                         ping-expect = <6>;
278                         ping-add = <6>;
279                 };
280                 c-test@1 {
281                         compatible = "denx,u-boot-fdt-test";
282                         reg = <1>;
283                         ping-expect = <7>;
284                         ping-add = <7>;
285                 };
286         };
287
288         d-test {
289                 reg = <3 1>;
290                 ping-expect = <6>;
291                 ping-add = <6>;
292                 compatible = "google,another-fdt-test";
293         };
294
295         e-test {
296                 reg = <3 1>;
297                 ping-expect = <6>;
298                 ping-add = <6>;
299                 compatible = "google,another-fdt-test";
300         };
301
302         f-test {
303                 compatible = "denx,u-boot-fdt-test";
304         };
305
306         g-test {
307                 compatible = "denx,u-boot-fdt-test";
308         };
309
310         h-test {
311                 compatible = "denx,u-boot-fdt-test1";
312         };
313
314         i-test {
315                 compatible = "mediatek,u-boot-fdt-test";
316                 #address-cells = <1>;
317                 #size-cells = <0>;
318
319                 subnode@0 {
320                         reg = <0>;
321                 };
322
323                 subnode@1 {
324                         reg = <1>;
325                 };
326
327                 subnode@2 {
328                         reg = <2>;
329                 };
330         };
331
332         devres-test {
333                 compatible = "denx,u-boot-devres-test";
334         };
335
336         another-test {
337                 reg = <0 2>;
338                 compatible = "denx,u-boot-fdt-test";
339                 test4-gpios = <&gpio_a 14>, <&gpio_b 4 1 3 2 1>;
340                 test5-gpios = <&gpio_a 19>;
341         };
342
343         acpi_test1: acpi-test {
344                 compatible = "denx,u-boot-acpi-test";
345                 acpi-ssdt-test-data = "ab";
346                 acpi-dsdt-test-data = "hi";
347                 child {
348                         compatible = "denx,u-boot-acpi-test";
349                 };
350         };
351
352         acpi_test2: acpi-test2 {
353                 compatible = "denx,u-boot-acpi-test";
354                 acpi-ssdt-test-data = "cd";
355                 acpi-dsdt-test-data = "jk";
356         };
357
358         clocks {
359                 clk_fixed: clk-fixed {
360                         compatible = "fixed-clock";
361                         #clock-cells = <0>;
362                         clock-frequency = <1234>;
363                 };
364
365                 clk_fixed_factor: clk-fixed-factor {
366                         compatible = "fixed-factor-clock";
367                         #clock-cells = <0>;
368                         clock-div = <3>;
369                         clock-mult = <2>;
370                         clocks = <&clk_fixed>;
371                 };
372
373                 osc {
374                         compatible = "fixed-clock";
375                         #clock-cells = <0>;
376                         clock-frequency = <20000000>;
377                 };
378         };
379
380         clk_sandbox: clk-sbox {
381                 compatible = "sandbox,clk";
382                 #clock-cells = <1>;
383                 assigned-clocks = <&clk_sandbox 3>;
384                 assigned-clock-rates = <321>;
385         };
386
387         clk-test {
388                 compatible = "sandbox,clk-test";
389                 clocks = <&clk_fixed>,
390                          <&clk_sandbox 1>,
391                          <&clk_sandbox 0>,
392                          <&clk_sandbox 3>,
393                          <&clk_sandbox 2>;
394                 clock-names = "fixed", "i2c", "spi", "uart2", "uart1";
395         };
396
397         ccf: clk-ccf {
398                 compatible = "sandbox,clk-ccf";
399         };
400
401         eth@10002000 {
402                 compatible = "sandbox,eth";
403                 reg = <0x10002000 0x1000>;
404                 fake-host-hwaddr = [00 00 66 44 22 00];
405         };
406
407         eth_5: eth@10003000 {
408                 compatible = "sandbox,eth";
409                 reg = <0x10003000 0x1000>;
410                 fake-host-hwaddr = [00 00 66 44 22 11];
411         };
412
413         eth_3: sbe5 {
414                 compatible = "sandbox,eth";
415                 reg = <0x10005000 0x1000>;
416                 fake-host-hwaddr = [00 00 66 44 22 33];
417         };
418
419         eth@10004000 {
420                 compatible = "sandbox,eth";
421                 reg = <0x10004000 0x1000>;
422                 fake-host-hwaddr = [00 00 66 44 22 22];
423         };
424
425         firmware {
426                 sandbox_firmware: sandbox-firmware {
427                         compatible = "sandbox,firmware";
428                 };
429
430                 sandbox-scmi-agent@0 {
431                         compatible = "sandbox,scmi-agent";
432                         #address-cells = <1>;
433                         #size-cells = <0>;
434
435                         clk_scmi0: protocol@14 {
436                                 reg = <0x14>;
437                                 #clock-cells = <1>;
438                         };
439
440                         reset_scmi0: protocol@16 {
441                                 reg = <0x16>;
442                                 #reset-cells = <1>;
443                         };
444                 };
445
446                 sandbox-scmi-agent@1 {
447                         compatible = "sandbox,scmi-agent";
448                         #address-cells = <1>;
449                         #size-cells = <0>;
450
451                         clk_scmi1: protocol@14 {
452                                 reg = <0x14>;
453                                 #clock-cells = <1>;
454                         };
455
456                         protocol@10 {
457                                 reg = <0x10>;
458                         };
459                 };
460         };
461
462         pinctrl-gpio {
463                 compatible = "sandbox,pinctrl-gpio";
464
465                 gpio_a: base-gpios {
466                         compatible = "sandbox,gpio";
467                         gpio-controller;
468                         #gpio-cells = <1>;
469                         gpio-bank-name = "a";
470                         sandbox,gpio-count = <20>;
471                         hog_input_active_low {
472                                 gpio-hog;
473                                 input;
474                                 gpios = <10 GPIO_ACTIVE_LOW>;
475                         };
476                         hog_input_active_high {
477                                 gpio-hog;
478                                 input;
479                                 gpios = <11 GPIO_ACTIVE_HIGH>;
480                         };
481                         hog_output_low {
482                                 gpio-hog;
483                                 output-low;
484                                 gpios = <12 GPIO_ACTIVE_HIGH>;
485                         };
486                         hog_output_high {
487                                 gpio-hog;
488                                 output-high;
489                                 gpios = <13 GPIO_ACTIVE_HIGH>;
490                         };
491                 };
492
493                 gpio_b: extra-gpios {
494                         compatible = "sandbox,gpio";
495                         gpio-controller;
496                         #gpio-cells = <5>;
497                         gpio-bank-name = "b";
498                         sandbox,gpio-count = <10>;
499                 };
500
501                 gpio_c: pinmux-gpios {
502                         compatible = "sandbox,gpio";
503                         gpio-controller;
504                         #gpio-cells = <2>;
505                         gpio-bank-name = "c";
506                         sandbox,gpio-count = <10>;
507                 };
508         };
509
510         i2c@0 {
511                 #address-cells = <1>;
512                 #size-cells = <0>;
513                 reg = <0 1>;
514                 compatible = "sandbox,i2c";
515                 clock-frequency = <100000>;
516                 eeprom@2c {
517                         reg = <0x2c>;
518                         compatible = "i2c-eeprom";
519                         sandbox,emul = <&emul_eeprom>;
520                         partitions {
521                                 compatible = "fixed-partitions";
522                                 #address-cells = <1>;
523                                 #size-cells = <1>;
524                                 bootcount_i2c: bootcount@10 {
525                                         reg = <10 2>;
526                                 };
527                         };
528                 };
529
530                 rtc_0: rtc@43 {
531                         reg = <0x43>;
532                         compatible = "sandbox-rtc";
533                         sandbox,emul = <&emul0>;
534                 };
535
536                 rtc_1: rtc@61 {
537                         reg = <0x61>;
538                         compatible = "sandbox-rtc";
539                         sandbox,emul = <&emul1>;
540                 };
541
542                 i2c_emul: emul {
543                         reg = <0xff>;
544                         compatible = "sandbox,i2c-emul-parent";
545                         emul_eeprom: emul-eeprom {
546                                 compatible = "sandbox,i2c-eeprom";
547                                 sandbox,filename = "i2c.bin";
548                                 sandbox,size = <256>;
549                         };
550                         emul0: emul0 {
551                                 compatible = "sandbox,i2c-rtc";
552                         };
553                         emul1: emull {
554                                 compatible = "sandbox,i2c-rtc";
555                         };
556                 };
557
558                 sandbox_pmic: sandbox_pmic {
559                         reg = <0x40>;
560                         sandbox,emul = <&emul_pmic0>;
561                 };
562
563                 mc34708: pmic@41 {
564                         reg = <0x41>;
565                         sandbox,emul = <&emul_pmic1>;
566                 };
567         };
568
569         bootcount@0 {
570                 compatible = "u-boot,bootcount-rtc";
571                 rtc = <&rtc_1>;
572                 offset = <0x13>;
573         };
574
575         bootcount {
576                 compatible = "u-boot,bootcount-i2c-eeprom";
577                 i2c-eeprom = <&bootcount_i2c>;
578         };
579
580         adc@0 {
581                 compatible = "sandbox,adc";
582                 vdd-supply = <&buck2>;
583                 vss-microvolts = <0>;
584         };
585
586         irq: irq {
587                 compatible = "sandbox,irq";
588                 interrupt-controller;
589                 #interrupt-cells = <2>;
590         };
591
592         lcd {
593                 u-boot,dm-pre-reloc;
594                 compatible = "sandbox,lcd-sdl";
595                 xres = <1366>;
596                 yres = <768>;
597         };
598
599         leds {
600                 compatible = "gpio-leds";
601
602                 iracibble {
603                         gpios = <&gpio_a 1 0>;
604                         label = "sandbox:red";
605                 };
606
607                 martinet {
608                         gpios = <&gpio_a 2 0>;
609                         label = "sandbox:green";
610                 };
611
612                 default_on {
613                         gpios = <&gpio_a 5 0>;
614                         label = "sandbox:default_on";
615                         default-state = "on";
616                 };
617
618                 default_off {
619                         gpios = <&gpio_a 6 0>;
620                         /* label intentionally omitted */
621                         default-state = "off";
622                 };
623         };
624
625         mbox: mbox {
626                 compatible = "sandbox,mbox";
627                 #mbox-cells = <1>;
628         };
629
630         mbox-test {
631                 compatible = "sandbox,mbox-test";
632                 mboxes = <&mbox 100>, <&mbox 1>;
633                 mbox-names = "other", "test";
634         };
635
636         cpus {
637                 timebase-frequency = <2000000>;
638                 cpu-test1 {
639                         timebase-frequency = <3000000>;
640                         compatible = "sandbox,cpu_sandbox";
641                         u-boot,dm-pre-reloc;
642                 };
643
644                 cpu-test2 {
645                         compatible = "sandbox,cpu_sandbox";
646                         u-boot,dm-pre-reloc;
647                 };
648
649                 cpu-test3 {
650                         compatible = "sandbox,cpu_sandbox";
651                         u-boot,dm-pre-reloc;
652                 };
653         };
654
655         chipid: chipid {
656                 compatible = "sandbox,soc";
657         };
658
659         i2s: i2s {
660                 compatible = "sandbox,i2s";
661                 #sound-dai-cells = <1>;
662                 sandbox,silent; /* Don't emit sounds while testing */
663         };
664
665         nop-test_0 {
666                 compatible = "sandbox,nop_sandbox1";
667                 nop-test_1 {
668                         compatible = "sandbox,nop_sandbox2";
669                         bind = "True";
670                 };
671                 nop-test_2 {
672                         compatible = "sandbox,nop_sandbox2";
673                         bind = "False";
674                 };
675         };
676
677         misc-test {
678                 compatible = "sandbox,misc_sandbox";
679         };
680
681         mmc2 {
682                 compatible = "sandbox,mmc";
683         };
684
685         mmc1 {
686                 compatible = "sandbox,mmc";
687         };
688
689         mmc0 {
690                 compatible = "sandbox,mmc";
691         };
692
693         pch {
694                 compatible = "sandbox,pch";
695         };
696
697         pci0: pci@0 {
698                 compatible = "sandbox,pci";
699                 device_type = "pci";
700                 bus-range = <0x00 0xff>;
701                 #address-cells = <3>;
702                 #size-cells = <2>;
703                 ranges = <0x02000000 0 0x10000000 0x10000000 0 0x2000000
704                                 0x01000000 0 0x20000000 0x20000000 0 0x2000>;
705                 pci@0,0 {
706                         compatible = "pci-generic";
707                         reg = <0x0000 0 0 0 0>;
708                         sandbox,emul = <&swap_case_emul0_0>;
709                 };
710                 pci@1,0 {
711                         compatible = "pci-generic";
712                         /* reg 0 is at 0x14, using FDT_PCI_SPACE_MEM32 */
713                         reg = <0x02000814 0 0 0 0
714                                0x01000810 0 0 0 0>;
715                         sandbox,emul = <&swap_case_emul0_1>;
716                 };
717                 p2sb-pci@2,0 {
718                         compatible = "sandbox,p2sb";
719                         reg = <0x02001010 0 0 0 0>;
720                         sandbox,emul = <&p2sb_emul>;
721
722                         adder {
723                                 intel,p2sb-port-id = <3>;
724                                 compatible = "sandbox,adder";
725                         };
726                 };
727                 pci@1e,0 {
728                         compatible = "sandbox,pmc";
729                         reg = <0xf000 0 0 0 0>;
730                         sandbox,emul = <&pmc_emul1e>;
731                         acpi-base = <0x400>;
732                         gpe0-dwx-mask = <0xf>;
733                         gpe0-dwx-shift-base = <4>;
734                         gpe0-dw = <6 7 9>;
735                         gpe0-sts = <0x20>;
736                         gpe0-en = <0x30>;
737                 };
738                 pci@1f,0 {
739                         compatible = "pci-generic";
740                         /* reg 0 is at 0x10, using FDT_PCI_SPACE_IO */
741                         reg = <0x0100f810 0 0 0 0>;
742                         sandbox,emul = <&swap_case_emul0_1f>;
743                 };
744         };
745
746         pci-emul0 {
747                 compatible = "sandbox,pci-emul-parent";
748                 swap_case_emul0_0: emul0@0,0 {
749                         compatible = "sandbox,swap-case";
750                 };
751                 swap_case_emul0_1: emul0@1,0 {
752                         compatible = "sandbox,swap-case";
753                         use-ea;
754                 };
755                 swap_case_emul0_1f: emul0@1f,0 {
756                         compatible = "sandbox,swap-case";
757                 };
758                 p2sb_emul: emul@2,0 {
759                         compatible = "sandbox,p2sb-emul";
760                 };
761                 pmc_emul1e: emul@1e,0 {
762                         compatible = "sandbox,pmc-emul";
763                 };
764         };
765
766         pci1: pci@1 {
767                 compatible = "sandbox,pci";
768                 device_type = "pci";
769                 bus-range = <0x00 0xff>;
770                 #address-cells = <3>;
771                 #size-cells = <2>;
772                 ranges = <0x02000000 0 0x30000000 0x30000000 0 0x2000 // MEM0
773                           0x02000000 0 0x31000000 0x31000000 0 0x2000 // MEM1
774                           0x01000000 0 0x40000000 0x40000000 0 0x2000>;
775                 sandbox,dev-info = <0x08 0x00 0x1234 0x5678
776                                     0x0c 0x00 0x1234 0x5678
777                                     0x10 0x00 0x1234 0x5678>;
778                 pci@10,0 {
779                         reg = <0x8000 0 0 0 0>;
780                 };
781         };
782
783         pci2: pci@2 {
784                 compatible = "sandbox,pci";
785                 device_type = "pci";
786                 bus-range = <0x00 0xff>;
787                 #address-cells = <3>;
788                 #size-cells = <2>;
789                 ranges = <0x02000000 0 0x50000000 0x50000000 0 0x2000
790                                 0x01000000 0 0x60000000 0x60000000 0 0x2000>;
791                 sandbox,dev-info = <0x08 0x00 0x1234 0x5678>;
792                 pci@1f,0 {
793                         compatible = "pci-generic";
794                         reg = <0xf800 0 0 0 0>;
795                         sandbox,emul = <&swap_case_emul2_1f>;
796                 };
797         };
798
799         pci-emul2 {
800                 compatible = "sandbox,pci-emul-parent";
801                 swap_case_emul2_1f: emul2@1f,0 {
802                         compatible = "sandbox,swap-case";
803                 };
804         };
805
806         pci_ep: pci_ep {
807                 compatible = "sandbox,pci_ep";
808         };
809
810         probing {
811                 compatible = "simple-bus";
812                 test1 {
813                         compatible = "denx,u-boot-probe-test";
814                 };
815
816                 test2 {
817                         compatible = "denx,u-boot-probe-test";
818                 };
819
820                 test3 {
821                         compatible = "denx,u-boot-probe-test";
822                 };
823
824                 test4 {
825                         compatible = "denx,u-boot-probe-test";
826                         first-syscon = <&syscon0>;
827                         second-sys-ctrl = <&another_system_controller>;
828                         third-syscon = <&syscon2>;
829                 };
830         };
831
832         pwrdom: power-domain {
833                 compatible = "sandbox,power-domain";
834                 #power-domain-cells = <1>;
835         };
836
837         power-domain-test {
838                 compatible = "sandbox,power-domain-test";
839                 power-domains = <&pwrdom 2>;
840         };
841
842         pwm: pwm {
843                 compatible = "sandbox,pwm";
844                 #pwm-cells = <2>;
845         };
846
847         pwm2 {
848                 compatible = "sandbox,pwm";
849                 #pwm-cells = <2>;
850         };
851
852         ram {
853                 compatible = "sandbox,ram";
854         };
855
856         reset@0 {
857                 compatible = "sandbox,warm-reset";
858         };
859
860         reset@1 {
861                 compatible = "sandbox,reset";
862         };
863
864         resetc: reset-ctl {
865                 compatible = "sandbox,reset-ctl";
866                 #reset-cells = <1>;
867         };
868
869         reset-ctl-test {
870                 compatible = "sandbox,reset-ctl-test";
871                 resets = <&resetc 100>, <&resetc 2>;
872                 reset-names = "other", "test";
873         };
874
875         rng {
876                 compatible = "sandbox,sandbox-rng";
877         };
878
879         rproc_1: rproc@1 {
880                 compatible = "sandbox,test-processor";
881                 remoteproc-name = "remoteproc-test-dev1";
882         };
883
884         rproc_2: rproc@2 {
885                 compatible = "sandbox,test-processor";
886                 internal-memory-mapped;
887                 remoteproc-name = "remoteproc-test-dev2";
888         };
889
890         panel {
891                 compatible = "simple-panel";
892                 backlight = <&backlight 0 100>;
893         };
894
895         smem@0 {
896                 compatible = "sandbox,smem";
897         };
898
899         sound {
900                 compatible = "sandbox,sound";
901                 cpu {
902                         sound-dai = <&i2s 0>;
903                 };
904
905                 codec {
906                         sound-dai = <&audio 0>;
907                 };
908         };
909
910         spi@0 {
911                 #address-cells = <1>;
912                 #size-cells = <0>;
913                 reg = <0 1>;
914                 compatible = "sandbox,spi";
915                 cs-gpios = <0>, <0>, <&gpio_a 0>;
916                 spi.bin@0 {
917                         reg = <0>;
918                         compatible = "spansion,m25p16", "jedec,spi-nor";
919                         spi-max-frequency = <40000000>;
920                         sandbox,filename = "spi.bin";
921                 };
922                 spi.bin@1 {
923                         reg = <1>;
924                         compatible = "spansion,m25p16", "jedec,spi-nor";
925                         spi-max-frequency = <50000000>;
926                         sandbox,filename = "spi.bin";
927                         spi-cpol;
928                         spi-cpha;
929                 };
930         };
931
932         syscon0: syscon@0 {
933                 compatible = "sandbox,syscon0";
934                 reg = <0x10 16>;
935         };
936
937         another_system_controller: syscon@1 {
938                 compatible = "sandbox,syscon1";
939                 reg = <0x20 5
940                         0x28 6
941                         0x30 7
942                         0x38 8>;
943         };
944
945         syscon2: syscon@2 {
946                 compatible = "simple-mfd", "syscon";
947                 reg = <0x40 5
948                         0x48 6
949                         0x50 7
950                         0x58 8>;
951         };
952
953         syscon3: syscon@3 {
954                 compatible = "simple-mfd", "syscon";
955                 reg = <0x000100 0x10>;
956
957                 muxcontroller0: a-mux-controller {
958                         compatible = "mmio-mux";
959                         #mux-control-cells = <1>;
960
961                         mux-reg-masks = <0x0 0x30>, /* 0: reg 0x0, bits 5:4 */
962                                         <0xc 0x1E>, /* 1: reg 0xc, bits 4:1 */
963                                         <0x4 0xFF>; /* 2: reg 0x4, bits 7:0 */
964                         idle-states = <MUX_IDLE_AS_IS>, <0x02>, <0x73>;
965                         u-boot,mux-autoprobe;
966                 };
967         };
968
969         muxcontroller1: emul-mux-controller {
970                 compatible = "mux-emul";
971                 #mux-control-cells = <0>;
972                 u-boot,mux-autoprobe;
973                 idle-state = <0xabcd>;
974         };
975
976         testfdtm0 {
977                 compatible = "denx,u-boot-fdtm-test";
978         };
979
980         testfdtm1: testfdtm1 {
981                 compatible = "denx,u-boot-fdtm-test";
982         };
983
984         testfdtm2 {
985                 compatible = "denx,u-boot-fdtm-test";
986         };
987
988         timer@0 {
989                 compatible = "sandbox,timer";
990                 clock-frequency = <1000000>;
991         };
992
993         timer@1 {
994                 compatible = "sandbox,timer";
995                 sandbox,timebase-frequency-fallback;
996         };
997
998         tpm2 {
999                 compatible = "sandbox,tpm2";
1000         };
1001
1002         uart0: serial {
1003                 compatible = "sandbox,serial";
1004                 u-boot,dm-pre-reloc;
1005         };
1006
1007         usb_0: usb@0 {
1008                 compatible = "sandbox,usb";
1009                 status = "disabled";
1010                 hub {
1011                         compatible = "sandbox,usb-hub";
1012                         #address-cells = <1>;
1013                         #size-cells = <0>;
1014                         flash-stick {
1015                                 reg = <0>;
1016                                 compatible = "sandbox,usb-flash";
1017                         };
1018                 };
1019         };
1020
1021         usb_1: usb@1 {
1022                 compatible = "sandbox,usb";
1023                 hub {
1024                         compatible = "usb-hub";
1025                         usb,device-class = <9>;
1026                         #address-cells = <1>;
1027                         #size-cells = <0>;
1028                         hub-emul {
1029                                 compatible = "sandbox,usb-hub";
1030                                 #address-cells = <1>;
1031                                 #size-cells = <0>;
1032                                 flash-stick@0 {
1033                                         reg = <0>;
1034                                         compatible = "sandbox,usb-flash";
1035                                         sandbox,filepath = "testflash.bin";
1036                                 };
1037
1038                                 flash-stick@1 {
1039                                         reg = <1>;
1040                                         compatible = "sandbox,usb-flash";
1041                                         sandbox,filepath = "testflash1.bin";
1042                                 };
1043
1044                                 flash-stick@2 {
1045                                         reg = <2>;
1046                                         compatible = "sandbox,usb-flash";
1047                                         sandbox,filepath = "testflash2.bin";
1048                                 };
1049
1050                                 keyb@3 {
1051                                         reg = <3>;
1052                                         compatible = "sandbox,usb-keyb";
1053                                 };
1054
1055                         };
1056
1057                         usbstor@1 {
1058                                 reg = <1>;
1059                         };
1060                         usbstor@3 {
1061                                 reg = <3>;
1062                         };
1063                 };
1064         };
1065
1066         usb_2: usb@2 {
1067                 compatible = "sandbox,usb";
1068                 status = "disabled";
1069         };
1070
1071         spmi: spmi@0 {
1072                 compatible = "sandbox,spmi";
1073                 #address-cells = <0x1>;
1074                 #size-cells = <0x1>;
1075                 ranges;
1076                 pm8916@0 {
1077                         compatible = "qcom,spmi-pmic";
1078                         reg = <0x0 0x1>;
1079                         #address-cells = <0x1>;
1080                         #size-cells = <0x1>;
1081                         ranges;
1082
1083                         spmi_gpios: gpios@c000 {
1084                                 compatible = "qcom,pm8916-gpio";
1085                                 reg = <0xc000 0x400>;
1086                                 gpio-controller;
1087                                 gpio-count = <4>;
1088                                 #gpio-cells = <2>;
1089                                 gpio-bank-name="spmi";
1090                         };
1091                 };
1092         };
1093
1094         wdt0: wdt@0 {
1095                 compatible = "sandbox,wdt";
1096         };
1097
1098         axi: axi@0 {
1099                 compatible = "sandbox,axi";
1100                 #address-cells = <0x1>;
1101                 #size-cells = <0x1>;
1102                 store@0 {
1103                         compatible = "sandbox,sandbox_store";
1104                         reg = <0x0 0x400>;
1105                 };
1106         };
1107
1108         chosen {
1109                 #address-cells = <1>;
1110                 #size-cells = <1>;
1111                 setting = "sunrise ohoka";
1112                 other-node = "/some-bus/c-test@5";
1113                 int-values = <0x1937 72993>;
1114                 u-boot,acpi-ssdt-order = <&acpi_test2 &acpi_test1>;
1115                 chosen-test {
1116                         compatible = "denx,u-boot-fdt-test";
1117                         reg = <9 1>;
1118                 };
1119         };
1120
1121         translation-test@8000 {
1122                 compatible = "simple-bus";
1123                 reg = <0x8000 0x4000>;
1124
1125                 #address-cells = <0x2>;
1126                 #size-cells = <0x1>;
1127
1128                 ranges = <0 0x0 0x8000 0x1000
1129                           1 0x100 0x9000 0x1000
1130                           2 0x200 0xA000 0x1000
1131                           3 0x300 0xB000 0x1000
1132                           4 0x400 0xC000 0x1000
1133                          >;
1134
1135                 dma-ranges = <0 0x000 0x10000000 0x1000
1136                               1 0x100 0x20000000 0x1000
1137                              >;
1138
1139                 dev@0,0 {
1140                         compatible = "denx,u-boot-fdt-dummy";
1141                         reg = <0 0x0 0x1000>;
1142                         reg-names = "sandbox-dummy-0";
1143                 };
1144
1145                 dev@1,100 {
1146                         compatible = "denx,u-boot-fdt-dummy";
1147                         reg = <1 0x100 0x1000>;
1148
1149                 };
1150
1151                 dev@2,200 {
1152                         compatible = "denx,u-boot-fdt-dummy";
1153                         reg = <2 0x200 0x1000>;
1154                 };
1155
1156
1157                 noxlatebus@3,300 {
1158                         compatible = "simple-bus";
1159                         reg = <3 0x300 0x1000>;
1160
1161                         #address-cells = <0x1>;
1162                         #size-cells = <0x0>;
1163
1164                         dev@42 {
1165                                 compatible = "denx,u-boot-fdt-dummy";
1166                                 reg = <0x42>;
1167                         };
1168                 };
1169
1170                 xlatebus@4,400 {
1171                         compatible = "sandbox,zero-size-cells-bus";
1172                         reg = <4 0x400 0x1000>;
1173                         #address-cells = <1>;
1174                         #size-cells = <1>;
1175                         ranges = <0 4 0x400 0x1000>;
1176
1177                         devs {
1178                                 #address-cells = <1>;
1179                                 #size-cells = <0>;
1180
1181                                 dev@19 {
1182                                         compatible = "denx,u-boot-fdt-dummy";
1183                                         reg = <0x19>;
1184                                 };
1185                         };
1186                 };
1187
1188         };
1189
1190         osd {
1191                 compatible = "sandbox,sandbox_osd";
1192         };
1193
1194         sandbox_tee {
1195                 compatible = "sandbox,tee";
1196         };
1197
1198         sandbox_virtio1 {
1199                 compatible = "sandbox,virtio1";
1200         };
1201
1202         sandbox_virtio2 {
1203                 compatible = "sandbox,virtio2";
1204         };
1205
1206         sandbox_scmi {
1207                 compatible = "sandbox,scmi-devices";
1208                 clocks = <&clk_scmi0 7>, <&clk_scmi0 3>, <&clk_scmi1 1>;
1209                 resets = <&reset_scmi0 3>;
1210         };
1211
1212         pinctrl {
1213                 compatible = "sandbox,pinctrl";
1214
1215                 pinctrl-names = "default", "alternate";
1216                 pinctrl-0 = <&pinctrl_gpios>, <&pinctrl_i2s>;
1217                 pinctrl-1 = <&pinctrl_spi>, <&pinctrl_i2c>;
1218
1219                 pinctrl_gpios: gpios {
1220                         gpio0 {
1221                                 pins = "P5";
1222                                 function = "GPIO";
1223                                 bias-pull-up;
1224                                 input-disable;
1225                         };
1226                         gpio1 {
1227                                 pins = "P6";
1228                                 function = "GPIO";
1229                                 output-high;
1230                                 drive-open-drain;
1231                         };
1232                         gpio2 {
1233                                 pinmux = <SANDBOX_PINMUX(7, SANDBOX_PINMUX_GPIO)>;
1234                                 bias-pull-down;
1235                                 input-enable;
1236                         };
1237                         gpio3 {
1238                                 pinmux = <SANDBOX_PINMUX(8, SANDBOX_PINMUX_GPIO)>;
1239                                 bias-disable;
1240                         };
1241                 };
1242
1243                 pinctrl_i2c: i2c {
1244                         groups {
1245                                 groups = "I2C_UART";
1246                                 function = "I2C";
1247                         };
1248
1249                         pins {
1250                                 pins = "P0", "P1";
1251                                 drive-open-drain;
1252                         };
1253                 };
1254
1255                 pinctrl_i2s: i2s {
1256                         groups = "SPI_I2S";
1257                         function = "I2S";
1258                 };
1259
1260                 pinctrl_spi: spi {
1261                         groups = "SPI_I2S";
1262                         function = "SPI";
1263
1264                         cs {
1265                                 pinmux = <SANDBOX_PINMUX(5, SANDBOX_PINMUX_CS)>,
1266                                          <SANDBOX_PINMUX(6, SANDBOX_PINMUX_CS)>;
1267                         };
1268                 };
1269         };
1270
1271         hwspinlock@0 {
1272                 compatible = "sandbox,hwspinlock";
1273         };
1274
1275         dma: dma {
1276                 compatible = "sandbox,dma";
1277                 #dma-cells = <1>;
1278
1279                 dmas = <&dma 0>, <&dma 1>, <&dma 2>;
1280                 dma-names = "m2m", "tx0", "rx0";
1281         };
1282
1283         /*
1284          * keep mdio-mux ahead of mdio so that the mux is removed first at the
1285          * end of the test.  If parent mdio is removed first, clean-up of the
1286          * mux will trigger a 2nd probe of parent-mdio, leaving parent-mdio
1287          * active at the end of the test.  That it turn doesn't allow the mdio
1288          * class to be destroyed, triggering an error.
1289          */
1290         mdio-mux-test {
1291                 compatible = "sandbox,mdio-mux";
1292                 #address-cells = <1>;
1293                 #size-cells = <0>;
1294                 mdio-parent-bus = <&mdio>;
1295
1296                 mdio-ch-test@0 {
1297                         reg = <0>;
1298                 };
1299                 mdio-ch-test@1 {
1300                         reg = <1>;
1301                 };
1302         };
1303
1304         mdio: mdio-test {
1305                 compatible = "sandbox,mdio";
1306         };
1307
1308         pm-bus-test {
1309                 compatible = "simple-pm-bus";
1310                 clocks = <&clk_sandbox 4>;
1311                 power-domains = <&pwrdom 1>;
1312         };
1313
1314         resetc2: syscon-reset {
1315                 compatible = "syscon-reset";
1316                 #reset-cells = <1>;
1317                 regmap = <&syscon0>;
1318                 offset = <1>;
1319                 mask = <0x27FFFFFF>;
1320                 assert-high = <0>;
1321         };
1322
1323         syscon-reset-test {
1324                 compatible = "sandbox,misc_sandbox";
1325                 resets = <&resetc2 15>, <&resetc2 30>, <&resetc2 60>;
1326                 reset-names = "valid", "no_mask", "out_of_range";
1327         };
1328
1329         sysinfo {
1330                 compatible = "sandbox,sysinfo-sandbox";
1331         };
1332
1333         some_regmapped-bus {
1334                 #address-cells = <0x1>;
1335                 #size-cells = <0x1>;
1336
1337                 ranges = <0x0 0x0 0x10>;
1338                 compatible = "simple-bus";
1339
1340                 regmap-test_0 {
1341                         reg = <0 0x10>;
1342                         compatible = "sandbox,regmap_test";
1343                 };
1344         };
1345 };
1346
1347 #include "sandbox_pmic.dtsi"