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

/dts-v1/;
#include <st/l4/stm32l4r9Xi.dtsi>

/ {
	model = "STMicroelectronics SensorTile.box board";
	compatible = "st,sensortile-box", "st,stm32l4r9";

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

	leds {
		compatible = "gpio-leds";
		blue_led: led {
			gpios = <&gpiob 15 GPIO_ACTIVE_HIGH>;
			label = "User LD1";
		};

		green_led: led_2 {
			gpios = <&gpiof 2 GPIO_ACTIVE_HIGH>;
			label = "User LD4";
		};
	};

	aliases {
		led0 = &blue_led;
		led1 = &green_led;
	};
};

&usart1 {
	current-speed = <115200>;
	status = "okay";
};

&usart2 {
	current-speed = <115200>;
	status = "okay";
};

&i2c1 {
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;

	hts221@5f {
		compatible = "st,hts221";
		reg = <0x5f>;
		label = "HTS221";
		drdy-gpios = <&gpiod 13 GPIO_ACTIVE_HIGH>;
	};

	lps22hh@5d {
		compatible = "st,lps22hh";
		reg = <0x5d>;
		label = "LPS22HH";
		drdy-gpios = <&gpiod 15 GPIO_ACTIVE_HIGH>;
	};
};

&i2c3 {
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;

	stts751@38 {
		compatible = "st,stts751";
		reg = <0x38>;
		drdy-gpios = <&gpiog 5 GPIO_ACTIVE_LOW>;
		label = "STTS751";
	};
};

&spi1 {
	status = "okay";

	cs-gpios = <&gpioe 11 GPIO_ACTIVE_LOW>, <&gpioe 12 GPIO_ACTIVE_LOW>, <&gpioe 10 GPIO_ACTIVE_LOW>;

	lis2dw12@0 {
		compatible = "st,lis2dw12";
		spi-max-frequency = <1000000>;
		reg = <0>;
		irq-gpios = <&gpioc 5 GPIO_ACTIVE_HIGH>;
		label = "LIS2DW12";
	};

	lsm6dso@1 {
		compatible = "st,lsm6dso";
		spi-max-frequency = <1000000>;
		reg = <1>;
		irq-gpios = <&gpioa 2 GPIO_ACTIVE_HIGH>;
		label = "LSM6DSO";
	};

	iis3dhhc@2 {
		compatible = "st,iis3dhhc";
		spi-max-frequency = <1000000>;
		reg = <2>;
		irq-gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>, <&gpioe 6 GPIO_ACTIVE_HIGH>;
		label = "IIS3DHHC";
	};
};

&spi3 {
	status = "okay";

	cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;

	lis2mdl@0 {
		compatible = "st,lis2mdl";
		spi-max-frequency = <1000000>;
		reg = <0>;
		label = "LIS2MDL";
	};
};

&usbotg_fs {
	status = "okay";
};

&timers2 {
	status = "okay";

	pwm {
		status = "okay";
	};
};

&rtc {
	status = "okay";
};

&flash0 {
	/*
	 * For more information, see:
	 * https://docs.zephyrproject.org/latest/guides/dts/legacy-macros.html#legacy-flash-partitions
	 */
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0x00010000>;
			read-only;
		};

		/*
		 * The flash starting at offset 0x10000 and ending at
		 * offset 0x1ffff is reserved for use by the application.
		 */

		slot0_partition: partition@20000 {
			label = "image-0";
			reg = <0x00020000 0x0006C000>;
		};
		slot1_partition: partition@8c000 {
			label = "image-1";
			reg = <0x0008C000 0x0006C000>;
		};
		scratch_partition: partition@f8000 {
			label = "image-scratch";
			reg = <0x000F8000 0x00006000>;
		};

		storage_partition: partition@fc000 {
			label = "storage";
			reg = <0x000fc000 0x00004000>;
		};
	};
};
