/*
 * Copyright (c) 2023 Marcin Niestroj
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <seeed/lora-e5.dtsi>
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "Seeed Studio LoRa-E5 mini";
	compatible = "seeed,lora-e5-mini";

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

	leds {
		compatible = "gpio-leds";
		red_led_1: led_1 {
			gpios = <&gpiob 5 GPIO_ACTIVE_LOW>;
			label = "User LED1";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		boot_button: button_0 {
			label = "SW1";
			gpios = <&gpiob 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
			zephyr,code = <INPUT_KEY_0>;
		};
	};

	aliases {
		led0 = &red_led_1;
		sw0 = &boot_button;
		lora0 = &lora;
		watchdog0 = &iwdg;
	};
};

stm32_lp_tick_source: &lptim1 {
	status = "okay";
	clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>,
		 <&rcc STM32_SRC_LSI LPTIM1_SEL(1)>;
};

&clk_lsi {
	status = "okay";
};

&clk_msi {
	status = "okay";
	msi-range = <11>;
};

&rcc {
	clocks = <&clk_msi>;
	clock-frequency = <DT_FREQ_M(48)>;
	cpu1-prescaler = <1>;
	ahb3-prescaler = <1>;
	apb1-prescaler = <1>;
	apb2-prescaler = <1>;
};

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

&i2c2 {
	pinctrl-0 = <&i2c2_scl_pb15 &i2c2_sda_pa15>;
	pinctrl-names = "default";
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&rtc {
	clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000400>,
		 <&rcc STM32_SRC_LSI RTC_SEL(2)>;
	status = "okay";
};

&iwdg {
	status = "okay";
};

&aes {
	status = "okay";
};

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

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 DT_SIZE_K(48)>;
		};
		slot0_partition: partition@c000 {
			label = "image-0";
			reg = <0x0000c000 DT_SIZE_K(96)>;
		};
		slot1_partition: partition@24000 {
			label = "image-1";
			reg = <0x00024000 DT_SIZE_K(96)>;
		};

		/* 16KB (8x2kB pages) of storage at the end of the flash */
		storage_partition: partition@3c000 {
			label = "storage";
			reg = <0x0003c000 DT_SIZE_K(16)>;
		};
	};
};
