/*
 * Copyright (c) 2018 Ilya Tagunov <tagunil@gmail.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <st/l0/stm32l073Xz.dtsi>
#include <st/l0/stm32l073r(b-z)tx-pinctrl.dtsi>
#include "arduino_r3_connector.dtsi"

/ {
	model = "STMicroelectronics STM32L073RZ-NUCLEO board";
	compatible = "st,stm32l073rz-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 = <&gpioa 5 GPIO_ACTIVE_HIGH>;
			label = "User LD2";
		};
	};

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

	power-states {
		stop: state {
			compatible = "zephyr,power-state";
			power-state-name = "suspend-to-idle";
			min-residency-us = <2000>;
			exit-latency-us = <750>;
		};
	};

	pwmleds: pwmleds {
		compatible = "pwm-leds";
		/* NOTE: disabled by default, PWM2 conflicts with SPI1 */
		status = "disabled";

		green_pwm_led: green_pwm_led {
			pwms = <&pwm2 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
		};
	};

	aliases {
		led0 = &green_led_2;
		sw0 = &user_button;
		pwm-led0 = &green_pwm_led;
		watchdog0 = &iwdg;
		eeprom-0 = &eeprom;
		die-temp0 = &die_temp;
		volt-sensor0 = &vref;
	};
};

&cpu0 {
	cpu-power-states = <&stop>;
};

&clk_hse {
	hse-bypass;
	clock-frequency = <DT_FREQ_M(8)>; /* STLink 8MHz clock */
	status = "okay";
};

&clk_lsi {
	status = "okay";
};

&clk_hsi48 {
	status = "okay";
};

&pll {
	div = <2>;
	mul = <8>;
	clocks = <&clk_hse>;
	status = "okay";
};

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

&lptim1 {
	clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>,
		<&rcc STM32_SRC_LSI LPTIM1_SEL(1)>;
	status = "okay";
};

&usart1 {
	pinctrl-0 = <&usart1_tx_pb6 &usart1_rx_pb7>;
	pinctrl-names = "default";
	current-speed = <115200>;
};

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

&i2c1 {
	pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb9>;
	pinctrl-names = "default";
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
};

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

&iwdg {
	status = "okay";
};

&adc1 {
	pinctrl-0 = <&adc_in0_pa0>;
	pinctrl-names = "default";
	status = "okay";
};

&die_temp {
	status = "okay";
};

&dac1 {
	status = "okay";
	pinctrl-0 = <&dac_out1_pa4>;
	pinctrl-names = "default";
};

&timers2 {
	st,prescaler = <10000>;
	status = "okay";

	pwm2: pwm {
		/* NOTE: disabled by default, PWM2 conflicts with SPI1 */
		pinctrl-0 = <&tim2_ch1_pa5>;
		pinctrl-names = "default";
	};
};

&rng {
	status = "okay";
};

&eeprom {
	status = "okay";
};

&vref {
	status = "okay";
};
