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

/dts-v1/;
#include <st/f4/stm32f407Xg.dtsi>
#include <st/f4/stm32f407v(e-g)tx-pinctrl.dtsi>

/ {
	model = "STMicroelectronics STM32F4DISCOVERY board";
	compatible = "st,stm32f4discovery";

	chosen {
		zephyr,console = &usart2;
		zephyr,shell-uart = &usart2;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,ccm = &ccm0;
		zephyr,can-primary = &can2;
	};

	leds {
		compatible = "gpio-leds";
		orange_led_3: led_3 {
			gpios = <&gpiod 13 GPIO_ACTIVE_HIGH>;
			label = "User LD3";
		};
		green_led_4: led_4 {
			gpios = <&gpiod 12 GPIO_ACTIVE_HIGH>;
			label = "User LD4";
		};
		red_led_5: led_5 {
			gpios = <&gpiod 14 GPIO_ACTIVE_HIGH>;
			label = "User LD5";
		};
		blue_led_6: led_6 {
			gpios = <&gpiod 15 GPIO_ACTIVE_HIGH>;
			label = "User LD6";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button {
			label = "Key";
			gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
		};
	};

	aliases {
		led0 = &green_led_4;
		led1 = &orange_led_3;
		led2 = &red_led_5;
		led3 = &blue_led_6;
		sw0 = &user_button;
	};
};

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

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

&timers2 {
	status = "okay";

	pwm2: pwm {
		status = "okay";
		pinctrl-0 = <&tim2_ch1_pa0>;
	};
};

&rtc {
	status = "okay";
};

&usbotg_fs {
	pinctrl-0 = <&usb_otg_fs_dm_pa11 &usb_otg_fs_dp_pa12>;
	status = "okay";
};

&can1 {
	pinctrl-0 = <&can1_rx_pb8 &can1_tx_pb9>;
	bus-speed = <125000>;
	status = "disabled";
};

&can2 {
	pinctrl-0 = <&can2_rx_pb5 &can2_tx_pb13>;
	bus-speed = <125000>;
	status = "okay";
};
