/*
 * Copyright (c) 2021, Commonwealth Scientific and Industrial Research
 * Organisation (CSIRO) ABN 41 687 119 230.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/ {
	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_spi: spi@33334444 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "vnd,spi";
			reg = <0x33334444 0x1000>;
			status = "okay";
			clock-frequency = <2000000>;

			/* one entry for every SPI device */
			cs-gpios = <&test_gpio 0 0>,
				   <&test_gpio 0 0>,
				   <&test_gpio 0 0>,
				   <&test_gpio 0 0>;

			test_spi_cc1200: cc1200@0 {
				compatible = "ti,cc1200";
				reg = <0x0>;
				spi-max-frequency = <0>;
				int-gpios = <&test_gpio 0 0>;
				status= "okay";
			};

			test_spi_cc2520: cc2520@1 {
				compatible = "ti,cc2520";
				reg = <0x1>;
				spi-max-frequency = <0>;
				vreg-en-gpios = <&test_gpio 0 0>;
				reset-gpios = <&test_gpio 0 0>;
				fifo-gpios = <&test_gpio 0 0>;
				cca-gpios = <&test_gpio 0 0>;
				sfd-gpios = <&test_gpio 0 0>;
				fifop-gpios = <&test_gpio 0 0>;
				status= "okay";

				crypto {
					compatible = "ti,cc2520-crypto";
					status= "okay";
				};
			};

			test_spi_dw1000: dw1000@2 {
				compatible = "decawave,dw1000";
				reg = <0x2>;
				spi-max-frequency = <0>;
				int-gpios = <&test_gpio 0 0>;
				reset-gpios =<&test_gpio 0 0>;
				status= "okay";
			};

			test_spi_rf2xx: rf2xx@3 {
				compatible = "atmel,rf2xx";
				reg = <0x3>;
				spi-max-frequency = <0>;
				irq-gpios = <&test_gpio 0 0>;
				reset-gpios = <&test_gpio 0 0>;
				slptr-gpios = <&test_gpio 0 0>;
				dig2-gpios = <&test_gpio 0 0>;
				status = "okay";
			};
		};
	};
};
