/*
 * Copyright (c) 2021 Thomas Stranger
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <seeed/lora-e5.dtsi>

/ {
	model = "Seeed Studio LoRa-E5 Dev Board";
	compatible = "seeed,lora-e5-dev-board";

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

	leds {
		compatible = "gpio-leds";
		red_led_1: led_0 {
			gpios = <&gpiob 5 GPIO_ACTIVE_LOW>;
			label = "User LED1";
			/* the led can be disconnected, using J16 (D5) */
		};
	};

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

		user_button: button_1 {
			label = "SW2";
			gpios = <&gpioa 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
			/* user_button can be disconnected, using J14 (D0) */
		};
	};

	aliases {
		led0 = &red_led_1;
		sw0 = &boot_button;
		sw1 = &user_button;
		lora0 = &lora;
	};

	pwr_3v3: pwr-3v3-ctrl {
		/*
		 * PWR rail for SPI-flash, Temp-Sensor, RS-485 Transceiver,
		 * and for external devices(Grove, header).
		 * Requires closed J15 (D9)
		 */
		compatible = "regulator-fixed-sync", "regulator-fixed";
		label = "pwr-3v3-ctrl";
		regulator-name = "pwr-3v3-ctrl";
		enable-gpios = <&gpioa 9 GPIO_ACTIVE_HIGH>;
		regulator-boot-on;
		status = "okay";
	};

	pwr_5v: pwr-5v-ctrl {
		/*
		 * Available for external devices on header J2
		 * Requires closed J6 (D10)
		 */
		compatible = "regulator-fixed-sync", "regulator-fixed";
		label = "pwr-5v-ctrl";
		regulator-name = "pwr-5v-ctrl";
		enable-gpios = <&gpiob 10 GPIO_ACTIVE_HIGH>;
		regulator-boot-on;
		status = "okay";
	};

	power-states {
		stop0: state0 {
			compatible = "zephyr,power-state";
			power-state-name = "suspend-to-idle";
			substate-id = <1>;
			min-residency-us = <100>;
		};
		stop1: state1 {
			compatible = "zephyr,power-state";
			power-state-name = "suspend-to-idle";
			substate-id = <2>;
			min-residency-us = <500>;
		};
		stop2: state2 {
			compatible = "zephyr,power-state";
			power-state-name = "suspend-to-idle";
			substate-id = <3>;
			min-residency-us = <900>;
		};
	};
};

&cpu0 {
	cpu-power-states = <&stop0 &stop1 &stop2>;
};

&lptim1 {
	status = "okay";
};

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

&pll {
	clocks = <&clk_msi>;
	div-m = <3>;
	mul-n = <6>;
	div-r = <2>;
	div-q = <2>;
	div-p = <2>;
	status = "okay";
};

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

&lpuart1 {
	pinctrl-0 = <&lpuart1_tx_pc1 &lpuart1_rx_pc0>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&usart1 {
	pinctrl-0 = <&usart1_tx_pb6 &usart1_rx_pb7>;
	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";
	/* PB4 can select RS-485 TX, when J17 (A4) is closed */
};

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

	/* LM75ADP temperature sensor on addr 0x48 */
};

/* Attention!: the spi-sck pin is in confict with the boot_button on pb13 */
&spi2 {
	pinctrl-0 = <&spi2_nss_pb9 &spi2_sck_pb13
		     &spi2_miso_pb14 &spi2_mosi_pa10>;
	pinctrl-names = "default";
	status = "okay";

	/* unpopulated footprint for spi flash */
};

&rtc {
	status = "okay";
};

&iwdg {
	status = "okay";
};

&adc1 {
	pinctrl-0 = <&adc_in2_pb3>;
	pinctrl-names = "default";
	status = "okay";
};

&aes {
	status = "okay";
};

/* connectors: */
grove_serial: &usart1 {};
grove_i2c: &i2c2 {};

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

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

/*
 * Other Pins:
 * Not assigned:  None
 * Debug:         PA13(swdio), PA14(swclk)
 */
