/*
 * Copyright (c) 2018 STMicroelectronics
 *
 * SPDX-License-Identifier: Apache-2.0
 */

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

/ {
	model = "Tocoding Argonkey 96boards";
	compatible = "tocoding,argonkey", "st,stm32f412";

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

	leds {
		compatible = "gpio-leds";
		green_led_0: led_0 {
			gpios = <&gpioc 13 GPIO_INT_ACTIVE_HIGH>;
			label = "USR0 LED";
		};
		green_led_1: led_1 {
			gpios = <&gpiob 2 GPIO_INT_ACTIVE_HIGH>;
			label = "USR1 LED";
		};
	};

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

	aliases {
		led0 = &green_led_0;
		led1 = &green_led_1;
		sw0 = &user_button;
	};
};

&usart1 {
	current-speed = <115200>;
	status = "okay";
};

&spi1 {
	status = "okay";
};

&spi2 {
	status = "okay";

	/* ST Microelectronics LSM6DSL accel/gyro sensor */
	lsm6dsl@1 {
		compatible = "st,lsm6dsl";
		reg = <1>;
		spi-max-frequency = <1000000>;
		irq-gpios = <&gpiob 1 0>;
		label = "LSM6DSL_SPI";
	};
};

&dma2 {
	status = "okay";
};

&i2s5 {
	status = "okay";

	mp34dt05@0 {
		compatible = "st,mpxxdtyy";
		reg = <0>;
		label = "MP34DT05";
	};
};

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

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

	hts221@5f {
		compatible = "st,hts221";
		reg = <0x5f>;
		label = "HTS221";
		drdy-gpios = <&gpioa 2 GPIO_INT_ACTIVE_LOW>;
	};

	lps22hb-press@5d {
		compatible = "st,lps22hb-press";
		reg = <0x5d>;
		label = "LPS22HB";
	};

	vl53l0x@29 {
		compatible = "st,vl53l0x";
		reg = <0x29>;
		label = "VL53L0X";
	};
};

&i2c3 {
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;

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

&rtc {
	status = "okay";
};
