/*
 * Copyright (c) 2020 Nordic Semiconductor ASA
 * Copyright (c) 2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Application overlay for creating a fake device instance we
 * can use to test DEVICE_MMIO APIs, which get raw data about
 * memory ranges from DTS instances.
 *
 * Names in this file should be chosen in a way that won't conflict
 * with real-world devicetree nodes, to allow these tests to run on
 * (and be extended to test) real hardware.
 */

/ {
	#address-cells = <1>;
	#size-cells = <1>;

	fakedriver@E0000000 {
		compatible = "fakedriver";
		reg = <0xE0000000 0x2000>;
		status = "okay";
	};
	fakedriver@E1000000 {
		compatible = "fakedriver";
		reg = <0xE1000000 0x2000>;
		status = "okay";
	};
	fakedriver@E2000000 {
		compatible = "fakedriver";
		reg = <0xE2000000 0x2000>;
		status = "okay";
	};
	fakedriver@E3000000 {
		compatible = "fakedriver";
		reg = <0xE3000000 0x2000>;
		status = "okay";
	};
	fakedriver@E4000000 {
		compatible = "fakedriver";
		reg = <0xE4000000 0x2000>;
		status = "okay";
	};

	fakedriver_multireg@E5000000 {
		compatible = "fakedriver_multireg";
		reg = <0xE5000000 0x1000>,
		      <0xE6000000 0x1000>;
		reg-names = "chip",
			    "dale";
		status = "okay";
	};
};
