/*
 * 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>;
			};

			test_led_strip_0: lpd8806@2 {
				compatible = "greeled,lpd8806";
				reg = <2>;
				spi-max-frequency = <2000000>;
			};

			test_led_strip_1: ws2812_spi@3 {
				compatible = "worldsemi,ws2812-spi";
				reg = <3>;
				spi-max-frequency = <2000000>;
				spi-one-frame = <1>;
				spi-zero-frame = <1>;
				chain-length = <256>;
				color-mapping = <0 1 2>;
				reset-delay = <280>;
			};
		};

		test_led_strip_matrix {
			compatible = "led-strip-matrix";
			status = "okay";

			led-strips = <&test_led_strip_0>, <&test_led_strip_1>;
			chain-lengths = <256>, <256>;
			width = <32>;
			height = <16>;
			horizontal-modules = <2>;
			vertical-modules = <1>;
			circulative;
			start-from-right;
		};
	};
};
