/*
 * 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;
	};
};

&clk_hse {
	clock-frequency = <DT_FREQ_M(16)>;
	status = "okay";
};

&pll {
	div-m = <8>;
	mul-n = <84>;
	div-p = <2>;
	div-q = <8>;
	clocks = <&clk_hse>;
	status = "okay";
};

&rcc {
	clocks = <&pll>;
	clock-frequency = <DT_FREQ_M(84)>;
	ahb-prescaler = <1>;
	apb1-prescaler = <2>;
	apb2-prescaler = <1>;
};

&i2s2 {
	status = "okay";

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

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

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

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

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

&dma1 {
	status = "okay";
};

&i2s2 {
	pinctrl-0 = <&i2s2_ck_pc7 &i2s2_sd_pc1>;
	pinctrl-names = "default";
	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>;
	pinctrl-names = "default";
	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>;
	pinctrl-names = "default";
	/* 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>;
	pinctrl-names = "default";
	status = "okay";
};

&timers3 {
	status = "okay";

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

&timers4 {
	status = "okay";

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

&timers9 {
	status = "okay";

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

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

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

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

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

&rtc {
	status = "okay";
};
