Merge git://git.denx.de/u-boot-usb
[platform/kernel/u-boot.git] / arch / sandbox / dts / test.dts
index ee0f631..15cd233 100644 (file)
@@ -1,5 +1,8 @@
 /dts-v1/;
 
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/gpio/sandbox-gpio.h>
+
 / {
        model = "sandbox";
        compatible = "sandbox";
@@ -13,6 +16,7 @@
                eth5 = &eth_5;
                gpio1 = &gpio_a;
                gpio2 = &gpio_b;
+               gpio3 = &gpio_c;
                i2c0 = "/i2c@0";
                mmc0 = "/mmc0";
                mmc1 = "/mmc1";
                };
        };
 
+       dsi_host: dsi_host {
+               compatible = "sandbox,dsi-host";
+       };
+
        a-test {
                reg = <0 1>;
                compatible = "denx,u-boot-fdt-test";
                ping-expect = <0>;
                ping-add = <0>;
                u-boot,dm-pre-reloc;
-               test-gpios = <&gpio_a 1>, <&gpio_a 4>, <&gpio_b 5 0 3 2 1>,
+               test-gpios = <&gpio_a 1>, <&gpio_a 4>,
+                       <&gpio_b 5 GPIO_ACTIVE_HIGH 3 2 1>,
                        <0>, <&gpio_a 12>;
-               test2-gpios = <&gpio_a 1>, <&gpio_a 4>, <&gpio_b 6 1 3 2 1>,
-                       <&gpio_b 7 2 3 2 1>, <&gpio_b 8 4 3 2 1>,
-                       <&gpio_b 9 0xc 3 2 1>;
+               test2-gpios = <&gpio_a 1>, <&gpio_a 4>,
+                       <&gpio_b 6 GPIO_ACTIVE_LOW 3 2 1>,
+                       <&gpio_b 7 GPIO_IN 3 2 1>,
+                       <&gpio_b 8 GPIO_OUT 3 2 1>,
+                       <&gpio_b 9 (GPIO_OUT|GPIO_OUT_ACTIVE) 3 2 1>;
+               test3-gpios =
+                       <&gpio_c 0 (GPIO_OUT|GPIO_OPEN_DRAIN)>,
+                       <&gpio_c 1 (GPIO_OUT|GPIO_OPEN_SOURCE)>,
+                       <&gpio_c 2 GPIO_OUT>,
+                       <&gpio_c 3 (GPIO_IN|GPIO_PULL_UP)>,
+                       <&gpio_c 4 (GPIO_IN|GPIO_PULL_DOWN)>,
+                       <&gpio_c 5 GPIO_IN>;
                int-value = <1234>;
                uint-value = <(-1234)>;
+               int64-value = /bits/ 64 <0x1111222233334444>;
+               int-array = <5678 9123 4567>;
+               interrupts-extended = <&irq 3 0>;
        };
 
        junk {
                broken;
        };
 
+       phy_provider2: gen_phy@2 {
+               compatible = "sandbox,phy";
+               #phy-cells = <0>;
+       };
+
        gen_phy_user: gen_phy_user {
                compatible = "simple-bus";
                phys = <&phy_provider0 0>, <&phy_provider0 1>, <&phy_provider1>;
                phy-names = "phy1", "phy2", "phy3";
        };
 
+       gen_phy_user1: gen_phy_user1 {
+               compatible = "simple-bus";
+               phys = <&phy_provider0 0>, <&phy_provider2>;
+               phy-names = "phy1", "phy2";
+       };
+
        some-bus {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "denx,u-boot-fdt-test1";
        };
 
+       i-test {
+               compatible = "mediatek,u-boot-fdt-test";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               subnode@0 {
+                       reg = <0>;
+               };
+
+               subnode@1 {
+                       reg = <1>;
+               };
+
+               subnode@2 {
+                       reg = <2>;
+               };
+       };
+
+       devres-test {
+               compatible = "denx,u-boot-devres-test";
+       };
+
+       acpi-test {
+               compatible = "denx,u-boot-acpi-test";
+       };
+
+       acpi-test2 {
+               compatible = "denx,u-boot-acpi-test";
+       };
+
        clocks {
                clk_fixed: clk-fixed {
                        compatible = "fixed-clock";
                        clock-mult = <2>;
                        clocks = <&clk_fixed>;
                };
+
+               osc {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <20000000>;
+               };
        };
 
        clk_sandbox: clk-sbox {
                compatible = "sandbox,clk";
                #clock-cells = <1>;
+               assigned-clocks = <&clk_sandbox 3>;
+               assigned-clock-rates = <321>;
        };
 
        clk-test {
                compatible = "sandbox,clk-test";
                clocks = <&clk_fixed>,
                         <&clk_sandbox 1>,
-                        <&clk_sandbox 0>;
-               clock-names = "fixed", "i2c", "spi";
+                        <&clk_sandbox 0>,
+                        <&clk_sandbox 3>,
+                        <&clk_sandbox 2>;
+               clock-names = "fixed", "i2c", "spi", "uart2", "uart1";
+       };
+
+       ccf: clk-ccf {
+               compatible = "sandbox,clk-ccf";
        };
 
        eth@10002000 {
                };
        };
 
