/*
 * Copyright (c) 2019 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <st/l1/stm32l151Xb-a.dtsi>
#include <st/l1/stm32l151c(6-8-b)uxa-pinctrl.dtsi>
#include "96b_lscon.dtsi"

/ {
	model = "RAKWireless 96boards WisTrio board";
	compatible = "rak,wistrio";

	chosen {
		zephyr,console = &usart1;
		zephyr,shell-uart = &usart1;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
	};

	leds {
		compatible = "gpio-leds";
		green_led_0: led_0 {
			gpios = <&gpioa 12 GPIO_ACTIVE_LOW>;
			label = "User LD1";
		};
		blue_led_0: led_1 {
			gpios = <&gpiob 4 GPIO_ACTIVE_LOW>;
			label = "User LD2";
		};
	};

	aliases {
		led0 = &green_led_0;
		eeprom-0 = &eeprom;
		lora0 = &lora;
		accel0 = &lis3dh;
	};

	rf_switch: rf-switch {
		compatible = "qorvo,rfsw8001";
		rf1-gpios = <&gpioa 4 GPIO_PULL_UP>;
		rf2-gpios = <&gpiob 6 GPIO_PULL_UP>;
		rf3-gpios = <&gpiob 7 GPIO_PULL_UP>;
	};

	/* regulator controlling SX oscillator enable */
	sx-osc-enable {
		compatible = "regulator-fixed-sync", "regulator-fixed";
		regulator-name = "sx-osc-enable";
		enable-gpios = <&gpioh 1 GPIO_ACTIVE_HIGH>;
		regulator-boot-on;
	};
};

&clk_hsi {
	status = "okay";
};

&pll {
	div = <2>;
	mul = <4>;
	clocks = <&clk_hsi>;
	status = "okay";
};

&rcc {
	clocks = <&pll>;
	clock-frequency = <DT_FREQ_M(32)>;
	ahb-prescaler = <1>;
	apb1-prescaler = <1>;
	apb2-prescaler = <1>;
};

&usart1 {
	pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&usart2 {
	pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&i2c1 {
	pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb9>;
	pinctrl-names = "default";
	status = "okay";

	lis3dh: lis3dh@32 {
		compatible = "st,lis3dh", "st,lis2dh";
		reg = <0x32>;
	};
};

&spi1 {
	pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>;
	pinctrl-names = "default";
	status = "okay";
	cs-gpios = <&gpiob 0 GPIO_ACTIVE_LOW>;

	lora: lora@0 {
		compatible = "semtech,sx1276";
		reg = <0>;
		reset-gpios = <&gpiob 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
		dio-gpios = <&gpioa 11 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
			<&gpiob 1 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
			<&gpioa 3 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
			<&gpioh 0 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
			<&gpioc 13 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>;
		spi-max-frequency = <1000000>;
		power-amplifier-output = "pa-boost";
	};
};

&rtc {
	status = "okay";
};

&eeprom {
	status = "okay";
};
