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

/dts-v1/;
#include <st/l4/stm32l4r5Xi.dtsi>
#include <st/l4/stm32l4r5z(g-i)tx-pinctrl.dtsi>
#include "arduino_r3_connector.dtsi"

/ {
	model = "STMicroelectronics STM32L4R5ZI-NUCLEO board";
	compatible = "st,stm32l4r5zi-nucleo";

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

	leds {
		compatible = "gpio-leds";
		green_led_0: led_0 {
			gpios = <&gpioc 7 GPIO_ACTIVE_HIGH>;
			label = "User LD1";
		};

		blue_led_0: led_1 {
			gpios = <&gpiob 7 GPIO_ACTIVE_HIGH>;
			label = "User LD2";
		};

		red_led_0: led_2 {
			gpios = <&gpiob 14 GPIO_ACTIVE_HIGH>;
			label = "User LD3";
		};
	};

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

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

		red_pwm_led: red_pwm_led {
			pwms = <&pwm1 2 PWM_MSEC(20) (PWM_POLARITY_NORMAL |
						      PWM_STM32_COMPLEMENTARY)>;
		};
	};

	aliases {
		led0 = &green_led_0;
		led1 = &blue_led_0;
		led2 = &red_led_0;
		sw0 = &user_button;
		pwm-led0 = &red_pwm_led;
	};
};

&clk_hsi {
	status = "okay";
};

&pll {
	div-m = <4>;
	mul-n = <40>;
	div-p = <7>;
	div-q = <2>;
	div-r = <2>;
	clocks = <&clk_hsi>;
	status = "okay";
};

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

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

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

&usart3 {
	pinctrl-0 = <&usart3_tx_pd8 &usart3_rx_pd9>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&lpuart1 {
	pinctrl-0 = <&lpuart1_tx_pg7 &lpuart1_rx_pg8>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&i2c1 {
	pinctrl-0 = <&i2c1_scl_pb6 &i2c1_sda_pb7>;
	pinctrl-names = "default";
	status = "okay";
};

&spi1 {
	pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>;
	pinctrl-names = "default";
	cs-gpios = <&gpiod 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
	status = "okay";
};

&spi2 {
	pinctrl-0 = <&spi2_nss_pb12 &spi2_sck_pb13
		     &spi2_miso_pb14 &spi2_mosi_pb15>;
	pinctrl-names = "default";
	status = "okay";
};

&spi3 {
	/* SPI3 on the ST Morpho Connector CN7 pins 17, 1, 2, 3*/
	pinctrl-0 = <&spi3_nss_pa15 &spi3_sck_pc10
		     &spi3_miso_pc11 &spi3_mosi_pc12>;
	pinctrl-names = "default";
	status = "okay";
};

zephyr_udc0: &usbotg_fs {
	pinctrl-0 = <&usb_otg_fs_dm_pa11 &usb_otg_fs_dp_pa12
		     &usb_otg_fs_id_pa10>;
	pinctrl-names = "default";
	status = "okay";
};

&timers1 {
	status = "okay";

	pwm1: pwm {
		/* NOTE: disabled by default, PWM1 conflicts with SPI2 */
		pinctrl-0 = <&tim1_ch2n_pb14>;
		pinctrl-names = "default";
	};
};

&timers2 {
	status = "okay";

	pwm2: pwm {
		status = "okay";
		pinctrl-0 = <&tim2_ch1_pa0>;
		pinctrl-names = "default";
	};
};

&rtc {
	status = "okay";
};

&lptim1 {
	status = "okay";
};

&flash0 {
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		/* Reserve last 16KiB for property storage */
		storage_partition: partition@1FB000 {
			label = "storage";
			reg = <0x001FB000 DT_SIZE_K(16)>;
		};
	};
};

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