/*
 * Copyright (c) 2020 Steven Daglish <s.c.daglish@gmail.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <st/l0/stm32l031X6.dtsi>
#include <st/l0/stm32l031k(4-6)tx-pinctrl.dtsi>

/ {
	model = "STMicroelectronics STM32L031K6-NUCLEO board";
	compatible = "st,stm32l031k6-nucleo";

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

	leds {
		compatible = "gpio-leds";
		green_led_2: led_2 {
			gpios = <&gpiob 3 GPIO_ACTIVE_HIGH>;
			label = "User LD2";
		};
	};

	aliases {
		led0 = &green_led_2;
		eeprom-0 = &eeprom;
	};
};

&clk_hsi {
	status = "okay";
};

&pll {
	div = <2>;
	mul = <4>;
	clocks = <&clk_hsi>;
	status = "okay";
};

&rcc {
	clocks = <&pll>;
	clock-frequency = <DT_FREQ_M(32)>;
	ahb-prescaler = <1>;
	apb1-prescaler = <1>;
	apb2-prescaler = <1>;
};

&usart2 {
	pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa15>;
	current-speed = <115200>;
	status = "okay";
};

&i2c1 {
	pinctrl-0 = <&i2c1_scl_pa9 &i2c1_sda_pa10>;
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&spi1 {
	pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>;
	status = "okay";
};

&eeprom {
	status = "okay";
};
