/*
 * Copyright (c) 2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

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

/ {
	model = "black_f407zg_pro board";
	compatible = "st,stm32f407";

	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";
		green_led_1: led_1 {
			gpios = <&gpiof 9 GPIO_ACTIVE_LOW>;
			label = "User LD1";
		};
		green_led_2: led_2 {
			gpios = <&gpiof 10 GPIO_ACTIVE_LOW>;
			label = "User LD2";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_0: K0 {
			label = "Key K0";
			gpios = <&gpiob 9 GPIO_ACTIVE_LOW>;
		};
		user_button_1: K1 {
			label = "Key K1";
			gpios = <&gpiob 8 GPIO_ACTIVE_LOW>;
		};
		user_button_UP: K_UP {
			label = "Key WK_UP";
			gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
		};
	};

	aliases {
		led0 = &green_led_1;
		led1 = &green_led_2;
		sw0 = &user_button_UP;
	};
};

&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_pd0 &can1_tx_pd1>;
	bus-speed = <125000>;
	status = "disabled";
};

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

&spi2 {
	pinctrl-0 = <&spi2_sck_pb10 &spi2_miso_pc2 &spi2_mosi_pc3>;
	status = "okay";
};
