/*
 * Copyright (c) 2020 Alexander Kozhinov <AlexanderKozhinov@yandex.com>
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <st/h7/stm32h723Xg.dtsi>
#include <st/h7/stm32h723zgtx-pinctrl.dtsi>
#include "arduino_r3_connector.dtsi"

/*
 * WARNING:
 * JP6 and SB72 must be ON when using Ethernet.
 */

/ {
	model = "STMicroelectronics STM32H723ZG-NUCLEO board";
	compatible = "st,stm32h723zg-nucleo";

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

	leds {
		compatible = "gpio-leds";
		green_led: led_0 {
			gpios = <&gpiob 0 GPIO_ACTIVE_HIGH>;
			label = "User LD1";
		};
		yellow_led: led_1 {
			gpios = <&gpioe 1 GPIO_ACTIVE_HIGH>;
			label = "User LD2";
		};
	};

	pwmleds {
		compatible = "pwm-leds";

		red_pwm_led: red_pwm_led {
			pwms = <&pwm12 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
			label = "User LD3 - PWM12";
		};
	};

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

	aliases {
		led0 = &green_led;
		led1 = &yellow_led;
		pwm-led0 = &red_pwm_led;
		sw0 = &user_button;
	};
};

&clk_lsi {
	status = "okay";
};

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

&clk_lse {
	status = "okay";
};

&pll {
	div-m = <4>;
	mul-n = <275>;
	div-p = <1>;
	div-q = <4>;
	div-r = <2>;
	clocks = <&clk_hse>;
	status = "okay";
};

&rcc {
	clocks = <&pll>;
	clock-frequency = <DT_FREQ_M(550)>;
	d1cpre = <1>;
	hpre = <2>;    /* HCLK: 275   MHz */
	d1ppre = <2>;  /* APB1: 137.5 MHz */
	d2ppre1 = <2>; /* APB2: 137.5 MHz */
	d2ppre2 = <2>; /* APB3: 137.5 MHz */
	d3ppre = <2>;  /* APB4: 137.5 MHz */
};

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

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

&rtc {
	clocks = <&rcc STM32_CLOCK_BUS_APB4 0x00010000>,
		 <&rcc STM32_SRC_LSI RTC_SEL(2)>;
	status = "okay";
};

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

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

&backup_sram {
	status = "okay";
};

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

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

&mac {
	status = "okay";
	pinctrl-0 = <&eth_ref_clk_pa1
		     &eth_mdio_pa2
		     &eth_crs_dv_pa7
		     &eth_mdc_pc1
		     &eth_rxd0_pc4
		     &eth_rxd1_pc5
		     &eth_tx_en_pg11
		     &eth_txd0_pg13
		     &eth_txd1_pb13>;
	pinctrl-names = "default";
};

&rng {
	status = "okay";
};
