/*
 * Copyright (c) 2020, Linaro Ltd.
 * Copyright (c) 2022, Esco Medical ApS
 *
 * 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.
 */

#include <freq.h>
#include <dt-bindings/led/led.h>

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

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

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

			cs-gpios = <&test_gpio 0 0>;

			test_spi_tlc5971: tlc5971@0 {
				status = "okay";
				compatible = "ti,tlc59711", "ti,tlc5971";
				label = "TLC5971";
				spi-max-frequency = <DT_FREQ_M(1)>;
				reg = <0x0>;
				chain-length = <8>; // two TLC5971 devices
				color-mapping = <LED_COLOR_ID_BLUE>,
						<LED_COLOR_ID_GREEN>,
						<LED_COLOR_ID_RED>;
			};
		};
	};
};
