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

&pinctrl {
	uart0_default: uart0_default {
		group1 {
			psels = <NRF_PSEL(UART_TX, 1, 9)>,
				<NRF_PSEL(UART_RTS, 1, 10)>;
		};
		group2 {
			psels = <NRF_PSEL(UART_RX, 1, 8)>,
				<NRF_PSEL(UART_CTS, 1, 11)>;
			bias-pull-up;
		};
	};

	uart0_sleep: uart0_sleep {
		group1 {
			psels = <NRF_PSEL(UART_TX, 1, 9)>,
				<NRF_PSEL(UART_RX, 1, 8)>,
				<NRF_PSEL(UART_RTS, 1, 10)>,
				<NRF_PSEL(UART_CTS, 1, 11)>;
			low-power-enable;
		};
	};

	spi0_default: spi0_default {
		group1 {
			psels = <NRF_PSEL(SPIM_SCK, 0, 8)>,
				<NRF_PSEL(SPIM_MISO, 0, 10)>,
				<NRF_PSEL(SPIM_MOSI, 0, 9)>;
		};
	};

	spi0_sleep: spi0_sleep {
		group1 {
			psels = <NRF_PSEL(SPIM_SCK, 0, 8)>,
				<NRF_PSEL(SPIM_MISO, 0, 10)>,
				<NRF_PSEL(SPIM_MOSI, 0, 9)>;
			low-power-enable;
		};
	};

};
