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

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

/ {
	model = "STMicroelectronics STM32F401RE-NUCLEO board";
	compatible = "st,stm32f401re-nucleo", "st,stm32f401";

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

	leds {
		compatible = "gpio-leds";
		green_led_2: led_2 {
			gpios = <&gpioa 5 GPIO_INT_ACTIVE_HIGH>;
			label = "User LD2";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button {
			label = "User";
			gpios = <&gpioc 13 GPIO_INT_ACTIVE_LOW>;
		};
	};

	aliases {
		led0 = &green_led_2;
		sw0 = &user_button;
	};

	arduino_header: connector {
		compatible = "arduino-header-r3";
		#gpio-cells = <2>;
		gpio-map = <0 0 &gpioa 0 0>,	/* A0 */
			   <1 0 &gpioa 1 0>,	/* A1 */
			   <2 0 &gpioa 4 0>,	/* A2 */
			   <3 0 &gpiob 0 0>,	/* A3 */
			   <4 0 &gpioc 1 0>,	/* A4 */
			   <5 0 &gpioc 0 0>,	/* A5 */
			   <6 0 &gpioa 3 0>,	/* D0 */
			   <7 0 &gpioa 2 0>,	/* D1 */
			   <8 0 &gpioa 10 0>,	/* D2 */
			   <9 0 &gpiob 3 0>,	/* D3 */
			   <10 0 &gpiob 5 0>,	/* D4 */
			   <11 0 &gpiob 4 0>,	/* D5 */
			   <12 0 &gpiob 10 0>,	/* D6 */
			   <13 0 &gpioa 8 0>,	/* D7 */
			   <14 0 &gpioa 9 0>,	/* D8 */
			   <15 0 &gpioc 7 0>,	/* D9 */
			   <16 0 &gpiob 6 0>,	/* D10 */
			   <17 0 &gpioa 7 0>,	/* D11 */
			   <18 0 &gpioa 6 0>,	/* D12 */
			   <19 0 &gpioa 5 0>,	/* D13 */
			   <20 0 &gpiob 9 0>,	/* D14 */
			   <21 0 &gpiob 8 0>;	/* D15 */
	};
};

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

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

arduino_i2c: &i2c1 {
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
};

arduino_spi: &spi1 {
	status = "okay";
};

&spi2 {
	status = "okay";
};

&flash0 {
	/*
	 * For more information, see:
	 * http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions
	 */
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0x00010000>;
			read-only;
		};

		/*
		 * The flash starting at offset 0x10000 and ending at
		 * offset 0x1ffff is reserved for use by the application.
		 */

		slot0_partition: partition@20000 {
			label = "image-0";
			reg = <0x00020000 0x00020000>;
		};
		slot1_partition: partition@40000 {
			label = "image-1";
			reg = <0x00040000 0x00020000>;
		};
		scratch_partition: partition@60000 {
			label = "image-scratch";
			reg = <0x00060000 0x00020000>;
		};
	};


};

&timers2 {
	status = "okay";

	pwm {
		status = "okay";
	};
};

&rtc {
	status = "okay";
};

&adc1 {
	status = "okay";
};
