/*
 * 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;
		};
	};

};
