/*
 * Copyright (c) 2022, Kumar Gala <galak@kernel.org>
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Application overlay for testing driver builds
 *
 * 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_mipi_dbi {
			compatible = "zephyr,mipi-dbi-spi";
			status = "okay";
			dc-gpios = <&test_gpio 0 0>;
			spi-dev = <&test_spi>;
			#address-cells = <1>;
			#size-cells = <0>;

			test_mipi_dbi_ili9342c: ili9342c@0 {
				compatible = "ilitek,ili9342c";
				reg = <0>;
				mipi-max-frequency = <25000000>;
				pixel-format = <0>;
				rotation = <270>;
				width = <320>;
				height = <240>;
			};
		};


		test_spi: spi@33334444 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "vnd,spi";
			reg = <0x33334444 0x1000>;
			status = "okay";
			clock-frequency = <2000000>;

			/* one entry for every devices at spi.dtsi */
			cs-gpios = <&test_gpio 0 0 &test_gpio 0 1>;

			test_spi_gc9x01x: gc9x01x@1 {
				compatible = "galaxycore,gc9x01x";
				reg = <1>;
				spi-max-frequency = <100000000>;
				cmd-data-gpios = <&test_gpio 1 0>;
				reset-gpios = <&test_gpio 2 0>;
				pixel-format = <16>;

				width = <240>;
				height = <240>;
			};
		};
	};
};
