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

/dts-v1/;
#include <nordic/nrf52840_qiaa.dtsi>
#include <dt-bindings/gpio/gpio.h>
#include "mesh_feather.dtsi"

/ {
	model = "Particle Boron";
	compatible = "particle,boron", "particle,feather",
		"nordic,nrf52840-qiaa", "nordic,nrf52840";

	sky13351 {
		compatible = "skyworks,sky13351";
		vctl1-gpios = <&gpio0 7 0>;
		/* on Boron VCTL2 is inverted VCTL1 signal via SN74LVC1G04
		 * single inverter gate -- requires a definition below,
		 * but is not used in board.c */
		vctl2-gpios = <&gpio0 7 0>;
	};
};

&i2c1 { /* power monitoring */
	compatible = "nordic,nrf-twi";
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
	sda-pin = <24>;
	scl-pin = <41>;
};

&uart1 { /* u-blox SARA-U2 or SARA-R4 */
	compatible = "nordic,nrf-uarte";
	current-speed = <115200>;
	status = "okay";

	tx-pin = <37>;
	rx-pin = <36>;
	rts-pin = <39>;
	cts-pin = <38>;

	sara_r4 {
		compatible = "ublox,sara-r4";
		label = "ublox-sara-r4";
		status = "okay";

		mdm-power-gpios = <&gpio0 16 0>;
		mdm-reset-gpios = <&gpio0 12 0>;
		mdm-vint-gpios = <&gpio0 2 0>;
	};
};
