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

&pinctrl {
	uart0_default: uart0_default {
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 5)>,
				<NRF_PSEL(UART_RTS, 0, 7)>;
		};
		group2 {
			psels = <NRF_PSEL(UART_RX, 0, 3)>,
				<NRF_PSEL(UART_CTS, 1, 8)>;
			bias-pull-up;
		};
	};

	uart0_sleep: uart0_sleep {
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 5)>,
				<NRF_PSEL(UART_RX, 0, 3)>,
				<NRF_PSEL(UART_RTS, 0, 7)>,
				<NRF_PSEL(UART_CTS, 1, 8)>;
			low-power-enable;
		};
	};

};