-       gpio_a: base-gpios {
-               compatible = "sandbox,gpio";
-               gpio-controller;
-               #gpio-cells = <1>;
-               gpio-bank-name = "a";
-               sandbox,gpio-count = <20>;
-       };
+       pinctrl-gpio {
+               compatible = "sandbox,pinctrl-gpio";
+
+               gpio_a: base-gpios {
+                       compatible = "sandbox,gpio";
+                       gpio-controller;
+                       #gpio-cells = <1>;
+                       gpio-bank-name = "a";
+                       sandbox,gpio-count = <20>;
+               };
 
-       gpio_b: extra-gpios {
-               compatible = "sandbox,gpio";
-               gpio-controller;
-               #gpio-cells = <5>;
-               gpio-bank-name = "b";
-               sandbox,gpio-count = <10>;
+               gpio_b: extra-gpios {
+                       compatible = "sandbox,gpio";
+                       gpio-controller;
+                       #gpio-cells = <5>;
+                       gpio-bank-name = "b";
+                       sandbox,gpio-count = <10>;
+               };
+
+               gpio_c: pinmux-gpios {
+                       compatible = "sandbox,gpio";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-bank-name = "c";
+                       sandbox,gpio-count = <10>;
+               };
        };
 
        i2c@0 {
                vss-microvolts = <0>;
        };
 
+       irq: irq {
+               compatible = "sandbox,irq";
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
        lcd {
                u-boot,dm-pre-reloc;
                compatible = "sandbox,lcd-sdl";
                mbox-names = "other", "test";
        };
 
-       cpu-test1 {
-               compatible = "sandbox,cpu_sandbox";
-               u-boot,dm-pre-reloc;
-       };
+       cpus {
+               cpu-test1 {
+                       compatible = "sandbox,cpu_sandbox";
+                       u-boot,dm-pre-reloc;
+               };
 
-       cpu-test2 {
-               compatible = "sandbox,cpu_sandbox";
-               u-boot,dm-pre-reloc;
-       };
+               cpu-test2 {
+                       compatible = "sandbox,cpu_sandbox";
+                       u-boot,dm-pre-reloc;
+               };
 
-       cpu-test3 {
-               compatible = "sandbox,cpu_sandbox";
-               u-boot,dm-pre-reloc;
+               cpu-test3 {
+                       compatible = "sandbox,cpu_sandbox";
+                       u-boot,dm-pre-reloc;
+               };
        };
 
        i2s: i2s {
                compatible = "sandbox,pch";
        };
 
-       pci0: pci-controller0 {
+       pci0: pci@0 {
                compatible = "sandbox,pci";
                device_type = "pci";
+               bus-range = <0x00 0xff>;
                #address-cells = <3>;
                #size-cells = <2>;
-               ranges = <0x02000000 0 0x10000000 0x10000000 0 0x2000
+               ranges = <0x02000000 0 0x10000000 0x10000000 0 0x2000000
                                0x01000000 0 0x20000000 0x20000000 0 0x2000>;
                pci@0,0 {
                        compatible = "pci-generic";
                        reg = <0x0000 0 0 0 0>;
-                       emul@0,0 {
-                               compatible = "sandbox,swap-case";
-                       };
+                       sandbox,emul = <&swap_case_emul0_0>;
                };
                pci@1,0 {
                        compatible = "pci-generic";
-                       reg = <0x0800 0 0 0 0>;
-                       emul@0,0 {
-                               compatible = "sandbox,swap-case";
-                               use-ea;
+                       /* reg 0 is at 0x14, using FDT_PCI_SPACE_MEM32 */
+                       reg = <0x02000814 0 0 0 0
+                              0x01000810 0 0 0 0>;
+                       sandbox,emul = <&swap_case_emul0_1>;
+               };
+               p2sb-pci@2,0 {
+                       compatible = "sandbox,p2sb";
+                       reg = <0x02001010 0 0 0 0>;
+                       sandbox,emul = <&p2sb_emul>;
+
+                       adder {
+                               intel,p2sb-port-id = <3>;
+                               compatible = "sandbox,adder";
                        };
                };
+               pci@1e,0 {
+                       compatible = "sandbox,pmc";
+                       reg = <0xf000 0 0 0 0>;
+                       sandbox,emul = <&pmc_emul1e>;
+                       acpi-base = <0x400>;
+                       gpe0-dwx-mask = <0xf>;
+                       gpe0-dwx-shift-base = <4>;
+                       gpe0-dw = <6 7 9>;
+                       gpe0-sts = <0x20>;
+                       gpe0-en = <0x30>;
+               };
                pci@1f,0 {
                        compatible = "pci-generic";
-                       reg = <0xf800 0 0 0 0>;
-                       emul@1f,0 {
-                               compatible = "sandbox,swap-case";
-                       };
+                       /* reg 0 is at 0x10, using FDT_PCI_SPACE_IO */
+                       reg = <0x0100f810 0 0 0 0>;
+                       sandbox,emul = <&swap_case_emul0_1f>;
+               };
+       };
+
+       pci-emul0 {
+               compatible = "sandbox,pci-emul-parent";
+               swap_case_emul0_0: emul0@0,0 {
+                       compatible = "sandbox,swap-case";
+               };
+               swap_case_emul0_1: emul0@1,0 {
+                       compatible = "sandbox,swap-case";
+                       use-ea;
+               };
+               swap_case_emul0_1f: emul0@1f,0 {
+                       compatible = "sandbox,swap-case";
+               };
+               p2sb_emul: emul@2,0 {
+                       compatible = "sandbox,p2sb-emul";
+               };
+               pmc_emul1e: emul@1e,0 {
+                       compatible = "sandbox,pmc-emul";
                };
        };
 
-       pci1: pci-controller1 {
+       pci1: pci@1 {
                compatible = "sandbox,pci";
                device_type = "pci";
+               bus-range = <0x00 0xff>;
                #address-cells = <3>;
                #size-cells = <2>;
                ranges = <0x02000000 0 0x30000000 0x30000000 0 0x2000
                };
        };
 
-       pci2: pci-controller2 {
+       pci2: pci@2 {
                compatible = "sandbox,pci";
                device_type = "pci";
+               bus-range = <0x00 0xff>;
                #address-cells = <3>;
                #size-cells = <2>;
                ranges = <0x02000000 0 0x50000000 0x50000000 0 0x2000
                pci@1f,0 {
                        compatible = "pci-generic";
                        reg = <0xf800 0 0 0 0>;
-                       emul@1f,0 {
-                               compatible = "sandbox,swap-case";
-                       };
+                       sandbox,emul = <&swap_case_emul2_1f>;
                };
        };
 
+       pci-emul2 {
+               compatible = "sandbox,pci-emul-parent";
+               swap_case_emul2_1f: emul2@1f,0 {
+                       compatible = "sandbox,swap-case";
+               };
+       };
+
+       pci_ep: pci_ep {
+               compatible = "sandbox,pci_ep";
+       };
+
        probing {
                compatible = "simple-bus";
                test1 {
                reset-names = "other", "test";
        };
 
+       rng {
+               compatible = "sandbox,sandbox-rng";
+       };
+
        rproc_1: rproc@1 {
                compatible = "sandbox,test-processor";
                remoteproc-name = "remoteproc-test-dev1";
                compatible = "sandbox,spmi";
                #address-cells = <0x1>;
                #size-cells = <0x1>;
+               ranges;
                pm8916@0 {
                        compatible = "qcom,spmi-pmic";
                        reg = <0x0 0x1>;
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
+                       ranges;
 
                        spmi_gpios: gpios@c000 {
                                compatible = "qcom,pm8916-gpio";
        chosen {
                #address-cells = <1>;
                #size-cells = <1>;
+               setting = "sunrise ohoka";
+               other-node = "/some-bus/c-test@5";
+               int-values = <0x1937 72993>;
                chosen-test {
                        compatible = "denx,u-boot-fdt-test";
                        reg = <9 1>;
                          3 0x300 0xB000 0x1000
                         >;
 
+               dma-ranges = <0 0x000 0x10000000 0x1000
+                             1 0x100 0x20000000 0x1000
+                            >;
+
                dev@0,0 {
                        compatible = "denx,u-boot-fdt-dummy";
                        reg = <0 0x0 0x1000>;
 
        pinctrl {
                compatible = "sandbox,pinctrl";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpios>;
+
+               gpios: gpios {
+                       gpio0 {
+                               pins = "GPIO0";
+                               bias-pull-up;
+                               input-disable;
+                       };
+                       gpio1 {
+                               pins = "GPIO1";
+                               output-high;
+                               drive-open-drain;
+                       };
+                       gpio2 {
+                               pins = "GPIO2";
+                               bias-pull-down;
+                               input-enable;
+                       };
+                       gpio3 {
+                               pins = "GPIO3";
+                               bias-disable;
+                       };
+               };
        };
 
        hwspinlock@0 {
                dmas = <&dma 0>, <&dma 1>, <&dma 2>;
                dma-names = "m2m", "tx0", "rx0";
        };
+
+       /*
+        * keep mdio-mux ahead of mdio so that the mux is removed first at the
+        * end of the test.  If parent mdio is removed first, clean-up of the
+        * mux will trigger a 2nd probe of parent-mdio, leaving parent-mdio
+        * active at the end of the test.  That it turn doesn't allow the mdio
+        * class to be destroyed, triggering an error.
+        */
+       mdio-mux-test {
+               compatible = "sandbox,mdio-mux";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               mdio-parent-bus = <&mdio>;
+
+               mdio-ch-test@0 {
+                       reg = <0>;
+               };
+               mdio-ch-test@1 {
+                       reg = <1>;
+               };
+       };
+
+       mdio: mdio-test {
+               compatible = "sandbox,mdio";
+       };
 };
 
 #include "sandbox_pmic.dtsi"