/*
 * Copyright (c) 2024 Nordic Semiconductor
 *
 * SPDX-License-Identifier: Apache-2.0
 */

&pinctrl {
	spi3_default_alt: spi3_default_alt {
		group1 {
			psels = <NRF_PSEL(SPIM_SCK, 1, 1)>,
				<NRF_PSEL(SPIM_MISO, 1, 3)>,
				<NRF_PSEL(SPIM_MOSI, 1, 7)>;
		};
	};

	spi3_sleep_alt: spi3_sleep_alt {
		group1 {
			psels = <NRF_PSEL(SPIM_SCK, 1, 1)>,
				<NRF_PSEL(SPIM_MISO, 1, 3)>,
				<NRF_PSEL(SPIM_MOSI, 1, 7)>;
			low-power-enable;
		};
	};

	spi1_default_alt: spi1_default_alt {
		group1 {
			psels = <NRF_PSEL(SPIS_SCK, 1, 2)>,
				<NRF_PSEL(SPIS_MISO, 1, 4)>,
				<NRF_PSEL(SPIS_MOSI, 1, 8)>,
				<NRF_PSEL(SPIS_CSN, 1, 10)>;
		};
	};

	spi1_sleep_alt: spi1_sleep_alt {
		group1 {
			psels = <NRF_PSEL(SPIS_SCK, 1, 2)>,
				<NRF_PSEL(SPIS_MISO, 1, 4)>,
				<NRF_PSEL(SPIS_MOSI, 1, 8)>,
				<NRF_PSEL(SPIS_CSN, 1, 10)>;
			low-power-enable;
		};
	};

};

&spi3 {
	status = "okay";
	pinctrl-0 = <&spi3_default_alt>;
	pinctrl-1 = <&spi3_sleep_alt>;
	pinctrl-names = "default", "sleep";
	overrun-character = <0x00>;
	cs-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
	dut_spi_dt: test-spi-dev@0 {
		compatible = "vnd,spi-device";
		reg = <0>;
		spi-max-frequency = <4000000>;
	};
};

dut_spis: &spi1 {
	compatible = "nordic,nrf-spis";
	status = "okay";
	def-char = <0x00>;
	pinctrl-0 = <&spi1_default_alt>;
	pinctrl-1 = <&spi1_sleep_alt>;
	pinctrl-names = "default", "sleep";
};
