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

&pinctrl {
	/omit-if-no-ref/ uart135_default: uart135_default {
		group1 {
			psels = <NRF_PSEL(UART_TX, 1, 4)>,
				<NRF_PSEL(UART_RTS, 1, 0)>;
		};

		group2 {
			bias-pull-up;
			psels = <NRF_PSEL(UART_RX, 1, 5)>,
				<NRF_PSEL(UART_CTS, 1, 6)>;
		};
	};

	/omit-if-no-ref/ uart135_sleep: uart135_sleep {
		group1 {
			low-power-enable;
			psels = <NRF_PSEL(UART_TX, 1, 4)>,
				<NRF_PSEL(UART_RX, 1, 5)>,
				<NRF_PSEL(UART_RTS, 1, 0)>,
				<NRF_PSEL(UART_CTS, 1, 6)>;
		};
	};

	/omit-if-no-ref/ uart136_default: uart136_default {
		group1 {
			psels = <NRF_PSEL(UART_TX, 2, 4)>,
				<NRF_PSEL(UART_RTS, 2, 0)>;
		};

		group2 {
			bias-pull-up;
			psels = <NRF_PSEL(UART_RX, 2, 5)>,
				<NRF_PSEL(UART_CTS, 2, 6)>;
		};
	};

	/omit-if-no-ref/ uart136_sleep: uart136_sleep {
		group1 {
			low-power-enable;
			psels = <NRF_PSEL(UART_TX, 2, 4)>,
				<NRF_PSEL(UART_RX, 2, 5)>,
				<NRF_PSEL(UART_RTS, 2, 0)>,
				<NRF_PSEL(UART_CTS, 2, 6)>;
		};
	};
};
