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

/dts-v1/;
#include <st/f4/stm32f412zg.dtsi>

/ {
	model = "STMicroelectronics STM32F412G-DISCO board";
	compatible = "st,stm32f412g-disco", "st,stm32f412";

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

	leds {
		compatible = "gpio-leds";
		green_led_1: led_1 {
			gpios = <&gpioe 0 GPIO_INT_ACTIVE_HIGH>;
			label = "User LD1";
		};
		orange_led_2: led_2 {
			gpios = <&gpioe 1 GPIO_INT_ACTIVE_HIGH>;
			label = "User LD2";
		};
		red_led_3: led_3 {
			gpios = <&gpioe 2 GPIO_INT_ACTIVE_HIGH>;
			label = "User LD3";
		};
		blue_led_4: led_4 {
			gpios = <&gpioe 4 GPIO_INT_ACTIVE_HIGH>;
			label = "User LD4";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		joy_sel: joystick_selection {
			label = "joystick selection";
			gpios = <&gpioa 0 GPIO_INT_ACTIVE_LOW>;
		};
		joy_down: joystick_down {
			label = "joystick down";
			gpios = <&gpiog 1 GPIO_INT_ACTIVE_LOW>;
		};
		joy_up: joystick_up {
			label = "joystick up";
			gpios = <&gpiog 0 GPIO_INT_ACTIVE_LOW>;
		};
		joy_left: joystick_left {
			label = "joystick left";
			gpios = <&gpiof 15 GPIO_INT_ACTIVE_LOW>;
		};
		joy_right: joystick_right {
			label = "joystick right";
			gpios = <&gpiof 14 GPIO_INT_ACTIVE_LOW>;
		};
	};

	aliases {
		led0 = &green_led_1;
		led1 = &orange_led_2;
		led2 = &red_led_3;
		led3 = &blue_led_4;
		sw0 = &joy_sel;
	};
};

&usart2 {
	current-speed = <115200>;
	pinctrl-0 = <&usart2_pins_a>;
	pinctrl-names = "default";
	status = "ok";
};

&rtc {
	status = "ok";
};
