/*
 * Copyright (c) 2018 Peter Bigot Consulting, LLC
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/* Add UART2 support on particle_xenon via nRF52840 UARTE1 */
&pinctrl {
	uart1_default: uart1_default {
		group1 {
			psels = <NRF_PSEL(UART_TX, 1, 8)>,
				<NRF_PSEL(UART_RX, 1, 10)>,
				<NRF_PSEL(UART_RTS, 1, 3)>,
				<NRF_PSEL(UART_CTS, 1, 11)>;
		};
	};
	uart1_sleep: uart1_sleep {
		group1 {
			psels = <NRF_PSEL(UART_TX, 1, 8)>,
				<NRF_PSEL(UART_RX, 1, 10)>,
				<NRF_PSEL(UART_RTS, 1, 3)>,
				<NRF_PSEL(UART_CTS, 1, 11)>;
			low-power-enable;
		};
	};
};

&uart1 {
	compatible = "nordic,nrf-uarte";
	current-speed = <115200>;
	status = "okay";
	pinctrl-0 = <&uart1_default>;
	pinctrl-1 = <&uart1_sleep>;
	pinctrl-names = "default", "sleep";
};

