/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/gpio/sandbox-gpio.h>

/ {
	model = "sandbox";
	compatible = "sandbox";
	#address-cells = <1>;
	#size-cells = <1>;

	aliases {
		console = &uart0;
		eth0 = "/eth@10002000";
		eth3 = &eth_3;
		eth5 = &eth_5;
		gpio1 = &gpio_a;
		gpio2 = &gpio_b;
		gpio3 = &gpio_c;
		i2c0 = "/i2c@0";
		mmc0 = "/mmc0";
		mmc1 = "/mmc1";
		pci0 = &pci0;
		pci1 = &pci1;
		pci2 = &pci2;
		remoteproc0 = &rproc_1;
		remoteproc1 = &rproc_2;
		rtc0 = &rtc_0;
		rtc1 = &rtc_1;
		spi0 = "/spi@0";
		testfdt6 = "/e-test";
		testbus3 = "/some-bus";
		testfdt0 = "/some-bus/c-test@0";
		testfdt1 = "/some-bus/c-test@1";
		testfdt3 = "/b-test";
		testfdt5 = "/some-bus/c-test@5";
		testfdt8 = "/a-test";
		fdt-dummy0 = "/translation-test@8000/dev@0,0";
		fdt-dummy1 = "/translation-test@8000/dev@1,100";
		fdt-dummy2 = "/translation-test@8000/dev@2,200";
		fdt-dummy3 = "/translation-test@8000/noxlatebus@3,300/dev@42";
		usb0 = &usb_0;
		usb1 = &usb_1;
		usb2 = &usb_2;
		axi0 = &axi;
		osd0 = "/osd";
	};

	audio: audio-codec {
		compatible = "sandbox,audio-codec";
		#sound-dai-cells = <1>;
	};

	buttons {
		compatible = "gpio-keys";

		summer {
			gpios = <&gpio_a 3 0>;
			label = "summer";
		};

		christmas {
			gpios = <&gpio_a 4 0>;
			label = "christmas";
		};
	};

	cros_ec: cros-ec {
		reg = <0 0>;
		compatible = "google,cros-ec-sandbox";

		/*
		 * This describes the flash memory within the EC. Note
		 * that the STM32L flash erases to 0, not 0xff.
		 */
		flash {
			image-pos = <0x08000000>;
			size = <0x20000>;
			erase-value = <0>;

			/* Information for sandbox */
			ro {
				image-pos = <0>;
				size = <0xf000>;
			};
			wp-ro {
				image-pos = <0xf000>;
				size = <0x1000>;
			};
			rw {
				image-pos = <0x10000>;
				size = <0x10000>;
			};
		};
	};

	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 GPIO_ACTIVE_HIGH 3 2 1>,
			<0>, <&gpio_a 12>;
		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>,
			<&gpio_c 6 (GPIO_ACTIVE_LOW|GPIO_OUT|GPIO_OPEN_DRAIN)>,
			<&gpio_c 7 (GPIO_ACTIVE_LOW|GPIO_OUT|GPIO_OPEN_SOURCE)>;
		test4-gpios = <&gpio_a 14>, <&gpio_b 4 1 3 2 1>;
		test5-gpios = <&gpio_a 19>;

		int-value = <1234>;
		uint-value = <(-1234)>;
		int64-value = /bits/ 64 <0x1111222233334444>;
		int-array = <5678 9123 4567>;
		str-value = "test string";
		interrupts-extended = <&irq 3 0>;
		acpi,name = "GHIJ";
	};

	junk {
		reg = <1 1>;
		compatible = "not,compatible";
	};

	no-compatible {
		reg = <2 1>;
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		enable-gpios = <&gpio_a 1>;
		power-supply = <&ldo_1>;
		pwms = <&pwm 0 1000>;
		default-brightness-level = <5>;
		brightness-levels = <0 16 32 64 128 170 202 234 255>;
	};

	bind-test {
		compatible = "simple-bus";
		bind-test-child1 {
			compatible = "sandbox,phy";
			#phy-cells = <1>;
		};

		bind-test-child2 {
			compatible = "simple-bus";
		};
	};

	b-test {
		reg = <3 1>;
		compatible = "denx,u-boot-fdt-test";
		ping-expect = <3>;
		ping-add = <3>;
	};

	phy_provider0: gen_phy@0 {
		compatible = "sandbox,phy";
		#phy-cells = <1>;
	};

	phy_provider1: gen_phy@1 {
		compatible = "sandbox,phy";
		#phy-cells = <0>;
		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-test-bus";
		reg = <3 1>;
		ping-expect = <4>;
		ping-add = <4>;
		c-test@5 {
			compatible = "denx,u-boot-fdt-test";
			reg = <5>;
			ping-expect = <5>;
			ping-add = <5>;
		};
		c-test@0 {
			compatible = "denx,u-boot-fdt-test";
			reg = <0>;
			ping-expect = <6>;
			ping-add = <6>;
		};
		c-test@1 {
			compatible = "denx,u-boot-fdt-test";
			reg = <1>;
			ping-expect = <7>;
			ping-add = <7>;
		};
	};

	d-test {
		reg = <3 1>;
		ping-expect = <6>;
		ping-add = <6>;
		compatible = "google,another-fdt-test";
	};

	e-test {
		reg = <3 1>;
		ping-expect = <6>;
		ping-add = <6>;
		compatible = "google,another-fdt-test";
	};

	f-test {
		compatible = "denx,u-boot-fdt-test";
	};

	g-test {
		compatible = "denx,u-boot-fdt-test";
	};

	h-test {
		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";
	};

	another-test {
		reg = <0 2>;
		compatible = "denx,u-boot-fdt-test";
		test4-gpios = <&gpio_a 14>, <&gpio_b 4 1 3 2 1>;
		test5-gpios = <&gpio_a 19>;
	};

	acpi_test1: acpi-test {
		compatible = "denx,u-boot-acpi-test";
		acpi-ssdt-test-data = "ab";
		acpi-dsdt-test-data = "hi";
		child {
			compatible = "denx,u-boot-acpi-test";
		};
	};

	acpi_test2: acpi-test2 {
		compatible = "denx,u-boot-acpi-test";
		acpi-ssdt-test-data = "cd";
		acpi-dsdt-test-data = "jk";
	};

	clocks {
		clk_fixed: clk-fixed {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <1234>;
		};

		clk_fixed_factor: clk-fixed-factor {
			compatible = "fixed-factor-clock";
			#clock-cells = <0>;
			clock-div = <3>;
			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>,
			 <&clk_sandbox 3>,
			 <&clk_sandbox 2>;
		clock-names = "fixed", "i2c", "spi", "uart2", "uart1";
	};

	ccf: clk-ccf {
		compatible = "sandbox,clk-ccf";
	};

	eth@10002000 {
		compatible = "sandbox,eth";
		reg = <0x10002000 0x1000>;
		fake-host-hwaddr = [00 00 66 44 22 00];
	};

	eth_5: eth@10003000 {
		compatible = "sandbox,eth";
		reg = <0x10003000 0x1000>;
		fake-host-hwaddr = [00 00 66 44 22 11];
	};

	eth_3: sbe5 {
		compatible = "sandbox,eth";
		reg = <0x10005000 0x1000>;
		fake-host-hwaddr = [00 00 66 44 22 33];
	};

	eth@10004000 {
		compatible = "sandbox,eth";
		reg = <0x10004000 0x1000>;
		fake-host-hwaddr = [00 00 66 44 22 22];
	};

	firmware {
		sandbox_firmware: sandbox-firmware {
			compatible = "sandbox,firmware";
		};

		sandbox-scmi-agent@0 {
			compatible = "sandbox,scmi-agent";
			#address-cells = <1>;
			#size-cells = <0>;

			clk_scmi0: protocol@14 {
				reg = <0x14>;
				#clock-cells = <1>;
			};
		};

		sandbox-scmi-agent@1 {
			compatible = "sandbox,scmi-agent";
			#address-cells = <1>;
			#size-cells = <0>;

			clk_scmi1: protocol@14 {
				reg = <0x14>;
				#clock-cells = <1>;
			};

			protocol@10 {
				reg = <0x10>;
			};
		};
	};

	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>;
			hog_input_active_low {
				gpio-hog;
				input;
				gpios = <10 GPIO_ACTIVE_LOW>;
			};
			hog_input_active_high {
				gpio-hog;
				input;
				gpios = <11 GPIO_ACTIVE_HIGH>;
			};
			hog_output_low {
				gpio-hog;
				output-low;
				gpios = <12 GPIO_ACTIVE_HIGH>;
			};
			hog_output_high {
				gpio-hog;
				output-high;
				gpios = <13 GPIO_ACTIVE_HIGH>;
			};
		};

		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 {
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0 1>;
		compatible = "sandbox,i2c";
		clock-frequency = <100000>;
		eeprom@2c {
			reg = <0x2c>;
			compatible = "i2c-eeprom";
			sandbox,emul = <&emul_eeprom>;
			partitions {
				compatible = "fixed-partitions";
				#address-cells = <1>;
				#size-cells = <1>;
				bootcount_i2c: bootcount@10 {
					reg = <10 2>;
				};
			};
		};

		rtc_0: rtc@43 {
			reg = <0x43>;
			compatible = "sandbox-rtc";
			sandbox,emul = <&emul0>;
		};

		rtc_1: rtc@61 {
			reg = <0x61>;
			compatible = "sandbox-rtc";
			sandbox,emul = <&emul1>;
		};

		i2c_emul: emul {
			reg = <0xff>;
			compatible = "sandbox,i2c-emul-parent";
			emul_eeprom: emul-eeprom {
				compatible = "sandbox,i2c-eeprom";
				sandbox,filename = "i2c.bin";
				sandbox,size = <256>;
			};
			emul0: emul0 {
				compatible = "sandbox,i2c-rtc";
			};
			emul1: emull {
				compatible = "sandbox,i2c-rtc";
			};
		};

		sandbox_pmic: sandbox_pmic {
			reg = <0x40>;
			sandbox,emul = <&emul_pmic0>;
		};

		mc34708: pmic@41 {
			reg = <0x41>;
			sandbox,emul = <&emul_pmic1>;
		};
	};

	bootcount@0 {
		compatible = "u-boot,bootcount-rtc";
		rtc = <&rtc_1>;
		offset = <0x13>;
	};

	bootcount {
		compatible = "u-boot,bootcount-i2c-eeprom";
		i2c-eeprom = <&bootcount_i2c>;
	};

	adc@0 {
		compatible = "sandbox,adc";
		vdd-supply = <&buck2>;
		vss-microvolts = <0>;
	};

	irq: irq {
		compatible = "sandbox,irq";
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	lcd {
		u-boot,dm-pre-reloc;
		compatible = "sandbox,lcd-sdl";
		xres = <1366>;
		yres = <768>;
	};

	leds {
		compatible = "gpio-leds";

		iracibble {
			gpios = <&gpio_a 1 0>;
			label = "sandbox:red";
		};

		martinet {
			gpios = <&gpio_a 2 0>;
			label = "sandbox:green";
		};

		default_on {
			gpios = <&gpio_a 5 0>;
			label = "sandbox:default_on";
			default-state = "on";
		};

		default_off {
			gpios = <&gpio_a 6 0>;
			label = "sandbox:default_off";
			default-state = "off";
		};
	};

	mbox: mbox {
		compatible = "sandbox,mbox";
		#mbox-cells = <1>;
	};

	mbox-test {
		compatible = "sandbox,mbox-test";
		mboxes = <&mbox 100>, <&mbox 1>;
		mbox-names = "other", "test";
	};

	cpus {
		timebase-frequency = <2000000>;
		cpu-test1 {
			timebase-frequency = <3000000>;
			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;
		};
	};

	chipid: chipid {
		compatible = "sandbox,soc";
	};

	i2s: i2s {
		compatible = "sandbox,i2s";
		#sound-dai-cells = <1>;
		sandbox,silent;	/* Don't emit sounds while testing */
	};

	nop-test_0 {
		compatible = "sandbox,nop_sandbox1";
		nop-test_1 {
			compatible = "sandbox,nop_sandbox2";
			bind = "True";
		};
		nop-test_2 {
			compatible = "sandbox,nop_sandbox2";
			bind = "False";
		};
	};

	misc-test {
		compatible = "sandbox,misc_sandbox";
	};

	mmc2 {
		compatible = "sandbox,mmc";
	};

	mmc1 {
		compatible = "sandbox,mmc";
	};

	mmc0 {
		compatible = "sandbox,mmc";
	};

	pch {
		compatible = "sandbox,pch";
	};

	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 0x2000000
				0x01000000 0 0x20000000 0x20000000 0 0x2000>;
		pci@0,0 {
			compatible = "pci-generic";
			reg = <0x0000 0 0 0 0>;
			sandbox,emul = <&swap_case_emul0_0>;
		};
		pci@1,0 {
			compatible = "pci-generic";
			/* 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 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@1 {
		compatible = "sandbox,pci";
		device_type = "pci";
		bus-range = <0x00 0xff>;
		#address-cells = <3>;
		#size-cells = <2>;
		ranges = <0x02000000 0 0x30000000 0x30000000 0 0x2000 // MEM0
			  0x02000000 0 0x31000000 0x31000000 0 0x2000 // MEM1
			  0x01000000 0 0x40000000 0x40000000 0 0x2000>;
		sandbox,dev-info = <0x08 0x00 0x1234 0x5678
				    0x0c 0x00 0x1234 0x5678
				    0x10 0x00 0x1234 0x5678>;
		pci@10,0 {
			reg = <0x8000 0 0 0 0>;
		};
	};

	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
				0x01000000 0 0x60000000 0x60000000 0 0x2000>;
		sandbox,dev-info = <0x08 0x00 0x1234 0x5678>;
		pci@1f,0 {
			compatible = "pci-generic";
			reg = <0xf800 0 0 0 0>;
			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 {
			compatible = "denx,u-boot-probe-test";
		};

		test2 {
			compatible = "denx,u-boot-probe-test";
		};

		test3 {
			compatible = "denx,u-boot-probe-test";
		};

		test4 {
			compatible = "denx,u-boot-probe-test";
			first-syscon = <&syscon0>;
			second-sys-ctrl = <&another_system_controller>;
			third-syscon = <&syscon2>;
		};
	};

	pwrdom: power-domain {
		compatible = "sandbox,power-domain";
		#power-domain-cells = <1>;
	};

	power-domain-test {
		compatible = "sandbox,power-domain-test";
		power-domains = <&pwrdom 2>;
	};

	pwm: pwm {
		compatible = "sandbox,pwm";
		#pwm-cells = <2>;
	};

	pwm2 {
		compatible = "sandbox,pwm";
		#pwm-cells = <2>;
	};

	ram {
		compatible = "sandbox,ram";
	};

	reset@0 {
		compatible = "sandbox,warm-reset";
	};

	reset@1 {
		compatible = "sandbox,reset";
	};

	resetc: reset-ctl {
		compatible = "sandbox,reset-ctl";
		#reset-cells = <1>;
	};

	reset-ctl-test {
		compatible = "sandbox,reset-ctl-test";
		resets = <&resetc 100>, <&resetc 2>;
		reset-names = "other", "test";
	};

	rng {
		compatible = "sandbox,sandbox-rng";
	};

	rproc_1: rproc@1 {
		compatible = "sandbox,test-processor";
		remoteproc-name = "remoteproc-test-dev1";
	};

	rproc_2: rproc@2 {
		compatible = "sandbox,test-processor";
		internal-memory-mapped;
		remoteproc-name = "remoteproc-test-dev2";
	};

	panel {
		compatible = "simple-panel";
		backlight = <&backlight 0 100>;
	};

	smem@0 {
		compatible = "sandbox,smem";
	};

	sound {
		compatible = "sandbox,sound";
		cpu {
			sound-dai = <&i2s 0>;
		};

		codec {
			sound-dai = <&audio 0>;
		};
	};

	spi@0 {
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0 1>;
		compatible = "sandbox,spi";
		cs-gpios = <0>, <&gpio_a 0>;
		spi.bin@0 {
			reg = <0>;
			compatible = "spansion,m25p16", "jedec,spi-nor";
			spi-max-frequency = <40000000>;
			sandbox,filename = "spi.bin";
		};
	};

	syscon0: syscon@0 {
		compatible = "sandbox,syscon0";
		reg = <0x10 16>;
	};

	another_system_controller: syscon@1 {
		compatible = "sandbox,syscon1";
		reg = <0x20 5
			0x28 6
			0x30 7
			0x38 8>;
	};

	syscon2: syscon@2 {
		compatible = "simple-mfd", "syscon";
		reg = <0x40 5
			0x48 6
			0x50 7
			0x58 8>;
	};

	timer@0 {
		compatible = "sandbox,timer";
		clock-frequency = <1000000>;
	};

	timer@1 {
		compatible = "sandbox,timer";
		sandbox,timebase-frequency-fallback;
	};

	tpm2 {
		compatible = "sandbox,tpm2";
	};

	uart0: serial {
		compatible = "sandbox,serial";
		u-boot,dm-pre-reloc;
	};

	usb_0: usb@0 {
		compatible = "sandbox,usb";
		status = "disabled";
		hub {
			compatible = "sandbox,usb-hub";
			#address-cells = <1>;
			#size-cells = <0>;
			flash-stick {
				reg = <0>;
				compatible = "sandbox,usb-flash";
			};
		};
	};

	usb_1: usb@1 {
		compatible = "sandbox,usb";
		hub {
			compatible = "usb-hub";
			usb,device-class = <9>;
			#address-cells = <1>;
			#size-cells = <0>;
			hub-emul {
				compatible = "sandbox,usb-hub";
				#address-cells = <1>;
				#size-cells = <0>;
				flash-stick@0 {
					reg = <0>;
					compatible = "sandbox,usb-flash";
					sandbox,filepath = "testflash.bin";
				};

				flash-stick@1 {
					reg = <1>;
					compatible = "sandbox,usb-flash";
					sandbox,filepath = "testflash1.bin";
				};

				flash-stick@2 {
					reg = <2>;
					compatible = "sandbox,usb-flash";
					sandbox,filepath = "testflash2.bin";
				};

				keyb@3 {
					reg = <3>;
					compatible = "sandbox,usb-keyb";
				};

			};

			usbstor@1 {
				reg = <1>;
			};
			usbstor@3 {
				reg = <3>;
			};
		};
	};

	usb_2: usb@2 {
		compatible = "sandbox,usb";
		status = "disabled";
	};

	spmi: spmi@0 {
		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";
				reg = <0xc000 0x400>;
				gpio-controller;
				gpio-count = <4>;
				#gpio-cells = <2>;
				gpio-bank-name="spmi";
			};
		};
	};

	wdt0: wdt@0 {
		compatible = "sandbox,wdt";
	};

	axi: axi@0 {
		compatible = "sandbox,axi";
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		store@0 {
			compatible = "sandbox,sandbox_store";
			reg = <0x0 0x400>;
		};
	};

	chosen {
		#address-cells = <1>;
		#size-cells = <1>;
		setting = "sunrise ohoka";
		other-node = "/some-bus/c-test@5";
		int-values = <0x1937 72993>;
		u-boot,acpi-ssdt-order = <&acpi_test2 &acpi_test1>;
		chosen-test {
			compatible = "denx,u-boot-fdt-test";
			reg = <9 1>;
		};
	};

	translation-test@8000 {
		compatible = "simple-bus";
		reg = <0x8000 0x4000>;

		#address-cells = <0x2>;
		#size-cells = <0x1>;

		ranges = <0 0x0 0x8000 0x1000
			  1 0x100 0x9000 0x1000
			  2 0x200 0xA000 0x1000
			  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>;
			reg-names = "sandbox-dummy-0";
		};

		dev@1,100 {
			compatible = "denx,u-boot-fdt-dummy";
			reg = <1 0x100 0x1000>;

		};

		dev@2,200 {
			compatible = "denx,u-boot-fdt-dummy";
			reg = <2 0x200 0x1000>;
		};


		noxlatebus@3,300 {
			compatible = "simple-bus";
			reg = <3 0x300 0x1000>;

			#address-cells = <0x1>;
			#size-cells = <0x0>;

			dev@42 {
				compatible = "denx,u-boot-fdt-dummy";
				reg = <0x42>;
			};
		};
	};

	osd {
		compatible = "sandbox,sandbox_osd";
	};

	board {
		compatible = "sandbox,board_sandbox";
	};

	sandbox_tee {
		compatible = "sandbox,tee";
	};

	sandbox_virtio1 {
		compatible = "sandbox,virtio1";
	};

	sandbox_virtio2 {
		compatible = "sandbox,virtio2";
	};

	sandbox_scmi {
		compatible = "sandbox,scmi-devices";
		clocks = <&clk_scmi0 7>, <&clk_scmi0 3>, <&clk_scmi1 1>;
	};

	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 {
		compatible = "sandbox,hwspinlock";
	};

	dma: dma {
		compatible = "sandbox,dma";
		#dma-cells = <1>;

		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";
	};

	pm-bus-test {
		compatible = "simple-pm-bus";
		clocks = <&clk_sandbox 4>;
		power-domains = <&pwrdom 1>;
	};

	resetc2: syscon-reset {
		compatible = "syscon-reset";
		#reset-cells = <1>;
		regmap = <&syscon0>;
		offset = <1>;
		mask = <0x27FFFFFF>;
		assert-high = <0>;
	};

	syscon-reset-test {
		compatible = "sandbox,misc_sandbox";
		resets = <&resetc2 15>, <&resetc2 30>, <&resetc2 60>;
		reset-names = "valid", "no_mask", "out_of_range";
	};

	some_regmapped-bus {
		#address-cells = <0x1>;
		#size-cells = <0x1>;

		ranges = <0x0 0x0 0x10>;
		compatible = "simple-bus";

		regmap-test_0 {
			reg = <0 0x10>;
			compatible = "sandbox,regmap_test";
		};
	};
};

#include "sandbox_pmic.dtsi"
