/*
 * Copyright (c) 2018 Aleksandr Makarov <aleksandr.o.makarov@gmail.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <st/l0/stm32l072Xz.dtsi>
#include <st/l0/stm32l072c(b-z)tx-pinctrl.dtsi>
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "STMicroelectronics B-L072Z-LRWAN1 Discovery kit";
	compatible = "st,stm32l072z-lrwan1";

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

	leds {
		compatible = "gpio-leds";
		green_led_0: led_0 {
			gpios = <&gpioa 5 GPIO_ACTIVE_HIGH>;
			label = "Green LED 1";
		};
		green_led_1: led_1 {
			gpios = <&gpiob 5 GPIO_ACTIVE_HIGH>;
			label = "Green LED 2";
		};
		blue_led: led_2 {
			gpios = <&gpiob 6 GPIO_ACTIVE_HIGH>;
			label = "Blue LED";
		};
		red_led: led_3 {
			gpios = <&gpiob 7 GPIO_ACTIVE_HIGH>;
			label = "Red LED";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button_0 {
			label = "Push button switch";
			gpios = <&gpiob 2 GPIO_ACTIVE_LOW>;
			zephyr,code = <INPUT_KEY_0>;
		};
	};

	/* These aliases are provided for compatibility with samples */
	aliases {
		led0 = &green_led_0;
		led1 = &green_led_1;
		led2 = &blue_led;
		led3 = &red_led;
		sw0 = &user_button;
		eeprom-0 = &eeprom;
		lora0 = &lora;
	};

};

&clk_lse {
	status = "okay";
};

&clk_hsi48 {
	status = "okay";
};

&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>;
};

arduino_usart: &usart1 {};
arduino_spi: &spi2 {};
arduino_i2c: &i2c1 {};

&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";
};

&spi1 {
	pinctrl-0 = <&spi1_nss_pa15 &spi1_sck_pb3
		     &spi1_miso_pa6 &spi1_mosi_pa7>;
	pinctrl-names = "default";
	status = "okay";
	cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;

	lora: lora@0 {
		compatible = "semtech,sx1276";
		reg = <0>;
		reset-gpios = <&gpioc 0 GPIO_ACTIVE_LOW>;
		dio-gpios = <&gpiob 4 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
			<&gpiob 1 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
			<&gpiob 0 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
			<&gpioc 13 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
			<&gpioa 5 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
			<&gpioa 4 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>;
		rfi-enable-gpios = <&gpioa 1 GPIO_ACTIVE_HIGH>;
		rfo-enable-gpios = <&gpioc 2 GPIO_ACTIVE_HIGH>;
		pa-boost-enable-gpios = <&gpioc 1 GPIO_ACTIVE_HIGH>;
		tcxo-power-gpios = <&gpioa 12 GPIO_ACTIVE_HIGH>;
		tcxo-power-startup-delay-ms = <5>;
		spi-max-frequency = <1000000>;
	};
};

&spi2 {
	pinctrl-0 = <&spi2_nss_pb12 &spi2_sck_pb13
		     &spi2_miso_pb14 &spi2_mosi_pb15>;
	pinctrl-names = "default";
	status = "okay";
};

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

&rtc {
	clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>,
		 <&rcc STM32_SRC_LSE RTC_SEL(1)>;
	status = "okay";
};

&rng {
	status = "okay";
};

&eeprom {
	status = "okay";
};

zephyr_udc0: &usb {
	pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>;
	pinctrl-names = "default";
	status = "okay";
};

&flash0 {
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		/* Set aside 32KiB for data at the end of the 192KiB flash */
		storage_partition: partition@28000 {
			label = "storage";
			reg = <0x00028000 DT_SIZE_K(32)>;
		};
	};
};
