/*
 * 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.
 */

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