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

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

/ {
	model = "Tocoding Neonkey 96boards";
	compatible = "tocoding,neonkey", "st,stm32f411";

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

	leds {
		compatible = "gpio-leds";
		green_led_0: led_0 {
			gpios = <&gpiob 12 GPIO_INT_ACTIVE_HIGH>;
			label = "USR0 LED";
		};
		green_led_1: led_1 {
			gpios = <&gpiob 13 GPIO_INT_ACTIVE_HIGH>;
			label = "USR1 LED";
		};
		green_led_2: led_2 {
			gpios = <&gpiob 14 GPIO_INT_ACTIVE_HIGH>;
			label = "USR2 LED";
		};
		green_led_3: led_3 {
			gpios = <&gpiob 15 GPIO_INT_ACTIVE_HIGH>;
			label = "USR3 LED";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button_0 {
			label = "User";
			gpios = <&gpiob 2 GPIO_INT_ACTIVE_LOW>;
		};
	};

	aliases {
		led0 = &green_led_0;
		led1 = &green_led_1;
		led2 = &green_led_2;
		led3 = &green_led_3;
		sw0 = &user_button;
	};
};

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

&i2c1 {
	status = "ok";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&i2c2 {
	status = "ok";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&i2c3 {
	status = "ok";
	clock-frequency = <I2C_BITRATE_STANDARD>;

	lp3943@60 {
		compatible = "ti,lp3943";
		reg = <0x60>;
		label = "LP3943";
	};
};

&spi1 {
	status = "ok";
};

&rtc {
	status = "ok";
};
