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

&pinctrl {
	spi3_default_alt: spi3_default_alt {
		group1 {
			psels = <NRF_PSEL(SPIM_SCK, 0, 11)>,
				<NRF_PSEL(SPIM_MOSI, 0, 12)>,
				<NRF_PSEL(SPIM_MISO, 0, 13)>;
		};
	};

	spi3_sleep_alt: spi3_sleep_alt {
		group1 {
			psels = <NRF_PSEL(SPIM_SCK, 0, 11)>,
				<NRF_PSEL(SPIM_MOSI, 0, 12)>,
				<NRF_PSEL(SPIM_MISO, 0, 13)>;
			low-power-enable;
		};
	};
};

&spi3 {
	pinctrl-0 = <&spi3_default_alt>;
	pinctrl-1 = <&spi3_sleep_alt>;
	pinctrl-names = "default", "sleep";
	cs-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>,
		   <&gpio0 10 GPIO_ACTIVE_LOW>;

	at45db0: at45db041e@0 {
		compatible = "atmel,at45";
		reg = <0>;
		spi-max-frequency = <15000000>;
		jedec-id = [1f 24 00];
		size = <4194304>;
		sector-size = <65536>;
		block-size = <2048>;
		page-size = <256>;
		enter-dpd-delay = <2000>;
		exit-dpd-delay = <35000>;
		status = "disabled";
	};

	at45db1: at45db321e@1 {
		compatible = "atmel,at45";
		reg = <1>;
		spi-max-frequency = <15000000>;
		jedec-id = [1f 27 01];
		size = <33554432>;
		sector-size = <65536>;
		block-size = <4096>;
		page-size = <512>;
		use-udpd;
		enter-dpd-delay = <1000>;
		exit-dpd-delay = <180000>;
		status = "okay";
	};
};

&uart0 {
	/*
	 * Only TX is used in this sample, so disable RX to prevent UART
	 * receiver from being enabled and consuming power.
	 */
	disable-rx;
};
