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

/dts-v1/;
#include <st/f4/stm32f446Xe.dtsi>
#include <st/f4/stm32f446v(c-e)tx-pinctrl.dtsi>

/ {
	model = "STMicroelectronics 96Boards STM32 Sensor Mezzanine board";
	compatible = "st,stm32f446-b96b-f446ve";

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

	leds {
		compatible = "gpio-leds";
		red_led_0: led_0 {
			gpios = <&gpiod 10 GPIO_ACTIVE_HIGH>;
			label = "User LD0";
		};
		green_led_1: led_1 {
			gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
			label = "User LD1";
		};
		blue_led_2: led_2 {
			gpios = <&gpiod 12 GPIO_ACTIVE_HIGH>;
			label = "User LD2";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button {
			label = "Key";
			gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
		};
	};

	aliases {
		led0 = &red_led_0;
		led1 = &green_led_1;
		led2 = &blue_led_2;
		sw0 = &user_button;
	};
};

&i2s2 {
	status = "okay";

	mp34dt01@0 {
		compatible = "st,mpxxdtyy";
		reg = <0>;
		label = "MP34DT01";
	};
};

&i2c1 {
	pinctrl-0 = <&i2c1_scl_pb6 &i2c1_sda_pb7>;
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;

	/* ST Microelectronics LIS3MDL magnetic field sensor */
	lis3mdl-magn@1e {
		compatible = "st,lis3mdl-magn";
		reg = <0x1e>;
		label = "LIS3MDL";
	};

	/* ST Microelectronics LPS22HB pressure sensor */
	lps22hb-press@5d {
		compatible = "st,lps22hb-press";
		reg = <0x5d>;
		label = "LPS22HB";
	};
};

&i2c2 {
	pinctrl-0 = <&i2c2_scl_pb10 &i2c2_sda_pc12>;
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&dma1 {
	status = "okay";
};

&i2s2 {
	pinctrl-0 = <&i2s2_ck_pc7 &i2s2_sd_pc1>;
	status = "okay";
};

&spi1_nss_pa4 { slew-rate = "very-high-speed"; };

&spi1 {
	pinctrl-0 = <&spi1_nss_pa4 &spi1_sck_pa5
		     &spi1_miso_pa6 &spi1_mosi_pa7>;
	status = "okay";
};

&spi2_nss_pb9 { slew-rate = "very-high-speed"; };

&spi2 {
	pinctrl-0 = <&spi2_nss_pb9 &spi2_sck_pd3
		     &spi2_miso_pb14 &spi2_mosi_pb15>;
	/* Cannot be used together with i2s2. */
	/* status = "okay"; */
};

&spi4_nss_pe11 { slew-rate = "very-high-speed"; };

&spi4 {
	pinctrl-0 = <&spi4_nss_pe11 &spi4_sck_pe12
		     &spi4_miso_pe13 &spi4_mosi_pe14>;
	status = "okay";
};

&timers3 {
	status = "okay";

	pwm3: pwm {
		status = "okay";
		pinctrl-0 = <&tim3_ch1_pb4 &tim3_ch3_pc8>;
	};
};

&timers4 {
	status = "okay";

	pwm4: pwm {
		status = "okay";
		pinctrl-0 = <&tim4_ch3_pd14 &tim4_ch4_pd15>;
	};
};

&timers9 {
	status = "okay";

	pwm9: pwm {
		status = "okay";
		pinctrl-0 = <&tim9_ch1_pe5 &tim9_ch2_pe6>;
	};
};

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

&usart2 {
	pinctrl-0 = <&usart2_tx_pd5 &usart2_rx_pd6>;
	current-speed = <115200>;
	status = "okay";
};

&usart3 {
	pinctrl-0 = <&usart3_tx_pd8 &usart3_rx_pd9>;
	current-speed = <115200>;
	status = "okay";
};

&uart4 {
	pinctrl-0 = <&uart4_tx_pc10 &uart4_rx_pc11>;
	current-speed = <115200>;
	status = "okay";
};

&rtc {
	status = "okay";
};
