/*
 * Copyright 2024 NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * 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.
 */

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

		test_gpio: gpio@deadbeef {
			compatible = "vnd,gpio";
			gpio-controller;
			reg = <0xdeadbeef 0x1000>;
			#gpio-cells = <0x2>;
			status = "okay";
		};

		test_i2c: i2c@11112222 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "vnd,i2c";
			reg = <0x11112222 0x1000>;
			status = "okay";
			clock-frequency = <100000>;

			test_i2c_ov5640: ov5640@1 {
				compatible = "ovti,ov5640";
				reg = <0x1>;
				reset-gpios = <&test_gpio 0 0>;
				powerdown-gpios = <&test_gpio 1 0>;
			};
		};

		test_csi: csi@22223333 {
			compatible = "nxp,imx-csi";
			reg = <0x22223333 0x4000>;
			status = "okay";
			interrupt-parent = <&nvic>;
			interrupts = <56 1>;
			source = <&test_mipi_csi2rx>;
		};

		test_mipi_csi2rx: mipi_csi2rx@33334444 {
			compatible = "nxp,mipi-csi2rx";
			reg = <0x33334444 0x200>;
			status = "okay";
			sensor = <&test_i2c_ov5640>;
		};
	};
};
