/*
 * Copyright (c) 2019 Foundries.io
 *
 * SPDX-License-Identifier: Apache-2.0
 */

&pinctrl {
	uart1_default_alt: uart1_default_alt {
		group1 {
			psels = <NRF_PSEL(UART_TX, 1, 14)>,
				<NRF_PSEL(UART_RX, 1, 13)>,
				<NRF_PSEL(UART_RTS, 1, 12)>,
				<NRF_PSEL(UART_CTS, 1, 15)>;
		};
	};

	uart1_sleep_alt: uart1_sleep_alt {
		group1 {
			psels = <NRF_PSEL(UART_TX, 1, 14)>,
				<NRF_PSEL(UART_RX, 1, 13)>,
				<NRF_PSEL(UART_RTS, 1, 12)>,
				<NRF_PSEL(UART_CTS, 1, 15)>;
			low-power-enable;
		};
	};
};

/*
 * WNC-M14A2A shield uses an odd UART available on *some* Arduino-R3-compatible
 * headers.  It needs to be defined individually.
 */
&uart1 {
	current-speed = <115200>;
	hw-flow-control;
	status = "okay";

	pinctrl-0 = <&uart1_default_alt>;
	pinctrl-1 = <&uart1_sleep_alt>;
	pinctrl-names = "default", "sleep";

	wnc_m14a2a: wncm14a2a {
		status = "okay";
		compatible = "wnc,m14a2a";
		mdm-boot-mode-sel-gpios = <&arduino_header 7 GPIO_ACTIVE_HIGH>;   /* D1 */
		mdm-power-gpios = <&arduino_header 8 GPIO_ACTIVE_LOW>;	          /* D2 */
		mdm-keep-awake-gpios = <&arduino_header 12 GPIO_ACTIVE_HIGH>;	  /* D6 */
		mdm-reset-gpios = <&arduino_header 14 GPIO_ACTIVE_HIGH>;	  /* D8 */
		mdm-shld-trans-ena-gpios = <&arduino_header 15 GPIO_ACTIVE_HIGH>; /* D9 */
	};
};
